Fixes#9564
Avoids the issue of clearing the cache when the app is backgrounded despite being in the reader.
We could do a job on idle, but we'd still need to be careful around whether the reader is active,
so this is just simpler considering it's a separate activity.
* Add Crash activity
When the application crashes this sends them to a different activity with the cause message and an option to dump the crash logs
* Review changes
* Use 1.x preference abstraction
- Uses SharedPreferences compared to 1.x impl which uses DataStore but it breaks all settings screens currently
- Move PreferencesHelper to new PreferenceStore
- PreferencesHelper should be split into smaller preference stores and be in core or domain
- Remove flow preferences as new PreferenceStore handles changes for us
Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>
* Fix PreferenceMutableState not updating
* Fix changes not emitting on first subscription
Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>
- Add pending intent immutable flags to satisfy lint warnings
- Change AddDuplicateMangaDialog arg to a function instead to avoid leaking controller-specific logic into it
- Require WebView 99+
* Migrate History screen to Compose
- Migrate screen
- Strip logic from presenter into use cases and repository
- Setup for other screen being able to migrate to Compose with Theme
* Changes from review comments
* Add initial code for scaling animations, apply scale to reader nav overlay
* Rename extension function, apply system animator scale to ActionToolbar
* Apply system animator scale to expanding manga cover animation
* Apply system animator scale to image crossfade (also disables animated covers when browsing)
* Add documentation, make MotionScene Transition comment a bit more clear
* Disable animated covers in MangaInfoHeaderAdapter if animator duration scale is 0
* Disable animated covers in Library if animator duration scale is 0
* Convert loadAny listener to extension function
* Requires authentication-confirmation to change biometric lock settings
* Prevent double authentications on older APIs when confirming settings changes
* Use new AuthPrompt API for app lock
With this commit, the app lock will only explicitly require Class 2 biometrics
or screen lock credential. Class 3 biometrics are guaranteed to meet Class 2
requirements thus will also be used when available.
* Use extension toast