Commit Graph

66 Commits

Author SHA1 Message Date
AntsyLich 37419cdc26 Bump compile sdk to 35
Co-authored-by: p
2024-10-12 05:11:58 +06:00
AntsyLich d6252ab770 Address spotless lint errors (#1138)
* Add spotless (with ktlint)

* Run spotlessApply

* screaming case screaming case screaming case

* Update PagerViewerAdapter.kt

* Update ReaderTransitionView.kt
2024-08-19 18:11:39 +06:00
AntsyLich 70cd688ac2 Trust extension by repo (#570) 2024-05-04 16:26:45 +06:00
AntsyLich 21145144cd Fix some extension related issue and cleanups
- Extension being marked as not installed instead of untrusted after updating with private installer
- Extension update counter not updating due to extension being marked as untrusted
- Minimize `Key "extension-XXX-YYY" was already used` crash
2024-05-04 16:08:38 +06:00
Jobobby04 a08e03f5cb Fix multiple issues regarding sources loading too late 2024-03-17 19:44:22 +06:00
AwkwardPeak7 79f46b25f6 Fix new extension install not registering in app. (#275)
* Fix extension install not registering

* fix duplicate key compose error on extension update

* fix doubling of extension after update

* not needed
2024-01-29 23:08:28 +06:00
AntsyLich aa498360db Move :core to :core:common 2024-01-29 15:20:21 +06:00
AntsyLich cb06898430 Fix issues when updating extensions 2024-01-22 02:27:45 +06: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 493da5c3f4 Force users to retrust unknown extensions on cold starts 2024-01-05 08:53:45 -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
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 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 cf14831fbe Clean up preference extensions/items a bit 2023-07-19 21:57:22 -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 1730dd6af1 Move more things around 2023-01-27 22:31:12 -05:00
arkon b53e24e0db Move more models to domain module 2023-01-22 10:37:13 -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
Andreas 30b3b2d3ff Split source preferences from PreferencesHelper (#8029) 2022-09-18 10:36:41 -04:00
Andreas 0086743a53 Use 1.x preference abstraction (#8020)
* Use 1.x preference abstraction

- Uses SharedPreferences compared to 1.x impl which uses DataStore but it breaks all settings screens currently
- Move PreferencesHelper to new PreferenceStore
  - PreferencesHelper should be split into smaller preference stores and be in core or domain
- Remove flow preferences as new PreferenceStore handles changes for us

Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>

* Fix PreferenceMutableState not updating

* Fix changes not emitting on first subscription

Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>
2022-09-17 11:48:24 -04:00
Alessandro Jean 084e6a964e Enable sub-languages on app first run (#7127)
* Enable sub-languages on app first run.

* Fix wrong language code string parsing.

* Fix some build issues due to rebase.

* Use PreferenceHelper and remove an extra preference.

* Remove a constant.
2022-08-30 15:37:15 -04:00
AntsyLich 8d40e20b7d Prevent unofficial exts from getting marked as obsolete or updateable (#7871)
* Prevent unofficial exts from getting marked as obsolete

* Prevent unofficial ext `hasUpdate` getting marked as true
2022-08-27 12:12:59 -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
Andreas 73901f50c0 Use SharedFlow for available extensions to always emit the value (#7609)
- Fixes Extension screen being stuck refreshing due to StateFlow not emitting due to the value being the same
2022-07-25 08:31:41 -04:00
Andreas 35ec593658 Use Flow in ExtensionManager and SourceManager (#7547)
- Replace ExtensionManager relay and observable with Flow
- Inverse SourceManager dependency
    - SourceManager observers ExtensionManager flow
- Separate SourceData from SourceRepository as it created a circular dependency
2022-07-16 15:08:15 -04:00
Andreas 018ca71336 Use Stable interface for Browse screens (#7544) 2022-07-16 14:44:37 -04:00
AntsyLich 64f60c36e6 ExtensionManger: Fix unofficial extension has update (#7503) 2022-07-10 10:00:48 -04:00
AntsyLich 9d5b7de1d8 Maintain source info in the database. (#6389)
* Maintain Source Info in database

* Review changes and cleanups

* Review changes 2

* Review Changes 3
2022-06-14 09:10:40 -04:00
Andreas 29a0989f28 Convert Source tab to use Compose (#6987)
* Use Compose in Source tab

* Replace hashCode with key function

* Add ability to turn off pins moving on top of source list

* Changes from review comments
2022-04-24 14:35:59 -04:00
arkon f16fb4e1e4 Minor cleanup 2022-04-14 18:15:47 -04:00
arkon f0eb42e72d Update linter 2022-04-08 15:30:39 -04:00
arkon 78c2631b6f Move preference extension functions to utils 2021-12-31 16:32:24 -05:00
arkon 6a39c8fc13 Avoid loading available extensions list if it seems too small 2021-11-28 18:29:22 -05: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 c620c924f9 Revert "Use flows instead of relays for extensions loading"
This reverts commit 07e76f35fa.
2021-01-07 19:06:34 -05:00
arkon 07e76f35fa Use flows instead of relays for extensions loading 2021-01-04 11:09:31 -05:00
arkon 1a439ecece Remove source overwrite logic since built-in sources no longer exist 2020-12-12 16:15:18 -05:00
arkon 2dc47352f8 Add operator functions for handling set preferences 2020-07-25 18:07:10 -04:00
arkon 3f63b320c4 Linting fixes 2020-04-25 14:24:45 -04:00
arkon 401210da44 More FlowPreferences migrations 2020-04-17 18:30:05 -04:00
arkon 022c0746c0 Show error toast when extensions list fails to load 2020-04-03 22:54:52 -04:00