Commit Graph

182 Commits

Author SHA1 Message Date
AntsyLich
cb06898430 Fix issues when updating extensions 2024-01-22 02:27:45 +06:00
AntsyLich
5067160132 Add a temporary icon 2024-01-16 01:17:18 +06:00
AntsyLich
dfb3091e38 Make the app Android 8+ 2024-01-16 01:07:32 +06:00
arkon
02e50411de Minor extension repo enhancements
- Shortcut to settings from extensions tab
- Don't show error toast anymore if nothing's loaded
- Ability to copy extension repo URL to clipboard
2024-01-11 18:25:13 -05:00
arkon
3d178737b1 Move extension repos interactors to proper package
Also retain ordering of added repos.
2024-01-08 17:15:48 -05:00
arkon
bf737cf95c Remove built-in official extension repo support 2024-01-07 23:06:17 -05:00
arkon
4b8fa059d5 Fix external repo info banner in ExtensionDetailsScreen 2024-01-07 16:35:25 -05:00
arkon
6510a9617a Allow permanently trusting unofficial extensions by version code + signature
Closes #10290
2024-01-07 13:35:44 -05:00
arkon
9c899e97a9 Clean up external repos
- Accept full URL as input instead, which allows for non-GitHub
- Remove automatic CDN fallback in favor of adding that as an external repo if needed
2024-01-05 23:13:16 -05:00
arkon
556f5a42a7 Fix lint error 2024-01-05 17:49:19 -05:00
arkon
c17ada2c98 Support external repos
Largely taken from SY.

Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
2024-01-05 17:28:08 -05:00
arkon
e0a0942015 Remove custom extension readme/changelog URLs
These were barely used/maintained, so just killing them.
Changelog menu item still exists to take you to the relevant git history.
2024-01-05 17:07:49 -05:00
arkon
493da5c3f4 Force users to retrust unknown extensions on cold starts 2024-01-05 08:53:45 -05:00
arkon
8b65fd5751 Minor exception message cleanup 2023-12-28 16:33:54 -05:00
arkon
80d6d412f3 Avoid crashing if loading non-read-only private extension
Fixes #10252
2023-12-24 22:53:35 -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
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