Commit Graph
100 Commits
Author SHA1 Message Date
Ivan Iskandar 9c120e6231 Implement predictive back animation (#10273)
For home screen tabs, Navigator screens and most dialogs
2023-12-28 11:01:01 -05:00
Ivan Iskandar f9b57800b1 DownloadJob: Network check changes (#10242)
Mostly pulled from WorkManager
2023-12-17 09:57:55 -05:00
Ivan Iskandar 387159b5af PackageInstallerInstaller: Fix intent used for install session (#10240)
Use explicit intent as it's a requirement when targeting v34+
2023-12-17 09:56:33 -05:00
Ivan Iskandar 09531e7f5a MangaScreenModel: Start downloads in IO dispatcher (#10241) 2023-12-17 09:55:54 -05:00
Ivan Iskandar 8779b263ab Downloader: Don't queue chapters on GlobalScope (#10217)
This fixes auto-download on library update not working on certain cases.
2023-12-07 22:17:01 -05:00
Ivan Iskandar 24e1b4034e Move workers to foreground service context a bit more safely (#10202)
The system will crash the app if the worker that calls setForeground() finished
before the service runner be able to call Service.startForeground(). This edge
case is not handled by WorkManager and there is no way to check if the required
calls are done.

So here we suspend the worker by an arbitrary duration assuming the transition
to foreground service is done by then.
2023-12-02 11:46:59 -05:00
Ivan Iskandar e5518b7615 PullRefresh: Invoke callback only when initiated by user (#10201) 2023-12-02 11:19:43 -05:00
Ivan Iskandar e5a22eafe7 Define storage permission in manifest (#10200)
Mainly for migration process and to avoid breakage on users who doesn't
change their granular storage prefs.
2023-12-02 10:35:03 -05:00
Ivan Iskandar 8ce8b60092 Migrate downloader service to WorkManager (#10190) 2023-11-29 16:34:07 -05:00
Ivan Iskandar 8ff2c01bf2 HomeScreen: Add static key for TabNavigator (#10191)
Fixes incorrect tab selection after process death
2023-11-29 10:43:21 -05:00
Ivan Iskandar 75314c78e0 Change default PTR colors (#10174) 2023-11-25 10:54:20 -05:00
Ivan Iskandar 53edae1b6b Fix PTR initial refreshing state (#10173) 2023-11-25 10:27:49 -05:00
Ivan Iskandar 356fc5b524 Fix PTR extra offset calculation (#10172) 2023-11-25 08:56:15 -05:00
Ivan Iskandar d59cb9c1e3 Migrate to M3 pull-to-refresh (#10164) 2023-11-21 22:09:41 -05:00
Ivan Iskandar 255ed50685 Migrate XML themes to Compose (#10152) 2023-11-19 11:25:39 -05:00
Ivan Iskandar 69aa13bc56 Remove animateItemPlacement modifier usage (#10146) 2023-11-18 08:39:08 -05:00
Ivan Iskandar ea15bc782a Update Scaffold fork (#10143)
https://android-review.googlesource.com/c/platform/frameworks/support/+/2690433
2023-11-16 09:02:36 -05:00
Ivan Iskandar 9ec0f73e87 Migrate deprecated progress indicator components (#10142) 2023-11-16 09:01:45 -05:00
Ivan Iskandar f9fb034330 Migrate deprecated tooltip components (#10141) 2023-11-16 09:01:12 -05:00
Ivan Iskandar 5f34539525 MangaScreen: Adjust "missing chapter count" item list styling (#10105)
Text style to labelMedium and set secondary alpha to the whole row
2023-11-05 09:15:51 -05:00
Ivan Iskandar ea99d77fda ExtensionLoader: Fix incorrect ext file deletion (#10026)
Ref c492efcb31
2023-10-15 22:05:35 -04:00
Ivan Iskandar 0026f96fad MangaSummary: Refactor to not use SubcomposeLayout (#10008) 2023-10-14 10:52:04 -04:00
Ivan Iskandar c492efcb31 ExtensionLoader: Set read-only to private extension files (#10007) 2023-10-12 23:04:40 -04:00
Ivan Iskandar 509bee0563 Add project icon (#9972) 2023-10-01 10:07:14 -04:00
Ivan Iskandar 816d7815e9 "Updates" widget for Galaxy Z Flip5 cover screen (#9892) 2023-09-02 09:37:25 -04:00
Ivan Iskandar 627f07408e Add private extension install method (#9710)
* Add private extension install method

Private extensions are put inside private data directory of the running app, so
this kind of extensions can only be used by the running app and not shared with
other apps.

One limitation of private extension is the lack of deeplink handlers (if there's
any) since the extension APK is not installed to the system.

When both kinds of extensions are installed with a same package name, shared
extension (the one installed to the system) will be used unless the version
codes are different. In that case the one with higher version code will be used.

* update
2023-08-05 12:15:52 -04:00
Ivan Iskandar af0fdfa3b7 ReaderViewModel: Fix saved state (#9807)
Also save page index
2023-08-05 09:47:02 -04:00
Ivan Iskandar 5c73045aa4 Don't require deeplink ext target to be pinned (#9740) 2023-07-19 19:54:06 -04:00
Ivan Iskandar 0759936226 Remove scrollable animation workaround (#9690)
Reverts ba93060e59
Related https://android-review.googlesource.com/c/platform/frameworks/support/+/2239762
2023-07-09 14:08:58 -04:00
Ivan Iskandar 8287c9d193 MangaChapterListItem: Replace swipe action method (#9682)
Using swipe (the library) and added haptic feedback
2023-07-08 10:02:20 -04:00
Ivan Iskandar 7c90fe0f7d AdaptiveSheet: Migrate deprecated swipeable (#9642) 2023-06-26 22:20:08 -04:00
Ivan Iskandar 25b0458930 composed Modifier changes (#9631)
Referring at the examples and other internal usages, the
resulting stateful Modifier should be separated from
all the previous Modifier chain.
2023-06-23 17:54:01 -04:00
Ivan Iskandar 6808fbbb21 Use lite compose-ui-tooling module on release builds (#9630)
The size reduction is minuscule but it's there.
2023-06-23 08:26:35 -04:00
Ivan Iskandar b4393ff741 Update core-splashscreen (#9629) 2023-06-22 21:59:17 -04:00
Ivan Iskandar b8af1621b5 Update Compose BOM v2023.06.00-alpha01 (#9628) 2023-06-22 21:50:18 -04:00
Ivan Iskandar 4a75f82a6f Update Paging and match version (#9626) 2023-06-22 14:20:33 -04:00
Ivan Iskandar 740e370465 Bump compile SDK version 34 (#9625) 2023-06-22 14:20:12 -04:00
Ivan Iskandar 9ec8d770ea MangaChapterListItem: Increase swipe action touch slop (#9598) 2023-06-10 12:48:03 -04:00
Ivan Iskandar 39e4568460 ReaderProgressIndicator: Convert to Compose (#9574) 2023-06-03 13:11:41 -04:00
Ivan Iskandar a458bd9fdb Update Glance v1.0.0-beta01 (#9551) 2023-05-27 22:59:21 -04:00
Ivan Iskandar 0189fc1f66 Bump Compose BOM version 2023.04.00-beta01.1 (#9548) 2023-05-27 09:17:31 -04:00
Ivan Iskandar 73118d4af7 DownloadCache: Fix freezing on initial loading of cache file (#9523) 2023-05-19 22:06:06 -04:00
Ivan Iskandar 6263a52777 Fix navigation backstack (#9497)
Partial revert of dbbf6c5de0
2023-05-13 14:22:02 -04:00
Ivan Iskandar 96defd6b05 Replace our custom Pager (#9494)
Turns out that changing the pagerSnapDistance
is enough to achieve the same result.
2023-05-13 12:06:00 -04:00
Ivan Iskandar 8df9bce1b4 Upgrade Kotlin 1.8.21 (#9495) 2023-05-13 12:05:19 -04:00
Ivan Iskandar 84acae27b7 ChapterNavigator: Fix rounding error when changing page with slider (#9477)
ChapterNavigator: Fix rounding error when changing page from slider
2023-05-08 09:00:05 -04:00
Ivan Iskandar d36cf5ce15 Chapter transition tweaks (#9470)
* Chapter transition tweaks

* Chapter transition cleanups
2023-05-07 10:08:33 -04:00
Ivan Iskandar f0dd33ee4c ChapterNavigator: Always show buttons and fix steps visual (#9461) 2023-05-06 11:15:39 -04:00
Ivan Iskandar fce9cb820c ChapterNavigator: Fix haptic feedback (#9458) 2023-05-05 22:15:56 -04:00
Ivan Iskandar 08e4863d94 ChapterNavigator: Fix background color (#9450) 2023-05-04 13:55:53 -04:00
Ivan Iskandar 2c6e025063 Add more info to debug screen (#9357)
* App version
* WebView version
* ART profile status
* Device model
* Android version
2023-04-18 22:59:27 -04:00
Ivan Iskandar 60d8650860 WheelPicker: Add manual input (#9338) 2023-04-15 09:26:33 -04:00
Ivan Iskandar a2627d70af WheelPicker: Add haptic feedback (#9322) 2023-04-14 21:58:57 -04:00
Ivan Iskandar c1e23ec18e GlobalSearchScreen: Skip result screen when using search intent (#9299) 2023-04-07 22:18:48 -04:00
Ivan Iskandar 182e642cfc SearchToolbar: Check initial search query to open keyboard by default (#9297) 2023-04-05 22:15:56 -04:00
Ivan Iskandar 7a1b599462 Adjust SearchToolbar soft keyboard behavior (#9282)
* Show soft keyboard when the text field is composed (a redo)
* Clear focus on text field when soft keyboard is hidden
* Request focus on text field and show soft keyboard
when clear button is clicked
2023-03-31 09:24:44 -04:00
Ivan Iskandar 6f1099b710 AdaptiveSheet: Wrap inside Dialog (#9279)
Because of Compose issue, the style of the sheet surface is adjusted as
a workaround

Ref https://issuetracker.google.com/issues/246909281
2023-03-29 22:34:32 -04:00
Ivan Iskandar 18e55aa25f Adjust tab indicator visual (#9219)
Now behaves like the non-compose indicator by showing the swipe progress too
2023-03-16 22:20:25 -04:00
Ivan Iskandar 4d3e13b0d1 Initialize download index disk cache (#9179) 2023-03-16 22:18:11 -04:00
Ivan Iskandar c0f94ae8af Revert "Fix banners-related issues" (#9186)
Revert "Fix banners-related issues (#9143)"

This reverts commit 63048d2f0b.
2023-03-09 22:10:49 -05:00
Ivan Iskandar 17ed4873e8 Bump compose-bom version 2023.02.00-rc02 (#9185) 2023-03-08 22:41:14 -05:00
Ivan Iskandar 63048d2f0b Fix banners-related issues (#9143)
This is most likely Compose issue so these changes will
be reevaluated when new Compose ver is out.
2023-02-25 14:44:35 -05:00
Ivan Iskandar ec3ce74af8 TrackDateSelectorScreen: Use M3 date picker (#9138) 2023-02-24 15:22:23 -05:00
Ivan Iskandar 36ae388332 Bump compose-bom version 2023.02.00-beta02 (#9137) 2023-02-23 22:29:38 -05:00
Ivan Iskandar 6b03dca5f4 Use Compose Foundation's flow layout (#9123) 2023-02-21 12:04:11 -05:00
Ivan Iskandar bd7b21337c Add minLines to comfortable grid item title (#9122) 2023-02-21 11:44:56 -05:00
Ivan Iskandar 60a3ba5a5c Use non-stable Compose BOM (#9120) 2023-02-21 10:41:56 -05:00
Ivan Iskandar c58b495433 MainActivity: Avoid navigator-related crash when handling onNewIntent (#9104)
(cherry picked from commit d3dadf71e8)
2023-02-19 11:51:44 -05:00
Ivan Iskandar f9e43f574f MangaCoverDialog: Disable memory cache (#9066)
(cherry picked from commit 1671a56f42)
2023-02-19 11:49:51 -05:00
Ivan Iskandar 48546c3db4 Scaffold: Fix snackbar bottom inset (#9052)
(cherry picked from commit 34a586ce48)
2023-02-19 11:49:38 -05:00
Ivan Iskandar 4d87ed496c Remove FAB extra padding in DownloadQueueScreen (#9053)
(cherry picked from commit ad762f8303)
2023-02-19 11:49:32 -05:00
Ivan Iskandar d3dadf71e8 MainActivity: Avoid navigator-related crash when handling onNewIntent (#9104) 2023-02-18 10:08:37 -05:00
Ivan Iskandarandarkon be4072c86b Rework on the wheel picker (#8559)
* Rework the wheel picker

doesn't need for the animation to stop to change the value

* fix

---------

Co-authored-by: arkon <arkon@users.noreply.github.com>
2023-02-12 23:10:47 -05:00
Ivan Iskandar 1671a56f42 MangaCoverDialog: Disable memory cache (#9066) 2023-02-10 22:38:59 -05:00
Ivan Iskandar 34a586ce48 Scaffold: Fix snackbar bottom inset (#9052) 2023-02-08 09:37:12 -05:00
Ivan Iskandar ad762f8303 Remove FAB extra padding in DownloadQueueScreen (#9053) 2023-02-08 09:37:04 -05:00
Ivan Iskandarandarkon ef9dacde79 Fully utilize WorkManager for library updates (#9007)
No more trampolining, and stuff.

It's pretty much straight copy-paste from the service, with
some changes related to cancellation handling. Manual updates
will also runs with workman job so auto update work
scheduling need some adjustments too.

Bumped version code to re-enqueue auto update job with the
new spec.

Co-authored-by: arkon <arkon@users.noreply.github.com>
2023-02-07 22:37:20 -05:00
Ivan Iskandar ab61a65b4a Add worker info screen (#8774)
Mainly for debug purpose, might help with support.
2023-01-02 21:58:11 -05:00
Ivan Iskandar 94a410f50f TrackDateRemoverScreen: Fix pop behavior after confirming removal (#8792) 2022-12-23 09:29:01 -05:00
Ivan Iskandar 8e1b5b4803 Pager: Bring back previous snapping behavior (#8776)
New default LazyList snap behavior is optimized for non-pager use.
2022-12-20 09:16:43 -05:00
Ivan Iskandar 8552838bda Update WorkManager (#8772) 2022-12-18 12:14:06 -05:00
Ivan Iskandar 9d2d78ae5b AdaptiveSheet: Don't blindly consume back event (#8760) 2022-12-17 12:56:19 -05:00
Ivan Iskandar 235bc77457 Fix indexing notif not showing (#8758) 2022-12-17 10:32:49 -05:00
Ivan Iskandar e20c66b156 App state banner tweaks (#8746)
* Move download indexing notification to this banner group
* Animate state changes
2022-12-16 22:18:17 -05:00
Ivan Iskandar ca500da4d8 Adjust insets handling in tablet UI (#8711)
* Adds startBar slot in Scaffold to handle nav rail
* Consumes unneeded insets in settings
2022-12-10 10:02:13 -05:00
Ivan Iskandar 820ed6a468 Move system bar color set to the main composable (#8710)
This one doesn't check navbar location before adding a scrim, doesn't really
matter since now no body component is being drawn below the system bar.
2022-12-10 10:01:16 -05:00
Ivan Iskandar 82a3a98a5a Adjust screen transitions (#8707)
* Fade transition between main navigation tabs
* Shared axis X between screen stacks

Activity transition is using a "close enough" shared axis X xml animation
2022-12-09 17:23:00 -05:00
Ivan Iskandar d97eab0328 Move app state banner to the very top (#8706)
This moves the banners to the root composable and so eliminates the need to
track the app states in every screen.
2022-12-09 11:20:13 -05:00
Ivan Iskandarandarkon f7a92cf6ac Replace reader's Presenter with ViewModel (#8698)
includes:
* Use coroutines in more places
* Use domain Manga data class and effectively changing the state system
* Replace deprecated onBackPress method

Co-authored-by: arkon <arkon@users.noreply.github.com>
2022-12-07 23:00:01 -05:00
Ivan Iskandar f05e251991 GlobalSearchScreen: Add unique key (#8693)
Avoids crash when an old screen is being replaced by a new one
2022-12-07 08:27:54 -05:00
Ivan Iskandar c288e6b8fa Fix ANR when opening from notification/widget (#8683) 2022-12-05 09:00:30 -05:00
Ivan Iskandar 8945ef8880 Change source preference theming fix (#8679) 2022-12-05 00:10:11 -05:00
Ivan Iskandar be854b3e90 Fix appbar back button in Settings screen (#8674) 2022-12-04 10:27:14 -05:00
Ivan Iskandar 47f079891f Track sheet fixes (#8673)
* Fix Track sheet not being disposed properly

* Change insets handling
2022-12-04 10:27:02 -05:00
Ivan Iskandar 7be9b49143 Fix BrowseSourceScreen list/grid unnecessary reloads (#8661) 2022-12-03 14:43:52 -05:00
Ivan Iskandar 1a70ebe7ea Fix crash when opening chapter from BrowseSourceScreen (#8657) 2022-12-03 00:26:11 -05:00
Ivan Iskandar 3d66eaea83 Merge Voyager screens (#8656)
* Merge Voyager screens

* cleanups
2022-12-02 22:35:30 -05:00
Ivan Iskandar 5b189a909b Use Voyager on Source Preference screen (#8651) 2022-12-02 13:14:18 -05:00
Ivan Iskandar 94d1b68598 Use Voyager on BrowseSource and SourceSearch screen (#8650)
Some navigation janks will be dealt with when the migration is complete
2022-11-30 23:05:11 -05:00
Ivan Iskandar cd13e187cf Use Voyager on Downloads screen (#8640) 2022-11-28 09:23:11 -05:00