Commit Graph

89 Commits

Author SHA1 Message Date
arkon 6510a9617a Allow permanently trusting unofficial extensions by version code + signature
Closes #10290
2024-01-07 13:35:44 -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
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
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 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
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
arkon ccd4143d9d extension-lib 1.5: Add AppInfo#getSupportedImageMimeTypes() 2023-04-28 11:36:17 -04:00
arkon 3cca460282 Misc cleanup 2023-03-19 22:38:14 -04:00
arkon 3d7c136320 Avoid crash when loading invalid extension package 2023-02-19 16:44:58 -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 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
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 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
Andreas 29fa93e829 Split the rest of the preferences in PreferencesHelper (#8074)
* Split the reset of the preferences in PreferencesHelper

* Capitalize ThemeMode
2022-09-25 10:07:06 -04:00
Andreas 30b3b2d3ff Split source preferences from PreferencesHelper (#8029) 2022-09-18 10:36:41 -04:00
arkon cd3cb72b65 Bump dependencies + linting 2022-09-10 23:57:03 -04:00
arkon d6f1534ee8 Address misc. build warnings 2022-08-10 23:26:34 -04:00
Andreas 7892cc1519 Log extension loading errors directly (#7716) 2022-08-10 15:53:47 -04:00
arkon b950370f12 Address some build warnings 2022-05-11 18:08:49 -04:00
arkon 5afff31f72 Formatting 2022-04-08 16:44:23 -04:00
arkon f0eb42e72d Update linter 2022-04-08 15:30:39 -04:00
Andreas 66a180bc36 Add ability to open FAQ and Guide, and Changelog in extension repository (#6469) 2022-01-22 14:17:43 -05:00
Ivan Iskandar 78a261f5d3 Reduce stutter when entering Browse screen (#6435)
* More coil

* ExtensionController: Drop first text change event

* Browse-Source: Remove unnecessary load

* ExtensionPresenter: Increase debounce timeout

To avoid heavy list reload during first enter animation
2022-01-08 12:55:22 -05:00
arkon 532a1b1aba Address some IDE warnings 2021-12-17 12:30:41 -05:00
arkon 60e73e2d1f Allow loading extension-lib 1.3
(Which doesn't actually exist yet, but will at some point after the next major release)
2021-11-28 14:55:03 -05:00
arkon 0edc981cd2 Move app and extension update notifications to new channels/group (closes #6168) 2021-10-30 17:42:06 -04:00
Ivan Iskandar 2e127dff1f Replace Timber with Square Logcat and make logging configurable (#6062)
* Replace Timber with Square Logcat

* Configurable logger
2021-10-07 22:12:55 -04:00
Ivan Iskandar b284384f0a Implement new extension install methods (#5904)
* Implement new extension install methods

* Fixes

* Resolve feedback

* Keep pending status when waiting to install

* Cancellable installation

* Remove auto error now that we have cancellable job
2021-09-25 14:31:52 -04:00
arkon a2cf210a52 Unify NSFW flagging for sources/extensions
Since multisource extensions are no longer a thing, we now simply rely on the flag at the extension level, i.e. the per-Source/SourceFactory `@Nsfw` annotation is no longer checked.
We'll have to remove all of the annotation usages from the existing sources, which will also effectively break the setting for older versions of the app.
2021-09-13 17:49:58 -04:00
arkon ec4e631760 Clean up some companion object usages 2021-09-05 14:34:29 -04:00
Taco 12a9d0575d Use more Compat utilities (#5786)
* Use ActivityCompat.recreate

* Use more KTX extensions

* Use PackageInfoCompat.getLongVersionCode

* Remove unnecessary compat usages
2021-08-27 16:33:12 -04:00
arkon b092e98ac9 Include extension loading errors in error logs 2021-04-19 10:18:32 -04:00
arkon 1b921f9845 Make extension load error logs less verbose 2021-04-03 10:27:40 -04:00
arkon a398c3fb81 Handle link for multisource extension commits (closes #4432) 2021-02-11 17:35:15 -05:00