- Automatic page view tracking wasn't helpful since it was based on the Activities viewed, and SimpleMarkdown is a single-Activity app, so page views are now tracked manually
- User preferences are now reported so I can remove preferences that aren't used and focus my time on features that are actively used
- Opting out of crash reports is no longer possible. I need crash reports to be able to improve the app. It would also simplify the code a bit to not need to take that into account. Existing opt-outs will be respected but moving forward, new users will need to download the app from Fdroid if they'd like to avoid interactions with Google.
For some reason running the tests on API 30 fails with the below exception. Interestingly enough the tests run just fine on my local API 30 emulator.
java.lang.RuntimeException: Exception thrown in onCreate() of ComponentInfo{com.wbrawner.simplemarkdown.test/androidx.test.runner.AndroidJUnitRunner}: java.lang.IllegalStateException: Cannot connect to androidx.test.orchestrator.OrchestratorService
FATAL EXCEPTION: main
Process: com.wbrawner.simplemarkdown, PID: 21960
java.lang.RuntimeException: Exception thrown in onCreate() of ComponentInfo{com.wbrawner.simplemarkdown.test/androidx.test.runner.AndroidJUnitRunner}: java.lang.IllegalStateException: Cannot connect to androidx.test.orchestrator.OrchestratorService
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6709)
at android.app.ActivityThread.access$1300(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.IllegalStateException: Cannot connect to androidx.test.orchestrator.OrchestratorService
at androidx.test.internal.events.client.TestEventServiceConnectionBase.connect(TestEventServiceConnectionBase.java:91)
at androidx.test.internal.events.client.TestEventClient.connect(TestEventClient.java:125)
at androidx.test.runner.AndroidJUnitRunner.isOrchestratorServiceProvided(AndroidJUnitRunner.java:347)
at androidx.test.runner.AndroidJUnitRunner.onCreate(AndroidJUnitRunner.java:319)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6704)
... 8 more
It seems like very few apps have the toolbar at the bottom, so while it may be more ergonomically sound, it's also a bit unintuitive. It's probably wise to not stray too far from the norms. By having the toolbar at the top, I can also hide it when scrolling in various views, allowing even more of the content to be visible on the screen.
Signed-off-by: William Brawner <me@wbrawner.com>