* feat(library): Improve category tab selection when searching/filtering library or adding/removing categories
* Improve active category index handling in LibraryScreenModel
* feat(local): Allow delete local files
* Refresh chapters list after deleting
* Allow delete whole entry's downloaded folder & clear episodes/chapters list
Also hide `Open folder` for merged entries
* Don't delete local folder & refresh local's chapters list state after clear
* use forEachIndexed instead of forEach
* adding comment
* add empty line
* 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)
* support panorama cover
* bigger panorama cover size in GlobalSearchCardRow
* setting to enable/disable
* panorama cover for History items
* Keep panorama cover position in Library View centered for better visual
* fix: update ratio in Detail page if cover doesn't reload anew
* adjust ratio to switch to panorma
* panorama cover for Migration items
* center panorama cover & add dominant background color
* panorama cover for EditMangaInfo
* Fix size on GlobalSearchCardRow
* display mode for manual panorama cover
* Fix LibraryFlagsTest
* support hide categories (merged from Aniyomi)
* styling CategoryScreen: always showing all categories & shading the hidden one
* Hide categories directly on Library tab and load it as a flow
* fix: hidden categories got reset after delete/reorder
* remove unnecessary code
* add countries flags
add flags & simplify/sizing
add flagkit
* add flags to Extensions Filter
* add flags to Sources & Extensions screen
* show language flag in Library
* showing source icon in library
* Change language icon for local source from Folder to Globe
* adjust size & padding for icon & badge
* Setting enable/disable source icon
* Support Pure dark mode
* Tag using elevated style (non pure-dark-mode) and more vibrant outline color (pure-dark-mode)
* More color for various icons
* Color theme for Metadata screen
* Always animated color change
* Always/Only use dominant color for library/update/upcoming cover's background
* Don't always generate color each time cover loaded (library/browse), only update color when new cover changed on detail page
* Fix the spinner background in Edit Manga Info
* Improve manga's backdrop color
Detail:
* Change Cover's color & ratio preference key to AppState
* using ElevatedSuggestionChip with color
* more icon color
* color theme for MetadataViewScreen
* enable animation by default
* Fix: can't turn off theme cover based
* Won't check pref for theme enabled everytime, instead always generate cover's color to run faster later
* Skip generate cover's vibrant color for browsing mangas if already generated, also won't even trying to read ratio for favorite mangas
* Only generate new seed color when cover loaded in detail page
* only use dominantColor for cover when cover is unable to load
* Don't use elevatedSuggestionChip for darkmode and change border color
* EditMangaInfo: Set Spinner's selected item's background color to transparent
* update chip color
* Colors Palette screen
* Support Amoled Dark Mode by upgrading Material-Kolor to 1.7.0
* improve manga's backdrop color
* only generate color while browsing if option is enabled, aslo fixed the case won't update dominant color if cover changed
* always using theme animation
* update translation
* use dominantCoverColors as background for cover so it's less tinted by theme color, also if CoverCache is corrupted, favorite entries can still show color
* add loading animation while cover is fetching image
* Bulk-selection using default isSelected style
* fix cover's background & tint when AsyncImage is Error/Fallback/PlaceHolder
* Widget's cover color when unable to load cover image
* feat: add cross device sync.
* chore: add google api.
* chore: add SY specifics.
* feat: add backupSource, backupPref, and "SY" backupSavedSearches.
I forgot to add the data into the merging logic, So remote always have empty value :(. Better late than never.
* feat(sync): Allow to choose what to sync.
Various improvement and added the option to choose what they want to sync. Added sync library button to LibraryTab as well.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* oops.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* refactor: fix up the sync triggers, and update imports.
* refactor
* chore: review pointers.
* refactor: update imports
* refactor: add more error guard for gdrive.
Also changed it to be app specific, we don't want them to use sync data from SY or other forks as some of the model and backup is different. So if people using other forks they should use the same data and not mismatch.
* fix: conflict and refactor.
* refactor: update imports.
* chore: fix some of detekt error.
* refactor: add breaks and max retries.
I think we were reaching deadlock or infinite loop causing the sync to go forever.
* feat: db changes to accommodate new syncing logic.
Using timestamp to sync is a bit skewed due to system clock etc and therefore there was a lot of issues with it such as removing a manga that shouldn't have been removed. Marking chapters as unread even though it was marked as a read. Hopefully by using versioning system it should eliminate those issues.
* chore: add migrations
* chore: version and is_syncing fields.
* chore: add SY only stuff.
* fix: oops wrong index.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* chore: review pointers.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* chore: remove the option to reset timestamp
We don't need this anymore since we are utilizing versioning system.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* refactor: Forgot to use the new versioning system.
I forgot to cherry pick this from mihon branch.
* chore: remove isSyncing from Chapter/Manga model.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* chore: remove unused import.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* chore: remove isSyncing leftover.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* chore: remove isSyncing.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* refactor: make sure the manga version is bumped.
When there is changes in the chapters table such as reading or updating last read page we should bump the manga version. This way the manga is synced properly as in the History and last_read history is synced properly. This should fix the sorting issue.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
---------
Signed-off-by: KaiserBh <kaiserbh@proton.me>
- Bulk selection to add to library & change categories of multiple entries all at once, everywhere.
- It can detect duplication being added and give option to allow/skip one by one or allow/skip all duplication.
- Also allow long-click to add/remove single entry to/from library, everywhere.
- It supports default category.
commit 7bca814a8d8481af148fbbe72a6e43623c701356
Merge: 3ee4f35aa 67534b391
Author: Cuong Tran <cuongtran.tm@gmail.com>
Date: Sun Mar 10 14:26:29 2024 +0700
Merge branch 'feature/bulk-favorite' into develop
commit 67534b391ffad5a6586fb1c18394b25afc3b432d
Author: Cuong Tran <cuongtran.tm@gmail.com>
Date: Sun Mar 10 14:24:00 2024 +0700
reuse method to add/remove single manga
commit f24b528c45b49286430286da6fc93a05c2917aa4
Author: Cuong Tran <cuongtran.tm@gmail.com>
Date: Sun Mar 10 13:58:14 2024 +0700
reuse bulkSelectionButton as AppBar.Action
commit d026241d9b742f6acf64d0090a9e6e7be53923c6
Author: Cuong Tran <cuongtran.tm@gmail.com>
Date: Sun Mar 10 13:26:46 2024 +0700
reuse Dialog composer
commit 7eb23481926ec981bece2e2e9ced87c795ef4eb8
Author: Cuong Tran <cuongtran.tm@gmail.com>
Date: Sun Mar 10 07:20:58 2024 +0700
fix detekt
commit 9643b9d834257836300b69bcb95cd587a38e34e0
Author: Cuong Tran <cuongtran.tm@gmail.com>
Date: Sun Mar 10 00:07:18 2024 +0700
fix: won’t show dialog if skip all then selection list is empty
commit 7faafe9fb440175dcac065bc2963ba3637d10d38
Author: Cuong Tran <cuongtran.tm@gmail.com>
Date: Sat Mar 9 23:58:46 2024 +0700
no need using builder to create AppBarAction
commit 5564b366eb879407510a733128c26a73ad8d6f2e
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Sat Mar 9 18:26:58 2024 +0700
add BulkSelection to the rest of Migrate, MangaDex…
commit 804bbb3943463298ae0b6eec33c9d3457b2891c9
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Sat Mar 9 17:40:42 2024 +0700
migrate the rest to BulkSelectionScreenModel
commit 8e82fc1e87e1e246b7b676ba0fe7ef0c5bf1d016
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Sat Mar 9 11:00:40 2024 +0700
separate BulkSelection into standalone BulkFavoriteScreenModel
commit 94a127b94d67841339ebdc674e398144e515cd14
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Thu Mar 7 13:18:35 2024 +0700
improve: toggle selection mode when last item is unselected
commit ba0009409637f872f37ac407041f937c3afceda8
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Thu Mar 7 13:00:31 2024 +0700
renovate code
commit 2d92ff9181297cfe795149968fdcd7e898852792
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Thu Mar 7 12:25:27 2024 +0700
Feat: allow long click to favorite on GlobalSearch
commit a24bb06a2a66dcd473c50728b04dc4d6118d0085
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Thu Mar 7 11:45:48 2024 +0700
Bulk favorite for GlobalSearchScreen & MigrateSearchScreen
commit 1d844ac74e356a43211c752442cb4279aea30b6f
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Thu Mar 7 11:29:58 2024 +0700
renovate: move SelectionToolbar to its own component
commit 62cb90d74c2bde7f7e824de277a3bf6e0256cadc
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Thu Mar 7 09:26:40 2024 +0700
Fix: Won’t try call favorite if none selected
commit d2ef151c95a4432eddd3848b8e2e102dfd683681
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Wed Mar 6 18:27:54 2024 +0700
Allow/Skip one by one
commit 5e138f701ed66b6c18ae1c7a9d58dae482c211e0
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Wed Mar 6 15:42:21 2024 +0700
Allow skip duplicates
commit 9ac7a0e393d5aa78d77afde307263a85c8fa051c
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Wed Mar 6 14:24:52 2024 +0700
Bulk selection mode for BrowseSourceScreen
commit 9749adca106c3fb911d1b6808f000f9e16008585
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Wed Mar 6 14:06:12 2024 +0700
rename
commit 4b5e5105976ca3e488979b93043530a678a36e9c
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Wed Mar 6 12:34:01 2024 +0700
Bulk selection for SourceFeedScreen
commit 7775c65af0fd957d020acbccd2bb42073ebcba11
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Wed Mar 6 12:21:55 2024 +0700
Use topBar action to add favorite instead of bottomBar
some minor name changes
commit 66417b7adffede1c92e1dbd75b2eac0cc8b9a13c
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Tue Mar 5 16:32:21 2024 +0700
Allow bulk-favorite default category
commit 0870a9db3c1986c5ccab641bc77b8a0a9cf47017
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Tue Mar 5 15:40:02 2024 +0700
Hide BottomNav when in selection mode
commit 3865c6d467ca0c63be5b387fcac9e9be5a096125
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Tue Mar 5 15:35:58 2024 +0700
Selection:
* Clear selection after set Favorite
* Keep selection when editing categories
commit e01a5c5d35f226133d15b7ed800688bf442885bc
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Tue Mar 5 15:25:34 2024 +0700
Allow add to favorite even when no category available
commit a4556058c86801eaabf7bbfae58cdc40af95f467
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Mon Mar 4 18:30:44 2024 +0700
Set Favorite & Libraries OK now
commit 7e045cb23b2d6da58f0f71f9edcf0c2a2fc60038
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Fri Mar 1 16:40:32 2024 +0700
handle back button
commit 8e3915431e0d461d45c34fa0ca9188bbdc074203
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Fri Mar 1 16:09:00 2024 +0700
shade for selected items
commit d89b7bffb5161498bd9e7ebfd26aa3731e808361
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Fri Mar 1 14:33:32 2024 +0700
Toggle and toolbar count
commit 1ea3a4c5496ca0d002fdbafde2ce913fd28c1987
Author: Cuong M. Tran <cuongtran.tm@gmail.com>
Date: Thu Feb 29 18:36:57 2024 +0700
selection list & toggleSelection/clearSelection
* Add custom thumbnail url. Support backup & restore
- add custom thumbnail url in edit info/custom
- include it in backup n restore
* increase chop char
* edit chop char again to match screenshoot
* tweak truncating middle part
* apply edited cover to history, updates , others
* simplify placeholder logic
---------
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
The TachiyomiTheme introduced a dependency-injection construct that didn't
exist at the time of rendering previews, so I've changed the preview function
to use a preview version of the theme that uses declarative configuration
over dependency injection
(cherry picked from commit cf6f7c521cde88f20c1eef3a6a63a2b73601523f)