Modernization and TLC
I definitely would have done this a bit more piecemeal and explained some decisions better in the commit messages if I'd thought you'd want to do it this way. Let me know if you'd like me to close this PR and make a series of smaller PRs instead. Feel free to ask why I made certain changes.
Changes made
Housekeeping
- Updates Android Gradle Plugin to 7.0.4
- Updates Gradle to 7.2
- Updates Android build tools to 32.0.0
- Updates
compileSdkVersionto 31 - Updates
targetSdkVersionto 25- This is the highest target SDK that does't require having a foreground service with a persistent notification for this use-case.
- If you would like to publish to Google Play, we would need to increase this significantly.
- Removes all billing-related code
- Migrates from the Android support library to AndroidX
- Updates Guava
- Migrates to View Binding from Butter Knife and
findViewById() - Migrates to AndroidX preferences
- Uses a notification channel on Android 8 or later
- Fixes (or explicitly disables for a good reason) many Android Lint and IntelliJ warnings
- Reformatted codebase (let me know if you want me to go back and make these changes with the previous formatting
- Some general cleanup
Bug fixes
- Fixes bug where the ringer mode would not be reset to its previous state after the ringtone is stopped
- Fixes bug where the app would crash on launch on Android 12 (though this may have been caused by a tooling update, I never actually built the app with the old tooling)
- Removes notification sound that overlapped with the ringtone
- Fixes bug where the app would crash if Do Not Disturb mode was enabled when the app tried to start ringing
I also made changes to the about screen, some of which you may see as a regression. Let me know if you want me to change anything there.
Once this PR is merged and you publish a new release, I can submit a PR to F-Droid to get the app included there.
In the meantime, it would be great if you'd create your Rebble Dev Portal account, and start the process of claiming your Pebble app entry.
I just discovered another bug. If the app tries to make the phone ring while it is in do not disturb mode, it crashes.
I just pushed a commit that fixes the crash and adds a couple of TODOs to improve the experience surrounding Do Not Disturb mode. I'll probably implement those tomorrow.
For the record, this PR still does not reliably make my phone ring, so you probably shouldn't bother reviewing it until I can give it some more attention.
I'm back now and will have a look at this soon