* 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
* Add TachiyomiImageDecoder for Coil
Is currently used to decode AVIF and JPEG XL images.
* LocalSource: Check against file name for cover
This allows file with all supported formats to be set as cover
* TachiyomiImageDecoder: Handle HEIF on Android 7 and older
The application class onCreate will also be called when user navigates to an
activity after the app process is killed by the system.
So make sure the incognito is disabled only when the entry point of the app is
created from scratch (e.g. after being force closed by the user).
* Show notification to disable Incognito Mode when it's enabled
* Finish ReaderActivity and BrowseSourceController when incognito is disabled
* CLeanup strings
* Only register DisableIncognitoReceiver when needed