An unofficial Reddit client for Android. The application allows for users to log in with their Reddit account and perform actions such as voting, commenting, and retrieving customized front page posts, without any ads.
The downloadable APK contains the application at commit 39d635231f8d73d4c8b838b71623038555f441ce
(#1810). To install the app download the APK, open it on your phone, and follow the steps shown. If the install fails you might have to temporarily disable Google Play Protect (remember to enable it again after the install).
minSdkVersion
is 23 (Android 6.0).
See also: build
-
Appearance
- Light and dark mode (true black)
- Translated to English and Norwegian (bokmål)
-
Private browsing
- While logged in, enable private browsing to temporarily act as an anonymous, non-logged in user. Disable at any time when attempting to do an action that requires a logged in user
-
Multiple accounts
- Log in with multiple accounts and switch whenever you want to
- Mark account as NSFW to override various NSFW settings, such as how images/thumbnails are blurred
-
Links
- Show preview of links in comments
- Optionally: show entire link (or only 1 line)
- Optionally: don't show preview when the link is identical to the text
- Enlarge links to make them easier to click (up to 2.5x the size)
- Long press to show URL of a link
- Show preview of links in comments
-
Posts
- Peek text posts while scrolling in list of posts by long pressing on the post
- Control the size of post content when opened, based on a percentage of the screen size
- Expand post content at any time when scrolling through the comments
- Disable post from being collapsed when scrolling in comments, with an independent size compared to when it can be collapsed.
- This can be set as the default
- Filter posts from subreddits from appearing in front page/popular/all
-
Comments
- Navigate between top level comments
- Long press to go to first/last
- Show all sidebars, or only one
- Highlight comments added since the last time a post was viewed (can be toggled)
- Navigate between top level comments
-
Inbox
- Check inbox for new messages every 15, 30, or 60 minutes (or never)
- Optionally:
- Show badge in the bottom bar
- Show notifications
-
Misc
- Slide away opened posts, subreddits, user, images and so on
- Disable awards on posts and comments
-
Third party integration (All these options can be toggled indepedently)
- Imgur albums/galleries are shown as other Reddit galleries
- Gfycat and Imgur videos are loaded directly from the source to always provide audio when possible (and show the size of the video), as the video URLs provided by Reddit do not include any audio.
-
Mod support
- Sticky posts and comments
- Distinguish posts and comments as a moderator
- View reports on posts and comments, with option to mark reports as ignored
- Mark posts as NSFW/spoiler
- Lock posts/comments
The APK is built with Android Studio Arctic Fox (2020.3.1). Other versions might be incompatible.
Create the file secrets.properties
under /app and assign the following values:
To build release versions of the application, create signing keys and add the following values to secrets.properties
:
FILE_PATH = <Path to the .jks file>
STORE_PASSWORD = <The keystore password>
KEY_ALIAS = <The alias of the key>
KEY_PASSWORD = <The key password>
Note: The signing values cannot be omitted. If you are not building a release version assign empty strings to these values (ie. FILE_PATH = ""
)
Optionally, create an Imgur app and pass the client ID to make requests towards the Imgur API. Some communication is done with Imgur, but these calls are optional and the app will be functional if this is omitted. Only userless/anonymous endpoints are used.
IMGUR_CLIENT_ID = <The Imgur client ID>
The application uses Firebase Crashlytics for crash reporting. Set up your Firebase projects and add the google-services.json
file to /app/app. This can be omitted, but all Firebase references must be removed manually from the code (from Gradle files and SettingsFragment).
Thank you to Reddit for making this project possible by providing an open API.
- Retrofit - Used to create the wrapper for the Reddit API
- Gson - For API deserialization and other JSON needs
- Glide - Image processing, downloading, and caching
- PhotoView - For zoomable ImageViews
- RoundedImageView - To create circular ImageViews
- Slidr - To easily create swipeable activities
- With further support from this fork: https://github.com/kenilt/Slidr
- Markwon - Markdown text rendering in TextViews
- ExoPlayer - Used for playing videos
- android-youtube-player - Used for playing YouTube videos
- Ticker - A ticker style TextView that smoothly animates changes (by sliding characters up/down)
- Material Popup Menu - For popup menus
- Android Material Color Picker Dialog - For picking colors
- LeakCanary - For identifying memory leaks
As well as various code snippets acknowledged throughout the code.