* Disable `ChapterHeader` click when in selection mode
* Disable `ChapterDownloadIndicator` click when in selection mode
* Review changes
* Merge remote-tracking branch 'origin/master' into patch-7
* Merge remote-tracking branch 'origin/master' into patch-7
* Revert back to old implementation
(cherry picked from commit 8dce7b3e9eee1ea3d4a279e2d2e4ea9d600279a8)
We can probably clean up the same logic in the manga controller at some point too, but that stuff's messy.
Also fixes the spacing issue that the new icon introduced.
(cherry picked from commit 33e90d64497f920be825b803e1342a2e6c937111)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
- Delay the initial emission of updates/sources/extensions lists instead of using a state flow. This hopefully avoids rapid initial recompositions that cause the LazyColumn key duplication crashes. (Closes#8371)
- Fix a NPE in BrowseSourcePresenter
(cherry picked from commit 5d1f79012e63403ac37309dd958244108e28a1a5)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesPresenter.kt
- Remove redundant chapter sorting logic when fetching next chapter(s)
- Remove redundant download queue checks (it'll handle already queued or downloaded items)
- Trigger download ahead when read >= 25% of chapter rather than 20%
- Rely on download cache when checking if next chapter is downloaded to avoid jank (fixes#8328)
(cherry picked from commit fc184f1cfa929328c41b0ec374503afe204d6c15)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
The container already provides color option for both states
(cherry picked from commit 156191af4454d756e51e331f67cba7e19efbbb38)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/components/Tabs.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt
* Add ability to open random manga
* Use `getMangaForCategory` instead
* Put it in overflow menu instead of using EFAB
* Partial review changes
* Merge remote-tracking branch 'refs/remotes/origin/patch-6' into patch-6
# Conflicts:
# app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt
* Merge remote-tracking branch 'refs/remotes/origin/patch-6' into patch-6
# Conflicts:
# app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt
* Wording changes
(cherry picked from commit f5451a68812f56d9427a9b771f6bed00f8fbd7e6)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryToolbar.kt
This adds content window insets supports that will be passed to
all components used except top and bottom bar.
(cherry picked from commit 16f9fb2f40e0569c5c22de4a062cd890b4b64d4e)
Restore "Darken the description colors"
Restores #3858, with new values based on current standards (0.78f rather than 0.62f)
I wanted to accomplish this without having to call a const, but that felt like a logical solution as well
Of course, if you got cleaner methods do tell, thanks
(cherry picked from commit 04d2a3399b4c1e708e8da2a7bf7bfd0ec4ecb77a)
* Clean up strings and icons
* fix incorrect usages of label_more
* restore strings and reduce usage of android.R
* removing icon desc of FABs anyway as app's not for visual impaired users
(cherry picked from commit 4b60138d41ea33e5e4c3defb0dc626b599216f3f)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt
# app/src/main/java/eu/kanade/presentation/browse/ExtensionsScreen.kt
# app/src/main/java/eu/kanade/presentation/components/MangaBottomActionMenu.kt
# app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt
Since users seem to be confused now that the library loads before download info is shown...
(cherry picked from commit fde7bfa3d17ce2e02df5625836eb739aeaab7863)
* PreferenceModel: Add subtitle provider to ListPreference
So that it's possible to avoid value formatting when needed
* cleanups
(cherry picked from commit 3e86cb094b90a29d5e4ddf7a4c72ccf96c66fee3)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/PreferenceModel.kt
* Touch up library item touch indicator
Now the touch indicator has the same coverage as the selection indicator.
Experimental Modifier.Node API is used to draw the selection indicator
* Unify library and browse source list item layouts
(cherry picked from commit 87391832bafff1e9f90fdfe064725fe8d1ec0184)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceComfortableGrid.kt
# app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceCompactGrid.kt
# app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceList.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryComfortableGrid.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryCompactGrid.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryCoverOnlyGrid.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryGridCover.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryPager.kt
* Fix "Download split" not working while using SD card
* Update app/src/main/java/eu/kanade/tachiyomi/util/system/ImageUtil.kt
Co-authored-by: arkon <arkon@users.noreply.github.com>
(cherry picked from commit 6e4a30e59352517346eb0f622424390a52fb95c0)
Simplifying it to just always be centered, which is what most Google apps seem to be doing anyway.
(cherry picked from commit ccc4144f3cc2264c3ae75d492983e9577f352af1)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
* Use `Channel` in Download cache
Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com>
* Use Unlimited capacity
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
(cherry picked from commit 3b5b9a1ae5803466e9b18846aae6fcd16bf8a637)
Now that the updates and manga screen listen to download cache changes, it'll reflect the real states once deleted.
(cherry picked from commit d0bff298b7df3524f76434a3636bc196627cb613)
- Also fix concurrent accesses to main cache map
- Also debounce sources and updates list updates to maybe avoid crashing due to dupe LazyColumn keys
(cherry picked from commit 152eb5b95196a32ed120f4a57996c1958294bf7f)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
Don't block on cache renewals, but notify library on updates so that the badges show up when ready.
We skip the cache when checking if a chapter is downloaded for the reader assuming that it's a
relatively low cost to check for a single chapter.
(Probably) fixes#8254 / fixes#7847
(cherry picked from commit 7e40680af02505f82fa3655d2d693092c6bd43a1)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt
# app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
* 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
(cherry picked from commit 4178f945c9b6bcae9323c02534d7e620136a4e76)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
Fixes#7705. Somewhat janky solution to handle when loading the sources on app start is slower than
the initial download cache priming.
(cherry picked from commit 558aad1a7170a71c454ce7c056b98f446a6eea95)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt
* Settings: M3 and two pane ui
* TrackingLoginDialog: Move close button
* Use small top bar
* Revert "Update voyager to v1.0.0-rc02"
This reverts commit 570fec6ea622a7deae44668f4d9c3317699de2aa.
https://github.com/adrielcafe/voyager/issues/62
(cherry picked from commit 5c5468f9af74be984d0d9cb79da804370ee0e775)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMainScreen.kt
# app/src/main/java/eu/kanade/presentation/more/settings/widget/TextPreferenceWidget.kt
- Fix dark mode setting title
- Enforce usages of translated strings for screen titles
- Use LocalUriHandler where applicable instead of Android context
(cherry picked from commit c2eaf1c86bff1ab9072f79dc3ee7b80df1480805)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt
* Uses Voyager for navigation.
* Replaces every screen inside settings except category editor screen since it's
called from several places.
(cherry picked from commit 890f1a3c7b0f2ceefa86a77cb40c11567e2b5a46)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt
Closes#6927
This makes it more consistent with the library. Tapping the chapters heading still opens the sheet for convenience.
(cherry picked from commit b25ca7617dea67010b0cb55170ae9dd77aa4dc24)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
# app/src/main/java/eu/kanade/presentation/manga/components/MangaToolbar.kt
# app/src/main/res/values/attrs.xml
Related to #7713
(cherry picked from commit 7e92921f84905fefa46a9514c096593520c52076)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesPresenter.kt
* logic and a bit of cleanup
* cleanup done
* grammar fix
* fixing format
* Auto stash before checking out "HEAD"
* Revert "Auto stash before checking out "HEAD""
This reverts commit 202374a36ff444b7da3fcdb2a9859ca71a7c046e.
* Update app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
Co-authored-by: arkon <arkon@users.noreply.github.com>
* cleanup
Co-authored-by: arkon <arkon@users.noreply.github.com>
(cherry picked from commit e1adb89ff8ed1759fcab08ed70b596b41bf3c88c)
Also run formatter and address some deprecation warnings.
(cherry picked from commit 26a42ba9c01c670f60bedfca41bd72c99aa2a278)
# Conflicts:
# core/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt
* Implementing overwrite instead of saving duplicated images
* Using filename instead of hardcoding image type
* Refactoring method to accept lambda for default value
* Removing extra parenthesis
(cherry picked from commit a3afb3553990a6a0faac8999c867b3ddefd5b101)
* Fix Scrollbar when the list contains sticky header
* Fix VerticalFastScroller when the list contains sticky header
* exposé
(cherry picked from commit fba244423f451ef0b715702454ec242a5b73ec1b)
- Remove M3 styling from search toolbar
- Use secondary alpha for subtitles for Sources and Migrate items
- Update some content descriptions
(cherry picked from commit 23bfa1f18f615ba39be42f62cd7b337a6c51bc8e)
It's more consistent with the rest of the overscroll behaviour in the app. We'll wait for the upstream fix.
(cherry picked from commit b4f2da12ea58b2f386f4d49356074c0a38351083)
* Hiding the keyboard (#8157)
* Cleanup
* Adding log
* cleanup
* moving code to ViewExtensions.kt
* TrackDialog keyboard fix?
* moving code to ContextExtensions.kt
* MoreScreen: Remove title (#8158)
* MoreScreen: Remove title
Also removes the state banners as it's redundant
* Add back banners
* Allow manual selection of manga description instead of copying to clipboard
Closes#6548
Notably missing some "standard" options like "Select all" or "Share": https://issuetracker.google.com/issues/226648919
* Allow marking partially read chapters as unread
Closes#3777
* Tablet UI edge-to-edge tweaks (#8159)
* LibraryScreen: Tweak content padding application to draw under nav bar
* BrowseScreen: Tweak content padding application to draw under nav bar
Side note the tab content doesn't actually use its
scaffold (bottom) contentPadding so it's definitely will
be a headache in the future.
* Don't hardcode bottom nav padding
* removed unnecessary import
* refactoring code
* rewriting code
* cleanup?
* cleanup
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
Co-authored-by: arkon <eugcheung94@gmail.com>
(cherry picked from commit 50f959e5f41fa5d4117e821fb82db761cfdcf33f)
* LibraryScreen: Tweak content padding application to draw under nav bar
* BrowseScreen: Tweak content padding application to draw under nav bar
Side note the tab content doesn't actually use its
scaffold (bottom) contentPadding so it's definitely will
be a headache in the future.
* Don't hardcode bottom nav padding
(cherry picked from commit 4b4be58d0d2cac6636858d57119e0657b1b56f59)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/ExtensionsScreen.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt
* MoreScreen: Remove title
Also removes the state banners as it's redundant
* Add back banners
(cherry picked from commit cf6407c4d414a34949c3b97a451b14585db852df)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt
This allows us to swap out the implementation in the future and on different platforms
without major changes to the extensions themselves.
(cherry picked from commit 7be68639107caecea879dc05edb92d81a4689a5a)
# Conflicts:
# core/build.gradle.kts
At some point the scrollbar stops responding to
scroll changes. Not too confident with this fix
but it works.
(cherry picked from commit 1cf1b34e7f32d71e3508f81e8348ff522d389109)
Avoiding some country names in favour of more generic terminology where appropriate.
(cherry picked from commit 0ca14c61c256af770fe31c0d0cc8b7111f4b988b)
* Add methods to get manga and chapter url
Some fork supports directly opening chapters with webview hence `getChapterUrl`
* Review Changes
* Add since to javadoc
(cherry picked from commit de23226591376e998e4ff1ff7b2d4c2a0a805b09)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
* HistoryScreen: Remove paging
Per my testing performance-wise there's virtually no
difference in loading time.
* cleanups
* add key and contentType
(cherry picked from commit 42b0e3e4389b78556ccf34b93edc7d454de5881e)
Was used by updates screen previously
(cherry picked from commit 5c22cbf28e86079994874b08cd4bdfb1bff2b0d9)
# Conflicts:
# app/src/main/java/eu/kanade/data/manga/MangaMapper.kt
* Tweak behavior on Browse screen
- Fix system back popping controller
- Add behavior to system back to cancel search toolbar before clearing current search or popping controller
* Review changes
(cherry picked from commit 6ac17363ed68487b2262308ee9d671ad301f2754)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt
* ExtensionScreen: Adjust item visual
* Move install status view and add progress indicator
* Add secondary item modifier to info texts
* Wrap info texts with FlowRow in case of unavailable space
* Remove language text in non-installed items
Extra content:
* Change the list key to be more consistent
* General cleanups
* typo
(cherry picked from commit 58c47c4c50936f061e65434f60af56a92a51dfb2)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/ExtensionsScreen.kt
* gives ComicInfo.xml files priority over noxml files if both are at the chapter root.
* delete the noxml file if both a noXml file and a ComicInfo file exist
(cherry picked from commit 80b2ebc45b5f04bcd832ed2497d3f2f6ea4adf10)
Should make stacktraces more distinguishable.
(cherry picked from commit e90b39b29dc114af84aed284aa8201d97d7ba775)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/SourcesFilterScreen.kt
The chips row is now scrollable too and filter fab is removed
(cherry picked from commit 0190c36d20a0ef070fad8a6ab55906c25390144c)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt
# app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceComfortableGrid.kt
# app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt
Also add POST_NOTIFICATIONS permissions to make Android Studio stop complaining about it.
(cherry picked from commit b37b3767f3c55a74bede78d11300249ab419a4c7)
- Move loading state into scaffold (closes#7704)
- Move logic into presenter
- Make some composables private
(cherry picked from commit 0e3176a77c925bb7f9d9f87bf68476563f9b9e9e)
Should be able to throw away some of the search controller stuff after Global Search is migrated
(cherry picked from commit 0225711f6f91417af0ae41d42f81c70c86a572ab)
* 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>
(cherry picked from commit 0086743a5311c22fb8c07f596ab5de384862a68a)
# Conflicts:
# app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt
# app/src/main/java/eu/kanade/tachiyomi/App.kt
# app/src/main/java/eu/kanade/tachiyomi/AppModule.kt
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt
# app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
# core/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt
- Defaults to every 12 hours
- Minimum number of backups is now 2, just to offer some level of redundancy in case something happens
- If it's missing storage permissions, it'll fail but that's the user's loss if they somehow haven't granted that permission yet
# Conflicts:
# app/build.gradle.kts
# app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt
* fix : conditional check added to avoid stacking of dialog
In onClickListener, bottom sheet is being opened depending on status of dialog sheet, if it's showing or not.
* chore : refactored conditional logic
* Update ReaderActivity.kt
(cherry picked from commit 30ac94181b2c410aedead964a815b080ef3e62ee)