* fix(storage): setting app's data folder on Android TV
Also check if set location is actually accessible then update UI compose accordingly (for all devices) in some cases (e.g. location set but actual folder was deleted or permission revoked)
(cherry picked from commit ef56b7f11ef0d243ef14816e85afa360f1137fe8)
* chore(storage): improve permission handling for older Android version & Fire TV
(cherry picked from commit 5ee009a6db73d33687e55ee8f4ad6412a9e320d4)
* Add indicator for source incognito mode
Adds an indicator to the manga info header to show if a source is running in incognito mode.
Also moves the source incognito check logic to `SourceExtensions`.
(cherry picked from commit 5e547efda51cdeaa7bc71198b932c8ac9aecc312)
* Replaced incognito icon with animated glasses_with_hat icon.
This commit introduces an animated vector drawable for the incognito mode icon and updates the related icons in the app.
- Adds `anim_incognito.xml`, a new animated vector drawable for incognito mode.
- Adds `ic_glasses_with_hat_24dp.xml`, a new icon for incognito mode.
- Updates the incognito mode icon in the following places:
- MoreScreen
- ExtensionDetailsScreen
- App notification
- Manga info header
- Updates `SwitchPreferenceWidget` and `TextPreferenceWidget` to accept any type of icons.
(cherry picked from commit 2a28673e078ff15fe0a7c2a030ffc6ce6cbe6b31)
* move incognito icon
* issue: Use stringResource for contentDescription to support localization
* Wrap the ImageVector.vectorResource call in remember to avoid inflating the drawable on every recomposition.
---------
Co-authored-by: Cuong-Tran <cuongtran.tm@gmail.com>
* fix(tracker-login): allow autofill on tracker's login dialog
* add loading state to tracking login dialog
* improve error color handling and dynamic height measurement in login dialog
* enable autofill for email and password fields in login dialog
* improve code
* refactor: optimize state management and improve dialog width measurement
* refactor: optimize dialog height measurement and error state handling
- Update markdown to 0.33.0
- Use github flavour for github changelog
- Fix bullet list alignment
(cherry picked from commit e2915a1f69340cad515962de8a0b9d11ecff8d42)
* Combine ChangeMangaCategoryDialog
* Allow migrating a single manga when using Bulk-favorite
* Allow migrating mangas one by one when using Bulk-favorite
* set visibility
* Fix duplicate toggleSelection after migration
* After migration, continue adding favorites if there are more to bulk-favorite or push new Manga screen if it's a single manga being added by long-click
* fix usage of ChangeMangaCategory
* improve toggleSelection code
* refactoring ChangeMangasCategory
* switch LocalNavigator.currentOrThrow to current
* split composable to `presentation`
* hoisting the state to a common parent composable
* Fix migration dialog dismissed when clicking on Show entry
* Don't push new Manga screen after migration of duplicated entries everywhere
* Add Appearance option to set if cover should be vertically aligned in the manga info view
* Apply align modifier with `CenterVertically` or `Top` instead of using `.apply`
* Change option to align cover to top
* Add a toolbar option to open source settings from manga info screen
This commit adds a new option in the manga info screen to directly open the extension settings.
This option will only be shown if the source is not a local or a stub source.
(cherry picked from commit 2304152368ecccfaa8fddaf0cfa2e82977a789db)
* rework Source settings on BrowseSource, SourceFeed & MangaScreen
* spotless
---------
Co-authored-by: Jery <jery99961@gmail.com>
This theme is mainly geared towards e-Ink displays with limited/no
colour capabilities. Previous themes like Yin & Yang would make heavy
use of greyscale colours which could look off on some devices.
This theme is probably not conformant to Material Design 3 colour
scheme guidelines, but it does boast some amazing WebAIM contrast
ratios (#FFFFFF text on #000000 background gets a ratio of 21:1, vice
versa too).
Initially, this was intended as a purely black and white theme but
some contrast issues arose, such as the download badges (tertiary
background, onTertiary text colour) having the same colour as unread
badges (primary/onPrimary), or the step indicators (stops) not being
visible on sliders (since they use the colours of the opposite state
track (active region stops are the colour of the inactive region track and vice versa).
To mitigate this, each variant (dark/light) of the theme has one
additional grey mixed in for their tertiary and secondaryContainer
colours each. For the dark variant, this is a #A0A0A0 background for
#000000 text (8.03:1 contrast ratio) and for the light variant, it is
a #505050 background for #FFFFFF text (8.06:1 contrast ratio).
This results in distinct unread vs download badges and visible steps
in the sliders.
---------
Co-authored-by: Sunspark-007 <73711243+Sunspark-007@users.noreply.github.com>
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 8b48d1016b851b425e4f66d44bca098220585c37)
* switch off integrated H to show E-H source & extension
* More languages for E-H/ExH, also more popular with rate 5
* Don't hide Multi source when toggle Integrated H
* Avoid crash trying to load ehentaiBrowseDisplayMode
* change source ID to matching general extension
* migration old source ID to new source ID
* Allow importing of EHentai extension backups
* limit library update & metadata source to only Multi lang
* update app version
* fix spotless
* also migrate saved search/feed & pinned EH/EXH source ID when restore from backup or update app
* Fix: background color of download list when using custom theme
* Fix background color in Migration's source list
* Fix custom theme color in manga's Edit Info
* Fix custom theme color in manga's Migration Config
* Fix custom theme color in manga's Migration Config
* Fix custom theme color & relayout merge setting's dialog
* using CustomColorScheme for DownloadQueue
* using CustomColorScheme for metadata source
* feat: add global search shortcut to SmartSearch
* feat: add global search shortcut to SmartSearch
* feat: add back button to BrowseTabWrapper
(cherry picked from commit 46dea6d598a61b5b1df186be68122a9dd20285b1)
* add per Extension Incognito Mode
* migrate incognito sources when extension is updated
* remove incognito sources when extension is uninstalled
* remove not used variable
* address change requests
address change requests
* Rebase and cleanup code
---------
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit c283abefb03f79ce6652492db71cde410f828f78)
* BrowseTab: serialized data object must have readResolve
* simplify usage of bulk-selection select-all/reverse
* hide bulk-selection select-all/reverse
* fast browsing by avoid insert every entries into DB
* Include Coil's broken hardware bitmap device list
Declares all listed devices as unable to use hardware bitmaps.
Might fixmihonapp/mihon#1541.
* Hide Hardware Bitmap Threshold setting if unusable
This hides the setting from the UI if the user's device in on Coil's
list of devices with problematic hardware bitmap implementations.
Also moved HARDWARE_BITMAP_UNSUPPORTED into the ImageUtil as a
property for more ergonomic access across the project.
* Add missing negation
* Update CHANGELOG.md
* Update CHANGELOG.md
* Needs to be and not or
Also fix typo in CHANGELOG.md
---------
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 7f2cfb5eb224896d6d0ffa6960f0a98c7325e240)
* migrating
* - Fix Broadcaster
- Include Updater for Debug
- json to emulate Github call
* - resetup AppUpdateJob when changing settings
- Fix ACTION_MY_PACKAGE_REPLACED
* improve notification
* update icon
* app update to high important
* - Run auto install on AppUpdateJob
- Add release link to job
* idle state & network aware
* fix duplicated job start
* don't show notification & start job for peek-into-preview
* allow cancel auto update job when set to NEVER
* always notify on install complete
* rearm AppUpdateJob each time MainActivity already checked for update
* MainActivity checks every 2 days, rearm AutoUpdateJob in 3 days
* - fix install error notification ID
- add timeout for manual installation if package manager crash
* settings & spotless
* restriction settings & auto run download-install if not in restrictions
* clean up
- Select a range of entries for migration
- Better bottom bar
- Show obsolete sources
---------
Co-authored-by: ImaginaryDesignation <108343184+ImaginaryDesignation@users.noreply.github.com>
- A dedicated screen in Settings for error list when updating library
- Allow to jump to Error screen if click on notification
- Allow to migrate error entry
- Create error on each entry updated instead of waiting for the whole updating list to finished
- Overwrite entry's error if new error happens after updating
- Clear entry's error if it successfully updated
- Clear un-relevant errors (entry which was removed from Library) on next update
- List of errors can jump to top/bottom or next/previous errors group
- Won't create error file anymore
* Added library update errors screen
(cherry picked from commit 7cf37d52f959ac65f53cf7657563fb4428bd9188)
* Open library update errors screen on clicking library update error notification
(cherry picked from commit d2d22f437a1d61b086f1e19dfbcd2c0a2bc125f4)
* LibraryUpdateErrorScreen's bottom UI with scroll to top/bottom buttons
(cherry picked from commit 859ce54474d456232510e21f4f6795af65489be2)
* migrate to AppBar
* sticky header
* scroll to next/previous group of errors
* insert error entry one by one
* delete error from DB when successfully updated
* clean un-relevant errors from DB on every updates
* fix errors & clean up
* catch exception & fix notification intent
---------
Co-authored-by: ImaginaryDesignation <108343184+ImaginaryDesignation@users.noreply.github.com>
Also for Vertical mode:
- Fix page's text color
- Fix steps visual (tachiyomiorg/tachiyomi#9461)
- Dispatch page change only when needed
(cherry picked from commit df9fff60da3a38acd8fcd540b5fdd275be93f2d5)
* Hide sync library option when sync is disabled
- Add isSyncEnabled parameter to LibraryToolbar and LibraryRegularToolbar
- Pass isSyncEnabled from LibraryTab to LibraryToolbar
- Conditionally display sync library action based on isSyncEnabled
- Update LibraryContent to include isSyncEnabled parameter
- Adjust LibraryTab to handle sync-related functionality
- Remove direct dependency on SyncPreferences in LibraryToolbar
* Update LibraryScreenModel to react to sync service changes
- Replace static isSyncEnabled update with dynamic observation
- Use syncPreferences.syncService().changes() to update isSyncEnabled state
- Ensure isSyncEnabled is updated whenever the sync service changes
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
* Fix sync service state update in LibraryScreenModel
- Resolve ambiguity in lambda parameters
- Correctly update isSyncEnabled state based on syncService value
* Optimize sync service state updates in LibraryScreenModel
- Add distinctUntilChanged() to filter out consecutive duplicate emissions
- Simplify mutableState.update lambda for better readability
- Remove redundant boolean comparison in isSyncEnabled assignment
---------
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
(cherry picked from commit 697b0de22691eca7078a42f1abbc0636efd9f0e8)
* Show download state and progress on reader chapter list.
* Update download indicator on progress and status change.
(cherry picked from commit 558ce084c81ca8e82b540b62890ac3eb4e65aa18)