Fix all Play Store blocking issues in Android app#38
Merged
Conversation
Client ID — no longer hardcoded in build.gradle - build.gradle reads reddit.client_id from local.properties (gitignored) - Falls back to placeholder so the build never breaks without the file - Developers set it once in local.properties; no build file edits needed Release signing - Added signingConfigs.release that reads storeFile / storePassword / keyAlias / keyPassword from keystore.properties (gitignored) - Added buildTypes.release with signingConfig signingConfigs.release - Added buildTypes.debug with .debug applicationId suffix - Updated .gitignore: keystore.properties, *.jks, *.keystore ProGuard / R8 - Release build sets minifyEnabled=true and shrinkResources=true - Created proguard-rules.pro with rules for Retrofit, OkHttp, Gson, Kotlin, EncryptedSharedPreferences, and the app's own model/api packages Adaptive app icon (minSdk 26 — no PNGs required) - res/drawable/ic_launcher_background.xml — Reddit-orange (#FF4500) fill - res/drawable/ic_launcher_foreground.xml — white trash-can icon scaled to the 72×72dp adaptive safe zone inside the 108×108dp canvas - res/mipmap-anydpi-v26/ic_launcher.xml and ic_launcher_round.xml - AndroidManifest now references @mipmap/ic_launcher and roundIcon Network security config - res/xml/network_security_config.xml — cleartextTrafficPermitted=false, trust system CAs only (no user-installed CAs) - AndroidManifest references @xml/network_security_config Privacy policy - android/PRIVACY_POLICY.md — covers scopes, local storage, data-not-collected, and Reddit API third-party disclosure - SETUP.md updated with Play Store listing checklist (host policy URL) Bonus fixes (important tier, trivially co-located) - Removed unused vote scope from OAUTH_SCOPES - Downgraded security-crypto from alpha 1.1.0-alpha06 → stable 1.0.0 - RedditApiClient: logging interceptor now NONE in release, BASIC in debug - RedditApiClient: replaced tokenStorage.refreshToken!! with safe local val to eliminate potential NullPointerException on race condition - AndroidManifest: allowBackup changed from true to false (tokens are sensitive; backup of EncryptedSharedPreferences is unnecessary) - SETUP.md: full release build walkthrough added (keytool, keystore.properties, bundleRelease); project structure table updated; vote scope removed https://claude.ai/code/session_014HLhrFtCVRFnEyfRexiy3d
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Client ID — no longer hardcoded in build.gradle
Release signing
ProGuard / R8
Adaptive app icon (minSdk 26 — no PNGs required)
Network security config
Privacy policy
Bonus fixes (important tier, trivially co-located)
https://claude.ai/code/session_014HLhrFtCVRFnEyfRexiy3d