Commit Graph

166 Commits

Author SHA1 Message Date
arkon ab9a26f6bd Migrate to some newer date/time APIs 2023-12-08 23:11:53 -05:00
arkon bcc42dd259 Exclude some more app state preferences from backups 2023-11-21 22:11:44 -05:00
arkon 0d1bced122 Replace remaining Android-specific strings
Also renaming the helper composables so it's a bit easier to find/replace everything
in forks.
2023-11-18 19:41:33 -05:00
arkon 46e734fc8e Migrate to multiplatform string resources (#10147)
* Migrate to multiplatform string resources

* Move plurals translations into separate files

* Fix lint check on generated files
2023-11-18 13:54:56 -05:00
arkon 953f5fb025 Lint fixes 2023-11-05 09:14:57 -05:00
arkon 1d144e6767 Restrict line length with ktlint 2023-11-04 23:28:41 -04:00
arkon c5e8c9f01f Revert "Require Android 8+"
This reverts commit 64c50c1283.

Forgot we need to manage app update checks manually...
2023-11-04 19:36:29 -04:00
arkon 64c50c1283 Require Android 8+
Given that the next stable version of Chrome (120) will require Android 8+, it's
inevitable that the WebView functionality will gradually break. As always, newer
OS versions are recommended for better support with evolving Internet technologies.

According to https://apilevels.com/, Android 8+ still covers 93.7% of Android users.
2023-11-04 19:21:46 -04:00
Ivan Iskandar ea99d77fda ExtensionLoader: Fix incorrect ext file deletion (#10026)
Ref c492efcb31
2023-10-15 22:05:35 -04:00
Ivan Iskandar c492efcb31 ExtensionLoader: Set read-only to private extension files (#10007) 2023-10-12 23:04:40 -04:00
arkon e47f4cc177 Specify broadcast receiver export flags
Really only useful once we target Android 14, but doesn't hurt to do it now.
2023-10-07 10:03:45 -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
arkon 7798186c32 Drop support for extension-lib 1.3 2023-08-04 10:35:57 -04:00
arkon 10b0ef9b6d Dismiss extension update notification if all updates installed 2023-08-02 18:00:06 -04:00
arkon 0f21d16263 Minor cleanup 2023-07-30 10:08:51 -04:00
arkon abae9bf37d Minor cleanup 2023-07-23 20:03:37 -04:00
arkon cf14831fbe Clean up preference extensions/items a bit 2023-07-19 21:57:22 -04:00
arkon ac306547a0 Bump dependencies 2023-07-18 19:12:04 -04:00
arkon 30f845139d Use consistent extension icon URLs
Better caching between versions.
2023-07-16 15:44:36 -04:00
arkon a629db2884 Address some build warnings 2023-07-14 23:08:45 -04:00
arkon b79ef5dc79 Address some deprecation warnings 2023-06-30 22:14:17 -04:00
arkon ee95c1439f Blur manga info header image
Similar to J2K. This only applies on Android 12+.
2023-06-13 20:36:33 -04:00
Two-Ai 0ac38297f4 Replace RxJava in extension installer (#9556)
* Replace RxJava in extension installer

Replace common downloadsRelay with Map of individual StateFlows

* Drop RxRelay dependency

* Simplify updateAllExtensions

* Simplify addDownloadState/removeDownloadState

Use immutable Map functions instead of converting to MutableMap
2023-05-30 10:25:20 -04:00
Andreas f63573f25f Remove SourceData and use StubSource directly for database (#9429) 2023-05-03 10:33:05 -04:00
arkon ccd4143d9d extension-lib 1.5: Add AppInfo#getSupportedImageMimeTypes() 2023-04-28 11:36:17 -04:00
arkon 67b4e53a58 Minor cleanup 2023-04-23 10:11:26 -04:00
arkon 3cca460282 Misc cleanup 2023-03-19 22:38:14 -04:00
arkon 7d8a865cac Simplify some of the notification builders 2023-03-19 16:24:37 -04:00
arkon 93523ef50b Remove dependency injection from core module and data module from presentation-widget module
Includes side effects:
- No longer need to restart app for user agent string change to take effect
- parseAs extension function requires a Json instance in the calling context, which doesn't necessarily need to be the default one provided by Injekt
2023-02-20 19:02:38 -05:00
arkon 3d7c136320 Avoid crash when loading invalid extension package 2023-02-19 16:44:58 -05:00
arkon d400ac2a49 Remove unnecessary usages of NotificationManagerCompat to actually create notifications 2023-02-18 17:10:45 -05:00
arkon 2970eca9e4 Remove background extensions updates check
Same reasoning as removing app update check. It gets kicked off in the foreground now too.
2023-02-12 23:07:11 -05:00
arkon ab6dfe9e25 Bump dependencies
Fixes #8168, I think.
2023-02-08 22:53:42 -05:00
Two-Ai aca65f13bb Misc Service cleanup (#9005)
* Simplify DownloadService wake lock handling

_isRunning is only modified in onCreate/onDestroy, so the listener
job is redundant.

* Drop superclass calls to Service.onCreate/onDestroy

From https://developer.android.com/guide/components/services
> Note: Unlike the activity lifecycle callback methods, you are not
> required to call the superclass implementation of these callback
> methods.
2023-01-30 17:25:54 -05:00
arkon 1730dd6af1 Move more things around 2023-01-27 22:31:12 -05:00
stevenyomi 448702e5be OkHttp Call: split await() and awaitSuccess() (#8980) 2023-01-24 22:34:31 -05:00
arkon b53e24e0db Move more models to domain module 2023-01-22 10:37:13 -05:00
stevenyomi 293b967858 Fix installing extensions on MIUI (#8916)
* Fix installing extensions on MIUI

* isShizukuReady -> isShizukuInstalled
2023-01-15 10:32:27 -05:00
arkon a2ee4e63ae Minor cleanup 2023-01-12 22:53:28 -05:00
arkon 5d9753d6a7 Bump minimum ext-lib to 1.3 2023-01-08 10:32:35 -05:00
Ivan Iskandar 8552838bda Update WorkManager (#8772) 2022-12-18 12:14:06 -05:00
Jays2Kings 7608cb0da3 Check ext lib version when checking for updates (#8740) 2022-12-14 13:49:10 -05:00
arkon 3480b45098 Minor cleanup 2022-11-27 17:12:45 -05:00
arkon 811931ccc0 Minor cleanup 2022-11-10 22:23:34 -05:00
AntsyLich e1ab1fdb65 Prompt Extension update if ext-lib is updated
Co-authored-by: arkon <arkon@users.noreply.github.com>
2022-10-29 10:05:30 -04:00
arkon 7e40680af0 Perform download cache renewal async
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
2022-10-21 15:00:41 -04:00
arkon 93925a7286 Remove redundancy in ExtensionManager 2022-10-21 14:42:21 -04:00
arkon 6be9cccc7a Revert min extension-lib change
Some extensions haven't been bumped yet. We should probably try to bump everything at some point.
Also includes some minor cleanup.
2022-10-01 13:24:38 -04:00
arkon db3cbac310 Stop loading extension-lib <= 1.2 2022-10-01 11:34:46 -04:00
Alessandro Jean ba533f30ce Add support to update strategy on global update (#7902)
* Add support to update strategy.

* Add JavaDoc and bump the LIB_VERSION_MAX constant.

* Fix a word typo.

* Store update strategy enum as integer in the DB.
2022-09-25 10:12:36 -04:00