Commit Graph
100 Commits
Author SHA1 Message Date
Ivan Iskandar 3b62396442 Setup Baseline Profile (#8135)
* Setup Baseline Profile

Adds Baseline Profile generator and startup time test.
Readme included in macrobenchmark module to run the generator.

* changes
2022-10-04 09:22:55 -04:00
Ivan Iskandar 1cf1b34e7f Fix regular scrollbar (#8139)
At some point the scrollbar stops responding to
scroll changes. Not too confident with this fix
but it works.
2022-10-03 23:03:33 -04:00
Ivan Iskandar 42b0e3e438 HistoryScreen: Remove paging (#8125)
* HistoryScreen: Remove paging

Per my testing performance-wise there's virtually no
difference in loading time.

* cleanups

* add key and contentType
2022-10-01 10:50:25 -04:00
Ivan Iskandar 58c47c4c50 ExtensionScreen: Adjust item visual (#8120)
* 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
2022-10-01 10:32:08 -04:00
Ivan Iskandar 6b1d597d34 MangaScreen: Adjust insets (#8097)
I should have done this when Scaffold was rebased
2022-09-27 22:20:10 -04:00
Ivan Iskandar 98a4f6cccb manga-refresh-state (#8090) 2022-09-27 17:49:21 -04:00
Ivan Iskandar 633bd6eb46 UpdatesScreen: Fix selection state after deleting download (#8100) 2022-09-27 17:44:41 -04:00
Ivan Iskandar f19c288bec Fix missing focus when single TextField shown (#8098) 2022-09-27 17:44:06 -04:00
Ivan Iskandar 0190c36d20 BrowseSourceScreen: Adjust browse mode chips placement (#8076)
The chips row is now scrollable too and filter fab is removed
2022-09-25 10:15:01 -04:00
Ivan Iskandar 0fabe4bd01 GlobalSearchController: Auto focus search view when initial query is empty (#8073) 2022-09-25 08:53:34 -04:00
Ivan Iskandar f98b4f4e39 DownloadController: Fix first active download status not updating (#8069) 2022-09-24 11:59:11 -04:00
Ivan Iskandar 467ceacb17 SecureActivityDelegate: Fix cold-start only lock behavior (#8066) 2022-09-24 10:46:35 -04:00
Ivan Iskandar 747cbd24cb Adjust source-api R8 rules (#8064) 2022-09-24 10:13:58 -04:00
Ivan Iskandar 4a3070265a Upgrade AGP 7.3.0 (#8016) 2022-09-17 10:26:02 -04:00
Ivan Iskandar f54adb49a1 ExtensionsPresenter: Use StateFlow for extensions list (#8017) 2022-09-16 08:35:15 -04:00
Ivan Iskandar ec30026333 Fix always-on app lock on cold start (#8018) 2022-09-16 08:34:46 -04:00
Ivan Iskandar 6865c21c75 Fix derivedStateOf errors (#8008) 2022-09-14 11:36:13 -04:00
Ivan Iskandar 7270c48f26 LibraryItem: Fix equality check (#7999)
Proper equality check is needed by compose for state changes.
2022-09-12 12:29:28 -04:00
Ivan Iskandar fb9791f597 DownloadController: Partial Compose conversion (#7969)
Item list is not changed as currently there is no fitting Compose component to
replace the drag-drop behavior.
2022-09-09 22:29:40 -04:00
Ivan Iskandar 032b377de7 WebViewScreen: Use Scaffold (#7958) 2022-09-07 16:59:44 -04:00
Ivan Iskandar 99270e370e Fix missing downloaded only/incognito banners in Browse Source (#7936) 2022-09-04 11:14:37 -04:00
Ivan Iskandar 3fa68ed217 Rebase Scaffold fork (#7929)
This changes content insets handling
2022-09-03 10:33:22 -04:00
Ivan Iskandar 774a87a42a Adjust app lock mechanism (#7924)
Now uses enum to also handle timed lock
2022-09-02 11:48:48 -04:00
Ivan Iskandar 655fa25b51 Bump Compose M3 to 1.0.0-beta01 (#7867) 2022-08-26 09:19:47 -04:00
Ivan Iskandar 763288ab13 LibrarySettingsSheet: Fix race condition when applying sort mode (#7805)
Also fix sort direction can't be changed for default category
2022-08-20 10:15:53 -04:00
Ivan Iskandar 2d690a09b3 Reinstate in-app language picker (#7493)
Also add required config for android 13 system picker
2022-08-14 11:52:46 -04:00
Ivan Iskandar 9dbc1aa7a3 UpdatesScreen: use custom LazyColumn with animation fix (#7758) 2022-08-14 10:12:31 -04:00
Ivan Iskandar b0520df1dd Use application context to create toast (#7756) 2022-08-14 08:44:24 -04:00
Ivan Iskandar 5f378e28b6 UpdatesPresenter: Prevent unnecessary screen recompose (#7742) 2022-08-13 14:34:51 -04:00
Ivan Iskandar 4ebceac07f UpdatesScreen: Fix inset related issue (#7741) 2022-08-13 14:27:07 -04:00
Ivan Iskandar aab5a56892 MangaFullCoverDialog: Use the new image picker when available (#7740) 2022-08-13 13:25:48 -04:00
Ivan Iskandar 441e7bf8b1 MainActivity: Fix crash on back pressed (#7731) 2022-08-12 12:20:39 -04:00
Ivan Iskandar f7b11f2ce9 MangaPresenter: Fix incorrect range selection (#7709) 2022-08-09 09:11:12 -04:00
Ivan Iskandar b4e15263db Fix issues related to Manga screen slow load (#7708)
* Fix back handling when manga is still loading

* MangaPresenter: Show what we have earlier to reduce percepted slowness
2022-08-09 09:10:48 -04:00
Ivan Iskandar 16abfeeff0 Glance widget fixes (#7706)
* Fix glance failing when there's too much children

* Adjust cover error placeholder
2022-08-08 09:20:45 -04:00
Ivan Iskandar b3426f37e7 ExtensionPresenter: Fix crash on first launch (#7685)
* Revert "Use SharedFlow for available extensions to always emit the value (#7609)"

This reverts commit 73901f50c0.

* ExtensionPresenter: Explicitly set refreshing status

* Scope coroutines job to presenter

* cleanup

* fix toast
2022-08-04 15:44:37 -04:00
Ivan Iskandar afceac15c8 Add scroll overlay to LibraryToolbar (#7669)
Works when category tab is not shown
2022-08-03 17:41:15 -04:00
Ivan Iskandar 737cf9898d Reimplement appbar color overlay on scroll (#7663)
only on updates and history screen for now, but the required changes on app bar
is there.

also fix missing incognito-downloaded mode indicator on history screen
2022-07-31 22:24:19 -04:00
Ivan Iskandar 29e1976b90 Glance widget for Updates (#7581)
* glance

* glance2
2022-07-31 11:31:40 -04:00
Ivan Iskandar d49ec41f3a 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
2022-07-30 11:47:27 -04:00
Ivan Iskandar 483b204fb5 MangaPresenter: Add distinctUntilChanged to db flow (#7629)
* MangaScreen: Disable swipe refresh on action mode

* MangaPresenter: Add distinctUntilChanged to db flow

Now will only emit update when the related entry is changed
2022-07-29 07:47:09 -04:00
Ivan Iskandar 3fe5e53b25 MangaScreen large UI tweaks (#7625)
* MangaScreen: Fix large UI column sizing behavior

* MangaInfoHeader: Adjust large UI cover sizing behavior

* BottomActionMenu: Change bg shape
2022-07-27 09:12:01 -04:00
Ivan Iskandar dcafdac036 Retain backstack views by default (#7621) 2022-07-27 09:00:18 -04:00
Ivan Iskandar 1c8da5fa97 BrowseSourceController: Fix broken page after opening manga (#7608)
Probably related to 788583e66f
2022-07-25 08:32:11 -04:00
Ivan Iskandar aeffb5eeb8 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.
2022-07-24 10:27:00 -04:00
Ivan Iskandar 2e15be59af Fix unnecessary recompose when calling LazyListState.isScrolledToEnd (#7598) 2022-07-24 08:49:28 -04:00
Ivan Iskandar 59f8c1a288 MangaPresenter: Don't update fav state when changing categories (#7594) 2022-07-23 22:18:40 -04:00
Ivan Iskandar 00519e3b93 MangaScreen: Save selection state (#7560) 2022-07-18 16:42:46 -04:00
Ivan Iskandar 473dc688f0 Fix download status not updated properly after starting batch download (#7561) 2022-07-18 16:22:49 -04:00
Ivan Iskandar ba93060e59 Fix scroll animation when system animation is disabled (#7509) 2022-07-11 22:21:00 -04:00
Ivan Iskandar cbcab5a545 Fix MangaScreen app bar title and nav icon action (#7506) 2022-07-10 14:29:58 -04:00
Ivan Iskandar 634ee86bbd MangaPresenter: Always fetch chapter from source if current chapter is empty (#7507) 2022-07-10 14:29:52 -04:00
Ivan Iskandar 1551891c15 MangaScreen: Improve chapter list scrolling performance (#7491)
* MangaScreen: Improve chapter list scrolling performance

Process chapter title, date and read progress string ahead of time

* Use enum for contentType and add key
2022-07-09 16:20:40 -04:00
Ivan Iskandar e56f6c1017 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
2022-07-09 12:38:33 -04:00
Ivan Iskandar 34906a7425 MangaScreen: Ditch the expanded app bar (#7470)
Animating the content padding that's used for the lazy list is heavy. A simple
fix to *just* offset the list is blocked by a Compose fling issue (b/179417109).

So I decided to go with the previous layout of this screen by putting everything
in the list. MangaInfoHeader is split into separate composables to avoid jank
when the item is being inflated.
2022-07-09 12:37:49 -04:00
Ivan Iskandar 9385b86ecb VerticalFastScroller: Fix scroller consuming touch when it's invisible (#7484) 2022-07-09 09:20:47 -04:00
Ivan Iskandar 325a5e37aa Fix broken downloaded chapter (#7460) 2022-07-06 22:13:49 -04:00
Ivan Iskandar 3072296919 MangaScreen: Hide scroller when appbar is expanded (#7426) 2022-07-01 10:37:58 -04:00
Ivan Iskandar 388dc2f103 MangaScreen: Reuse components between two layouts (#7397) 2022-06-30 09:20:16 -04:00
Ivan Iskandar 0c856438fa MangaInfoHeader: Add description placeholder (#7398)
To always show summary view for expanding tags
2022-06-28 08:12:15 -04:00
Ivan Iskandar e44bb30996 Improve history screen scrolling perf (#7399) 2022-06-27 18:33:57 -04:00
Ivan Iskandar 924dfa19cf MangaScreen: Fix action mode download button not working (#7385) 2022-06-26 13:37:41 -04:00
Ivan Iskandar 9ff6ae81bd VerticalFastScroller: Fix incorrect touch target (#7384) 2022-06-26 12:58:31 -04:00
Ivan Iskandar c33e5c8a17 Fix chapter number display style (#7383) 2022-06-26 12:58:14 -04:00
Ivan Iskandar 6129bbc9ab MangaInfoHeader tweaks (#7382)
* Changed cover alignment when title is longer
* Hide artist text if it's equal to author
* Set single line to status and source name
2022-06-26 12:48:29 -04:00
Ivan Iskandar 0e0c1dcdc5 MangaPresenter: Fix state updates when opening a new manga entry (#7379) 2022-06-26 09:45:06 -04:00
Ivan Iskandar 33a778873a MangaController overhaul (#7244) 2022-06-25 11:03:48 -04:00
Ivan Iskandar a77bce7b37 ChapterDownloadView: Convert to compose (#7354) 2022-06-24 15:42:30 -04:00
Ivan Iskandar 8fedd2d5f1 Convert cover dialog view to compose (#7346) 2022-06-20 22:31:36 -04:00
Ivan Iskandar 005b9b595c ChaptersSettingsSheet: Single source of truth and use new manga class (#7342)
Currently breaks initial settings state until the source of truth is
properly updated.
2022-06-19 12:29:49 -04:00
Ivan Iskandar e6a9d0b090 Add fast scroller to extensions screen (#7340) 2022-06-19 10:33:25 -04:00
Ivan Iskandar 4c3af7bf36 MainActivity: Top bar status indicator adjustments (#7329)
* Move to inside app bar for tablet ui layout so it can be hidden
with the app bar at once
* Remove the redundant parent view
* Add text appearance style
2022-06-18 12:12:22 -04:00
Ivan Iskandar 28e7009b49 Convert edit cover function to suspend function (#7330) 2022-06-18 10:01:03 -04:00
Ivan Iskandar 1b804e61cb Fix cover fetching in compose views (#7315)
Make sure it passed thru the custom fetcher
2022-06-17 22:21:29 -04:00
Ivan Iskandar ae88252cb1 MangaController: Change the workaround for title alpha (#7277)
Now checks for the backstack for any dialog controller when a push exit occurs
before restoring the title alpha.
2022-06-17 17:28:50 -04:00
Ivan Iskandar 3c3d787a2b MainActivity: Fix incorrect UI states when activity recreated with dialog controller (#7325) 2022-06-17 17:28:07 -04:00
Ivan Iskandar 4ef337f1e9 Don't set text colors when creating compose theme (#7316)
This avoids compose snackbar text color issue
2022-06-16 11:37:57 -04:00
Ivan Iskandar 59837bbb90 Change cover memory key (#7276)
Use different key for custom cover and add last modified time for updating
cover without clearing the whole memory cache
2022-06-10 09:33:59 -04:00
Ivan Iskandar 3b2362c784 Add scrollbar indicator to LazyColumn (#7164) 2022-05-23 18:03:46 -04:00
Ivan Iskandar ac980a4dbf MangaCoverFetcher: Handle moving cover cache after adding to library (#6885)
Move cover cache to separate cache dir after the parent manga is added to library
2022-04-08 12:10:06 -04:00
Ivan Iskandar 2466a079d5 MangaCoverFetcher: Don't close network response (#6882) 2022-04-07 13:34:31 -04:00
Ivan Iskandar dbad60d03b Base activities cleanup (#6848)
* secure delegate

* theming delegate
2022-04-02 09:54:21 -04:00
Ivan Iskandar 5409af0a6c MangaCoverFetcher: Use source's header for network request (#6847) 2022-04-02 08:44:01 -04:00
Ivan Iskandar ffd9c6995a UpdatesController: Don't init adapter until chapter data is ready (#6824)
Considering there's no pagination for this list, the data loading can take some
time. So this will show the existing refresh indicator instead of empty view
while the list is loading.
2022-03-25 22:20:47 -04:00
Ivan Iskandar ef600c0956 Fix extension update badge reset when app resumed (#6822) 2022-03-25 11:11:16 -04:00
Ivan Iskandar ddb856edc7 Add cover error drawable (#6782) 2022-03-15 22:21:30 -04:00
Ivan Iskandar fae43fedfa ReaderActivity: Reduce anim duration when launched from resume FAB (#6762)
From enter 500ms exit 400ms
To both 350ms
2022-03-10 07:51:42 -05:00
Ivan Iskandar 869424cd16 Change cover placeholder (#6756) 2022-03-09 17:26:55 -05:00
Ivan Iskandar 10eef282fa Coil 2.x upgrade (#6725)
* Migrate to Coil 2

* Adapt to use coil disk cache

* Update to alpha 7

* Update to alpha 8

* Update to rc01
2022-03-04 16:04:32 -05:00
Ivan Iskandar d53bb4c337 Use existing worker for manual backup creation (#6718)
* Use existing worker for manual backup creation

This will show the "creating backup" notification when auto backup is
running. Complete or error notification will continue to be shown only on
manual job.

* Make sure disabling auto backup don't cancel running manual backup job
2022-03-03 22:15:49 -05:00
Ivan Iskandar a8ad19a89d Restore bottom nav position earlier after being recreated (#6648) 2022-02-17 22:08:36 -05:00
Ivan Iskandar fad1449de3 Grid items optimizations (#6641)
Use ConstraintLayout for ez size ratio calculation and merge cover-only view
holder with compact's
2022-02-13 11:09:49 -05:00
Ivan Iskandar 2932ed670f MainActivity fixes (#6591)
* Reduce notifyDataSetChanged calls when category count is disabled

* Fix category tabs briefly showing when it's supposed to be disabled

Also fix tabs showing when activity recreated

* Lift appbar when tab is hidden

Check against tab visibility instead of viewpager

* Restore selected nav item after recreate

* Simplify SHORTCUT_MANGA intent handling

Don't need to change controller if the topmost controller is the target
2022-02-12 10:58:58 -05:00
Ivan Iskandar 7108993936 Unify reader error layout (#6512)
So nobody will think that the error layout is broken when they see different
layout.
2022-02-02 21:41:20 -05:00
Ivan Iskandar b6553bdc34 ReaderActivity: Fix transition crash on Android 8 (#6542) 2022-02-02 21:40:48 -05:00
Ivan Iskandar 5348154c42 TachiyomiAppBarLayout: Ignore inset visibility (#6533)
For resume button animation
2022-02-01 09:51:14 -05:00
Ivan Iskandar cf5e60f8eb MangaSummaryView: Fix incomplete description on tablet ui (#6518) 2022-01-30 10:47:53 -05:00
Ivan Iskandar 5cd11ad8c3 Fix bottom nav showing on resume when action mode is active (#6514) 2022-01-29 13:55:33 -05:00
Ivan Iskandar a68f123594 TachiyomiAppBarLayout: Use insetter to handle inset (#6506)
This requires adding the status bar foreground drawing logic since the parent
class wouldn't know the inset changes anymore.
2022-01-28 10:14:13 -05:00
Ivan Iskandar 46ec655db5 Update core-splashscreen (#6471) 2022-01-18 17:51:14 -05:00