Commit Graph

133 Commits

Author SHA1 Message Date
arkon
336221a972 Use immutable collections in more places 2023-11-11 22:44:12 -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
Ota
f30ab56fd0
New alphabetical chapter sort (#10073)
* added alphabetical chapter sorting

* Deleted sort_by_alphabet and re-utilized action_sort_alpha

* Accidentally deleted wrong string. Now solved

* Accidentally deleted wrong string. Now solved

Deleted sort_by_source instead of sort_by_alphabet in strings.xml.
Now reverted.

* Alphabetical sorting now uses Collator

* Clean up repeated Collator instances

---------

Co-authored-by: arkon <eugcheung94@gmail.com>
2023-11-04 15:47:32 -04:00
arkon
7cf2ce2994 Handle Brotli-compressed responses 2023-10-31 18:03:07 -04:00
arkon
cb8ea5eab0 Add basic storage usage info to "Data and storage" settings screen 2023-10-29 18:18:56 -04:00
arkon
ce7bf396eb Don't include "app state" preferences in backups 2023-10-29 12:24:02 -04:00
arkon
092d930175 Update default user agent string 2023-10-24 21:58:53 -04:00
arkon
22df12a680 Change crash log info to just have actual WebView version 2023-10-17 22:30:55 -04:00
Caleb Morris
447bcb28ef
[dev QoL] Added AndroidStudio previews for [presentation.history] namespace (#10012)
* Added display preview for HistoryDialogs

* Added preview with provider for each branch for HistoryItem

* Added previews for HistoryScreen

Created in-memory preferences construct for when its needed at top-level injection

* Fixed ktlint violations
2023-10-14 22:23:11 -04:00
arkon
94cba9324c Remove beta webtoon viewer split page
This had a bunch of issues around split pages not showing up properly so things
end up appearing to be missing while reading.
It'd be more worthwhile redoing the reader viewers than trying to get this to work
properly. It'd be better to just enable the split pages on download instead.

Closes #8433
2023-10-08 16:39:45 -04:00
arkon
0f42b9f154 Add source preferences to backups
Closes #1857

Co-authored-by: jmir1 <jmir1@users.noreply.github.com>
2023-10-08 16:02:03 -04:00
arkon
730f3a6e52 Exclude tracker credentials in backups 2023-10-08 11:07:42 -04:00
arkon
72024aa44a Add app settings to backups
This should be compatible with Aniyomi's implementation.
Related to #1857

Co-authored-by: jmir1 <jmir1@users.noreply.github.com>
2023-10-08 10:41:20 -04:00
arkon
de92b1351f Add WebView-based user agent string to debug info
Could probably use this when choosing a user agent later on.
2023-09-22 16:42:04 -04:00
Soitora
f5e0cee36c
Change website URLs to reflect changes (#9916)
Change website URLs
2023-09-10 18:11:00 -04:00
arkon
26c5d761da Add more replacement suspend functions for source APIs
These are basically 1-to-1 replacements for the existing RxJava APIs.
This will make the initial migration off of RxJava simpler. We'll
revisit the actual call flows in followup versions of the API.
2023-09-08 22:58:46 -04:00
arkon
d29b7c4e57 Switch to different ktlint plugin
Should be better at incremental builds.
To format, run `./gradlew ktlintFormat`.
2023-09-01 23:02:18 -04:00
arkon
d1c956401c Add documentation for HttpException
Corresponds with https://github.com/tachiyomiorg/extensions-lib/pull/12
2023-08-18 22:28:14 -04:00
Alessandro Jean
9b6567f5e4
Add support to kotlin.time APIs in the rate limit interceptor (#9797)
* Add support to kotlin.time APIs in the rate limit interceptor.

* Add a missing line break in the doc.

* Move the specific host to the same file.

* Add kotlin.time rule to Proguard and remove specific host rule.

* Mark the old version as deprecated and address review.

* Remove unused import.

* Remove yet another unused import.
2023-08-04 17:11:43 -04:00
arkon
6d69caf59e Show help banner when Cloudflare captcha page is shown in WebView 2023-07-28 23:09:52 -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
5467104b95 Fix window undimming when reader custom filter settings are open 2023-07-15 13:23:25 -04:00
arkon
e0733c1a4c Clean up NetworkHelper 2023-07-15 13:05:25 -04:00
arkon
22e8050fff Handle Cloudflare in default network client and deprecate cloudflareClient 2023-07-15 09:34:20 -04:00
arkon
a629db2884 Address some build warnings 2023-07-14 23:08:45 -04:00
arkon
87bdee5990 Move SettingsItems composables to presentation-core 2023-07-10 17:25:52 -04:00
arkon
0ac5f3b93c Accept third party cookies in WebView instances
May help with Cloudflare.
2023-07-01 09:40:58 -04:00
arkon
e2d6269a38 Bump default user agent string 2023-06-23 22:23:56 -04:00
arkon
e323f3c25a Don't update last page read/read state of chapter if Incognito Mode is enabled
Actually closes #7228, which I forgot was about history more than trackers.
2023-06-13 19:30:02 -04:00
arkon
431f8772f8 Address minor build warnings 2023-05-31 22:47:31 -04:00
arkon
8f4bc71cf7 Remove confirm exit option
Redundant with predictive back, but also just sort of pointless since it doesn't help
with any sort of app state retention.
2023-05-31 18:51:01 -04:00
arkon
46efd4c134 Fix some crashes 2023-05-27 09:53:01 -04:00
arkon
efdff9a21a Update minimum WebView version 2023-05-24 17:55:27 -04:00
arkon
1824adb2ed Update default user agent string 2023-05-24 17:54:16 -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
arkon
1814b3b22c Don't unnecessarily wrap IOExceptions in UncaughtExceptionInterceptor 2023-03-28 18:16:26 -04:00
arkon
953720472f Add "Rotate wide pages to fit" setting for paged reader
Originally authored in #7983

Co-authored-by: timothyng-164 <timothyng-164@users.noreply.github.com>
2023-03-24 22:49:35 -04:00
arkon
c6e5f8abd9 Bump default user agent string and minimum WebView version 2023-03-05 10:17:22 -05:00
Andreas
f27dc19b37
Move Local Source to separate module (#9152)
* Move Local Source to separate module

* Review changes
2023-02-26 16:16:49 -05:00
arkon
26d422b0ae Avoid uncaught exceptions from OkHttp interceptors crashing entire app 2023-02-25 15:13:59 -05:00
arkon
fd7c993b0b Move CheckboxState to core module 2023-02-21 22:52:36 -05: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
b49280e347 Remove unused Rx/Coroutines converters 2023-02-18 10:16:05 -05:00
stevenyomi
0d8f1c8560
Tweak Response.parseAs() to utilize intrinsics (#9047) 2023-02-07 22:10:28 -05:00
stevenyomi
7559c133c0
Call.await(): copy exception message when preserving error stack (#9013) 2023-02-01 11:09:35 -05:00
arkon
1730dd6af1 Move more things around 2023-01-27 22:31:12 -05:00
Andreas
2501fef9e4
Split UpdatesGridGlanceWidget into smaller bits (#8991)
- Renamed Composables
- Moved Constants to core module
2023-01-27 14:49:57 -05:00
Andreas
12e41b6e6f
Move Glance Widget to seperate module (#8989)
Move Widget to seperate module

- Create a core module for presentation. Widget and App will share some resources and hopefully composables
2023-01-26 17:53:24 -05:00
stevenyomi
448702e5be
OkHttp Call: split await() and awaitSuccess() (#8980) 2023-01-24 22:34:31 -05:00
Andreas
aee785a8bb
Move more implementation to data module (#8971) 2023-01-22 11:44:39 -05:00
Andreas
2b5d9fd76b
Move shared configuration to subprojects in root Gradle file (#8951)
* Move shared configuration to subprojects in root Gradle file

* Missed but not forgotten

* Review changes
2023-01-20 23:04:22 -05:00
Andreas
c31e75f02f
Create plugin for linting (#8942) 2023-01-18 22:33:56 -05:00
arkon
a2ee4e63ae Minor cleanup 2023-01-12 22:53:28 -05:00
arkon
4cd01428ed Only show MIUI extension warning on MIUI >= 13
Related to #8834
2023-01-08 15:04:06 -05:00
arkon
addd6bffbd Bump default user agent string and minimum WebView version 2023-01-07 11:51:36 -05:00
arkon
db3c98fe72 Update OkHttp 2022-12-25 00:24:53 -05:00
arkon
2a2c6cee5f Allow zooming in WebView
Note that this does not force-enable zooming on pages with set viewports (which typically implies proper mobile scaling).
Closes #8588
2022-11-21 18:39:16 -05:00
arkon
d12ea86b55 Add shecan DoH provider
Closes #8557
2022-11-18 22:28:08 -05:00
arkon
21bc0f1952 Don't use default Lenovo "browser" handler 2022-11-09 19:43:52 -05:00
arkon
65387d0089 Bump default user agent string 2022-11-04 09:38:49 -04:00
stevenyomi
073e9f94ff
Reorder parameters of JSON parsing method (#8321) 2022-10-28 22:44:31 -04:00
arkon
fbda243c0d Avoid crashing during eager WebView init 2022-10-21 16:57:13 -04:00
stevenyomi
2d19729869
Clean up OkHttp methods and parse from Okio directly (#8238) 2022-10-18 12:09:23 -04:00
Ivan Iskandar
890f1a3c7b
Full Compose settings (#8201)
* Uses Voyager for navigation.
* Replaces every screen inside settings except category editor screen since it's
called from several places.
2022-10-15 11:38:01 -04:00
arkon
26a42ba9c0 Upgrade to Kotlin 1.7.20
Also run formatter and address some deprecation warnings.
2022-10-11 22:40:08 -04:00
arkon
7be6863910
Add JavaScriptEngine abstraction to extensions-lib (#8155)
This allows us to swap out the implementation in the future and on different platforms
without major changes to the extensions themselves.
2022-10-08 09:45:06 -04:00
stevenyomi
8b9a06e298
Requests: add GET(HttpUrl) overload (#8107)
Requests: add GET(HttpUrl) overload
2022-09-28 17:35:58 -04:00
AntsyLich
e2ce3f68bf
Increase timeout duration of WebViewInterceptors (#8099) 2022-09-27 17:43:46 -04:00
stevenyomi
f4c684b4b8
Remove cache control on already cacheless image request (#8085) 2022-09-26 17:13:03 -04:00
AntsyLich
a35f947892
Cleanup webview interceptors (#8067)
* Cleanup webview interceptors

* Review changes + Improvement

* Review Changes 2
2022-09-25 13:09:40 -04:00
arkon
f0af3858e8 Bump minimum WebView version and default user agent string 2022-09-25 10:55:10 -04:00
Andreas
b5dca2eb09
Move chapter preferences from PreferencesHelper to LibraryPrefrences (#8061) 2022-09-24 10:14:16 -04:00
Andreas
5cdcc1679f
Split backup preferences from PreferencesHelper (#8051) 2022-09-22 08:57:42 -04:00
Andreas
e82963c9ef
Split download preferences from PreferencesHelper (#8048) 2022-09-21 17:45:07 -04:00
arkon
2b089648a3 Remove redundant preference keys 2022-09-20 00:13:33 -04:00
arkon
0225711f6f Clean up base classes
Should be able to throw away some of the search controller stuff after Global Search is migrated
2022-09-18 17:22:54 -04:00
arkon
7ec822503a Catch error properly when app update check fails (fixes #8019) 2022-09-18 16:24:26 -04:00
Andreas
b668364afb
Split security preferences from PrefrencesHelper (#8030) 2022-09-18 13:07:48 -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
Andreas
86fe850794
Extract source api from app module (#8014)
* Extract source api from app module

* Extract source online api from app module
2022-09-15 18:12:27 -04:00