58 Commits

Author SHA1 Message Date
Ivan Iskandar
758cc4fad4 Library category page performance fixes (#7650)
* Don't compose category page unnecessarily

* Remove unnecessary library pager recompose

Defer and remember the "currentPage" state read since it's only needed when the
pager is composed for the first time.

* Badge opts

* Sync text style with previous impl

Also avoid reallocating by using copy

(cherry picked from commit d49ec41f3a68574601d5d773382045fdbc6624d8)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/library/components/LibraryGridCover.kt
2022-07-30 12:12:28 -04:00
arkon
1209419e83 Bump dependencies
(cherry picked from commit f90e1b935cf2714025facb5d08aa52e9d827e74b)
2022-07-30 09:12:54 -04:00
Andreas
ba631ac055 Add fast scroller to Library screen (#7600)
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>

Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
(cherry picked from commit 8bde35298f69ceb2c4ae40a8f05f0b8394894220)
2022-07-28 09:09:53 -04:00
Ivan Iskandar
b5120d0149 MangaScreen large UI tweaks (#7625)
* MangaScreen: Fix large UI column sizing behavior

* MangaInfoHeader: Adjust large UI cover sizing behavior

* BottomActionMenu: Change bg shape

(cherry picked from commit 3fe5e53b2546559a91b3373c7bd6329bae7634ab)
2022-07-28 09:09:44 -04:00
Andreas
1ab0d5cdc0 Use non nullable parameters in the MangaCover invoke function (#7624)
Issue cause the non nullables to become nullable has been fixed since 1.2.0-rc01

(cherry picked from commit 5bb1133f0f3a114d5ac06565abcdb965f8d1c28d)
2022-07-28 09:07:32 -04:00
Ivan Iskandar
051a9f33df ChapterDownloadIndicator: Optimize further and reimplement error state (#7599)
In the context of a weaker device--remembering objects inside a list item
is expensive. So only do it when we really need to.

This also flattens the download button by drawing a single icon instead of using
separate icon and progress indicator.

(cherry picked from commit aeffb5eeb806be8530aec7707d9075e48a75c9e3)
2022-07-24 15:28:05 -04:00
Andreas
bc1eb0cb30 Cleanup Library after Compose changes (#7584)
(cherry picked from commit 9f2ddaadde0326fb0fcf1ce91a2affc7f4af42c2)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt
2022-07-24 00:18:26 -04:00
arkon
958fe527e4 Remove bottom nav behavior and add bottom padding to root controller contents
(cherry picked from commit 4bf4b167a54791d0f5a7710ebe15473b8de9dd5c)
2022-07-23 23:55:27 -04:00
Andreas
24c2aa1bfb Use Compose for Library screen (#7557)
- Move Pager to Compose
- Move AppBar to Compose
- Use Stable interface for state
- Use pills for no. of manga in category instead of (x)

(cherry picked from commit 2b8d1bcc02994e75e1479b037ef50eb84ae674d7)

# Conflicts:
#	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/tachiyomi/ui/library/LibraryAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
2022-07-23 23:55:13 -04:00
arkon
bb11d056b5 Misc cleanup
- Migrate sources filter screen to full compose
- Use standard "OK"/"Cancel" actions for delete category dialog
- Abstract some AppBar logic
- Remove some dead code
- Group related strings

(cherry picked from commit e2510c144ad3568caf81660d6ab1b4023202aad4)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/browse/SourcesFilterScreen.kt
#	app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
2022-07-19 13:01:04 -04:00
AntsyLich
f1d1f6c466 Migrate Updates screen to compose (#7534)
* Migrate Updates screen to compose

* Review Changes + Cleanup

Remove more unused stuff and show confirmation dialog when mass deleting chapters

* Review Changes 2 + Rebase

(cherry picked from commit d8fb6b893fd9ae6aab3b4762837ebce496a214b3)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesPresenter.kt
#	app/src/main/sqldelight/migrations/18.sqm
2022-07-19 12:37:26 -04:00
arkon
d145239d93 Migrate licenses screen to full Compose
(cherry picked from commit 1b2c12385feaa8bc7e32b724289323e5d3e9499e)
2022-07-16 20:39:54 -04:00
arkon
1e3f313ca2 Remove top app bar scroll behavior
This lets us make it more consistent with the Compose screens for now. Maybe it'll return in the future.

This also includes making the AboutController a full Compose controller with a new abstracted TopAppBar composable.

(cherry picked from commit 80c7a453286f296ae4d5d3531c805e63db9ca424)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/category/components/CategoryTopAppBar.kt
#	app/src/main/java/eu/kanade/presentation/more/about/AboutScreen.kt
2022-07-16 20:39:44 -04:00
arkon
97e9218f75 Consolidate badge components
(cherry picked from commit 2096df301d55ed446db21d0d2881e9d273674fae)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/browse/MigrateSourceScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
2022-07-16 20:30:16 -04:00
Jobobby04
67e190bffd Page previews for Exh/E-H and NH
- Still needs click image to open chapter
2022-07-16 16:45:27 -04:00
Ivan Iskandar
c77b69ed10 Fix scroll animation when system animation is disabled (#7509)
(cherry picked from commit ba93060e591fccf3c85995b50f496bc937ae8ae4)
2022-07-12 12:16:43 -04:00
Ivan Iskandar
721238a858 ChapterDownloadIndicator: Fixes and improvements (#7485)
* Increased touch target
* Fix downloaded icon smaller than other states
* Deferred state reads to minimize recompose works
* Move things around to eliminate unnecessary elements

(cherry picked from commit e56f6c10177949c88e61d13e95b23545bef06641)
2022-07-11 11:08:59 -04:00
Andreas
4e29fd5b2a Use Compose for Category screen (#7454)
* Use Compose for Category screen

* Use correct string for CategoryRenameDialog title

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 86bacbe586bfe5567b1d52eb8d7b7f23724a17d5)

# Conflicts:
#	app/src/main/java/eu/kanade/data/category/CategoryRepositoryImpl.kt
#	app/src/main/java/eu/kanade/domain/category/interactor/InsertCategory.kt
#	app/src/main/java/eu/kanade/domain/category/repository/CategoryRepository.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryItem.kt
#	app/src/main/res/layout/categories_item.xml
2022-07-10 21:27:27 -04:00
Ivan Iskandar
2e881758aa VerticalFastScroller: Fix scroller consuming touch when it's invisible (#7484)
(cherry picked from commit 9385b86ecb92bd91e5ad65d0eed2580b6b4c6973)
2022-07-09 19:58:23 -04:00
AntsyLich
3cf809870b ChapterDownloadIndicator: Ensure uniform hit area (#7453)
(cherry picked from commit eef95cef336f805881b124dd2c5f465c3fd73bc6)
2022-07-08 21:53:08 -04:00
AntsyLich
5f55a0afbb Reimplement chapter download indicator longpress (#7412)
(cherry picked from commit deaded5af2da6645d7f320471d5f73c0ffed3edf)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt
2022-07-02 13:44:14 -04:00
Ivan Iskandar
4854fcfccf MangaScreen: Hide scroller when appbar is expanded (#7426)
(cherry picked from commit 3072296919089546016de10c274de1a10b0b7234)
2022-07-02 13:42:48 -04:00
arkon
858c3b5a0a Bump dependencies
(cherry picked from commit 7e4c45858f6fd2309f8ca07e1e4c4798ab87b764)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
2022-07-02 13:02:29 -04:00
Ivan Iskandar
4eb45d0ade VerticalFastScroller: Fix incorrect touch target (#7384)
(cherry picked from commit 9ff6ae81bdcb7ce8d1a180f86fad8870324bcf1e)
2022-06-26 13:55:29 -04:00
arkon
24252c388a Fix manga info header using wrong text color (fixes #7368)
(cherry picked from commit 37fe25ac06ff58d9d91f619bfb13cd516b369a90)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt
2022-06-26 11:26:31 -04:00
arkon
ec0f572a82 Minor cleanup
- Use outlined icons where appropriate to match previous UI
- Allow tapping entire ChapterHeader to bring up sheet

(cherry picked from commit 8ec91cddab1b77baa631500d6878e60df8c8d13d)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/browse/ExtensionsScreen.kt
#	app/src/main/java/eu/kanade/presentation/manga/components/MangaSmallAppBar.kt
2022-06-25 17:13:34 -04:00
Ivan Iskandar
2b7aca710e MangaController overhaul (#7244)
(cherry picked from commit 33a778873af0eb52528a29f741fa59b530679c64)

# Conflicts:
#	app/build.gradle.kts
#	app/src/main/java/eu/kanade/tachiyomi/data/database/models/LibraryManga.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersSettingsSheet.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/widget/MangaSummaryView.kt
#	app/src/main/res/layout-sw720dp/manga_info_header.xml
#	app/src/main/res/layout/manga_controller.xml
#	app/src/main/res/layout/manga_info_header.xml
#	app/src/main/res/layout/manga_summary.xml
#	app/src/main/res/menu/manga.xml
2022-06-25 17:11:25 -04:00
Ivan Iskandar
dfe32071e2 ChapterDownloadView: Convert to compose (#7354)
(cherry picked from commit a77bce7b3735811002be3e80b95dae892029d0f5)
2022-06-25 11:34:47 -04:00
Ivan Iskandar
21e03616ba Convert cover dialog view to compose (#7346)
(cherry picked from commit 8fedd2d5f13e56115bdf46a9a38e0ae750681488)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaFullCoverDialog.kt
2022-06-25 11:22:39 -04:00
arkon
a9227a13e1 Minor composable updates
Extracted from #7244

Co-authored-by: ivaniskandar <ivaniskandar@users.noreply.github.com>
(cherry picked from commit 68c47a323879a794c9fc87903233fd418fe2edab)
2022-06-19 21:36:21 -04:00
arkon
bcb0a24a4f Add Composable preview for preferences
...except Android Studio refuses to actually render them.

(cherry picked from commit 11f1482818d70e6b00bcfd267ab70418e3350e83)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/components/Preferences.kt
2022-06-19 21:36:06 -04:00
Ivan Iskandar
3f94fd8e6e Add fast scroller to extensions screen (#7340)
(cherry picked from commit e6a9d0b090e6f89669587cfa7b71b275d7796bff)
2022-06-19 21:25:09 -04:00
Andreas
9a28d42b63 Use custom QueryPagingSource (#7321)
* Use custom QueryPagingSource

- Adds placeholder to make the list jump around less
- Fixes issue where SQLDelight QueryPagingSource would throw IndexOutOfBounds

* Review Changes

(cherry picked from commit 3fd9e021fa84557fc1681685ee1a3e8b6678e7ba)
2022-06-18 19:37:56 -04:00
Ivan Iskandar
a5fe4e1a44 Fix cover fetching in compose views (#7315)
Make sure it passed thru the custom fetcher

(cherry picked from commit 1b804e61cb2b38d7194b058b4152b14607b5e443)

# Conflicts:
#	app/src/main/java/eu/kanade/data/history/HistoryMapper.kt
#	app/src/main/java/eu/kanade/domain/history/model/HistoryWithRelations.kt
#	app/src/main/java/eu/kanade/tachiyomi/App.kt
2022-06-18 19:26:33 -04:00
arkon
d7919c531a Make Compose overflow menu feel slightly more like XML version
(cherry picked from commit a446b37c1f09c5be4c8693895814921c802479c5)
2022-06-16 12:03:24 -04:00
arkon
571d1f29ca Minor cleanups
Pulling out some of the smaller changes that aren't related to the manga controller changes in #7244

(cherry picked from commit 7fdbf40cd23132915bd90cf623e4a69fb560dd26)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/MigrationFlags.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersSettingsSheet.kt
2022-06-04 20:43:05 -04:00
Ivan Iskandar
f1bd5f4c95 Add scrollbar indicator to LazyColumn (#7164)
(cherry picked from commit 3b2362c784a334161cffb734c46588ee87307950)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt
2022-05-24 19:47:01 -04:00
arkon
cf980adb8e Minor cleanup
(cherry picked from commit 9a75232ca40e8f6f3dd6a6f73cc0c2f3912e3ced)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterController.kt
2022-05-24 19:45:39 -04:00
arkon
530f91d774 Theme Compose SwipeRefresh indicator like XML version
Also rename some screens/controllers to better represent that they're the list views.

(cherry picked from commit 01e04e31bf63a9fed18d214f0d12b4c45c72f948)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/browse/SourcesFilterScreen.kt
2022-05-24 19:27:33 -04:00
arkon
6d1dcf0deb Update Compose
Fixes #7004

(cherry picked from commit 393fc146303c3dc6185842e4158c3bd3f006017b)
2022-05-14 10:47:43 -04:00
arkon
24c5563a02 Update linter
(cherry picked from commit ae7df4fb7fa4fc996ba26a9f6dbbb6b5277a939b)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/manga/model/Manga.kt
#	app/src/main/java/eu/kanade/domain/source/model/Source.kt
#	app/src/main/java/eu/kanade/presentation/source/MigrateSourceScreen.kt
#	app/src/main/java/eu/kanade/presentation/source/SourceFilterScreen.kt
#	app/src/main/java/eu/kanade/presentation/source/SourceScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceFilterPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcePresenter.kt
2022-05-14 10:45:26 -04:00
Jobobby04
5fedef2ccb Convert debug menu to Jetpack Compose 2022-05-08 21:09:02 -04:00
arkon
631781ee8c Extract migrate list number badges for later use in library items
(cherry picked from commit aec980662f0159f1341392c62b8b7dba3466d835)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/source/MigrateSourceScreen.kt
2022-05-02 17:22:56 -04:00
arkon
3f81dfdf99 Allow passing modifier to preference composables
(cherry picked from commit cccd09fb5cb88a2b5f44dd104929431afa96d2a5)
2022-05-01 16:00:35 -04:00
arkon
55351fa208 Fix about icons sizing
(cherry picked from commit 8798c295e6e9c531c3fa7bb4c72c065dd013d630)
2022-05-01 14:59:58 -04:00
FourTOne5
45fcab5b48 Center CurcularProgressIndicator in LoadingScreen (#7032)
* Center `CurcularProgressIndicator` in `LoadingScreen`

* Fix Import and move modifier to top

(cherry picked from commit 78207d48ba8032103925cc13ed0f180b0a554ede)
2022-05-01 14:59:42 -04:00
Andreas
55fad3d055 Add error state to MangaCover composable (#7022)
* Add error state to MangaCover

- Add error drawable when thumbnailUrl isn't able to be loaded
- Tweak usage of MangaCover

* Change `contentDescription` to be nullable

As the invoke function makes default nulls

(cherry picked from commit adf02e53fd2da2c889a409a144cf1c81bde7f6f3)
2022-05-01 14:59:20 -04:00
Andreas
ca3574690b Use Compose in Migrate tab (#7008)
* Use Compose in Migrate tab

* Add missing header

* Remove unused files

* Fix build after rebase

* Changes from review comments

(cherry picked from commit 7261fcccda0c0e044ec1cef61ac317574c695768)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/DomainModule.kt
#	app/src/main/java/eu/kanade/presentation/source/SourceScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/SelectionHeader.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/SourceAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/SourceHolder.kt
#	app/src/main/res/layout/source_main_controller_item.xml
2022-05-01 14:58:53 -04:00
arkon
7e0c1308bd Minor cleanup
(cherry picked from commit 0ec9496d26e2904a46c744c8a979a0947d38518e)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/AboutScreen.kt
2022-05-01 13:51:15 -04:00
arkon
41b2c948e1 Migrate WebViewActivity to Compose
(cherry picked from commit 558b18899cca41992d6077484ed430972cda35fc)
2022-05-01 11:02:00 -04:00