219 Commits

Author SHA1 Message Date
KaiserBh
334e9fb680
feat: add cross device sync (#1005)
* feat: add cross device sync.

* chore: add google api.

* chore: add SY specifics.

* feat: add backupSource, backupPref, and "SY" backupSavedSearches.

I forgot to add the data into the merging logic, So remote always have empty value :(. Better late than never.

* feat(sync): Allow to choose what to sync.

Various improvement and added the option to choose what they want to sync. Added sync library button to LibraryTab as well.

Signed-off-by: KaiserBh <kaiserbh@proton.me>

* oops.

Signed-off-by: KaiserBh <kaiserbh@proton.me>

* refactor: fix up the sync triggers, and update imports.

* refactor

* chore: review pointers.

* refactor: update imports

* refactor: add more error guard for gdrive.

Also changed it to be app specific, we don't want them to use sync data from SY or other forks as some of the model and backup is different. So if people using other forks they should use the same data and not mismatch.

* fix: conflict and refactor.

* refactor: update imports.

* chore: fix some of detekt error.

* refactor: add breaks and max retries.

I think we were reaching deadlock or infinite loop causing the sync to go forever.

* feat: db changes to accommodate new syncing logic.

Using timestamp to sync is a bit skewed due to system clock etc and therefore there was a lot of issues with it such as removing a manga that shouldn't have been removed. Marking chapters as unread even though it was marked as a read. Hopefully by using versioning system it should eliminate those issues.

* chore: add migrations

* chore: version and is_syncing fields.

* chore: add SY only stuff.

* fix: oops wrong index.

Signed-off-by: KaiserBh <kaiserbh@proton.me>

* chore: review pointers.

Signed-off-by: KaiserBh <kaiserbh@proton.me>

* chore: remove the option to reset timestamp

We don't need this anymore since we are utilizing versioning system.

Signed-off-by: KaiserBh <kaiserbh@proton.me>

* refactor: Forgot to use the new versioning system.

I forgot to cherry pick this from mihon branch.

* chore: remove isSyncing from Chapter/Manga model.

Signed-off-by: KaiserBh <kaiserbh@proton.me>

* chore: remove unused import.

Signed-off-by: KaiserBh <kaiserbh@proton.me>

* chore: remove isSyncing leftover.

Signed-off-by: KaiserBh <kaiserbh@proton.me>

* chore: remove isSyncing.

Signed-off-by: KaiserBh <kaiserbh@proton.me>

* refactor: make sure the manga version is bumped.

When there is changes in the chapters table such as reading or updating last read page we should bump the manga version. This way the manga is synced properly as in the History and last_read history is synced properly. This should fix the sorting issue.

Signed-off-by: KaiserBh <kaiserbh@proton.me>

---------

Signed-off-by: KaiserBh <kaiserbh@proton.me>
2024-03-16 11:53:20 -04:00
AntsyLich
91b7f0c1d0 Make tracker use Mihon's client
(cherry picked from commit 8c910f2a2c27dc339a4b05f03be3386a3afa2194)
2024-01-28 17:33:46 -05:00
arkon
807af9a35d Allow deep linking to add external repo
(cherry picked from commit f115edf2eac125d0e6a0fdec79bd9d6627c3c53b)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
2024-01-09 18:51:59 -05:00
arkon
c801aec27a Allow opening .tachibk files directly with app to restore
(cherry picked from commit 727289c8ebf504edbd1d330ac1ab9091908fc086)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
2024-01-09 18:51:56 -05:00
arkon
4003263828 Address some build warnings
(cherry picked from commit 2d7650537db907a4129f4a07db15950339b319e9)

# Conflicts:
#	README.md
#	app/src/main/java/eu/kanade/presentation/category/components/CategoryDialogs.kt
#	source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt
2023-12-25 19:47:20 -05:00
arkon
c3f5a5d7e0 Set foreground service type for ExtensionInstallService
(cherry picked from commit 8aaf8df7080c232e3bb7966a88f608a4e176a525)
2023-12-24 14:03:34 -05:00
Ivan Iskandar
2e5c31f3d6 Define storage permission in manifest (#10200)
Mainly for migration process and to avoid breakage on users who doesn't
change their granular storage prefs.

(cherry picked from commit e5a22eafe72b701ed277d937a5c0f25d84a5eb25)
2023-12-24 12:15:19 -05:00
Ivan Iskandar
fcb230df45 Migrate downloader service to WorkManager (#10190)
(cherry picked from commit 8ce8b600922410a4eb64da35a1850840a2f28669)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadService.kt
2023-12-24 11:53:10 -05:00
arkon
ab63f6036c Remove storage permissions
Requires adjusting some file reading to first copy to a temporary file
in cache that we have permissions to read from. This is only applicable for things
like ZIP files where we need an actual File rather than just some Android content
URI shenanigans.

(cherry picked from commit 4fcdde4913df28bbd678ae1be4a2971ed77179d3)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/RarPageLoader.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ZipPageLoader.kt
#	source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt
2023-12-24 11:46:47 -05:00
arkon
47f9bf08cc Replace AppUpdateService with a WorkManager job
Fixes #7773

Co-authored-by: Jays2Kings <Jays2Kings@users.noreply.github.com>
(cherry picked from commit eed57b80be077a9f73c36d8dc572f34f59c1ba8d)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateService.kt
2023-10-29 12:47:28 -04:00
Ivan Iskandar
32b97eb206 "Updates" widget for Galaxy Z Flip5 cover screen (#9892)
(cherry picked from commit 816d7815e94f8b1286e17b1459c3a01a9aba7369)
2023-09-04 12:15:26 -04:00
arkon
347f98b392 Add ResolvableSource interface for potentially opening entries directly based on some URI via a share intent
Implemented as an intermediate step in the existing Global Search share intent workflow.
If any source manages to resolve the URI (e.g., a URL, a slug, etc.), the resolved SManga entry
is directly opened. If nothing gets resolved, continue to a Global Search.

(cherry picked from commit 6d9a8a30e974574b8d92ba478333e6f62b0de2e2)
2023-09-03 23:32:42 -04:00
arkon
095c5f829e Remove unnecessary profileable flag in manifest
(cherry picked from commit 400ca48456c3aad6572aaa1893ba11466bbad6f5)

# Conflicts:
#	app/src/main/baseline-prof.txt
2023-08-12 16:47:46 -04:00
arkon
95c8ae8cad Combine tracking OAuth login activities
(cherry picked from commit 9dc66c7c8d6280afecc01e64ca24a3899a36105e)
2023-08-12 16:46:31 -04:00
arkon
6b1bcb1511 Enable predictive back gesture for Android 13 (behind developer option)/14+
(cherry picked from commit a4d86a2e1e525dce9fb12f323b7013394639b577)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
2023-05-20 19:24:29 -04:00
arkon
15d52784f8 Convert BackupRestoreService to a WorkManager job
Co-authored-by: Jays2Kings <Jays2Kings@users.noreply.github.com>
(cherry picked from commit cdc160afc2e3bb615fe35c8d7261a3bc16f61996)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt
2023-03-20 18:42:05 -04:00
Ivan Iskandar
4f4205230f Fully utilize WorkManager for library updates (#9007)
No more trampolining, and stuff.

It's pretty much straight copy-paste from the service, with
some changes related to cancellation handling. Manual updates
will also runs with workman job so auto update work
scheduling need some adjustments too.

Bumped version code to re-enqueue auto update job with the
new spec.

Co-authored-by: arkon <arkon@users.noreply.github.com>
(cherry picked from commit ef9dacde79b1803ec117aae4ea948194b6394605)

# Conflicts:
#	app/build.gradle.kts
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt
2023-02-26 20:50:47 -05:00
Andreas
d8a938374a 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

(cherry picked from commit 12e41b6e6f3b5d95d19e1caa6c9fbe5eb6c9749c)
2023-02-09 17:28:55 -05:00
Jobobby04
708b868e7b MangaDex OAuth
Co-authored-by: Carlos <2092019+CarlosEsco@users.noreply.github.com>
2022-12-20 13:34:01 -05:00
Jobobby04
0784629cbb Remove auto-solve captcha 2022-12-03 13:54:14 -05:00
arkon
0b7861e794 Explicitly add READ_APP_SPECIFIC_LOCALES permission
Some devices are throwing a SecurityException (calling getApplicationLocales) for some reason.

(cherry picked from commit 7e74949d38a8ea43120e672c61556419157a4af1)
2022-11-26 13:45:07 -05:00
arkon
8caa3ce4fb Don't export CrashActivity 2022-10-26 23:35:20 -04:00
arkon
f367a121ac Explicitly remove com.google.android.gms.permission.AD_ID permission
(cherry picked from commit 39e41510d0152db8b50a5c5e58b547dab65652d3)
2022-10-22 21:44:25 -04:00
arkon
1e03d4edad Disable Firebase advertising ID collection
https://firebase.google.com/docs/analytics/configure-data-collection?platform=android#disable_advertising_id_collection
(cherry picked from commit 9c8ccb8e0ea8a5a2a7cfb21ef322c49603809e1b)

# Conflicts:
#	app/src/main/AndroidManifest.xml
2022-10-22 20:32:59 -04:00
Andreas
d07ea91c27 Add Crash activity (#8216)
* Add Crash activity

When the application crashes this sends them to a different activity with the cause message and an option to dump the crash logs

* Review changes

(cherry picked from commit 4178f945c9b6bcae9323c02534d7e620136a4e76)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
2022-10-17 00:10:30 -04:00
Basara-Hatake
7fd4f5ee97
remove dead delegatedsources (#701) 2022-10-15 12:08:26 -04:00
Ivan Iskandar
cb1d47c685 Setup Baseline Profile (#8135)
* Setup Baseline Profile

Adds Baseline Profile generator and startup time test.
Readme included in macrobenchmark module to run the generator.

* changes

(cherry picked from commit 3b623964421b6bc196bcf751f920975c47884326)

# Conflicts:
#	app/build.gradle.kts
#	gradle/androidx.versions.toml
2022-10-08 18:03:47 -04:00
arkon
7f29d6fc74 Minor cleanup
Also add POST_NOTIFICATIONS permissions to make Android Studio stop complaining about it.

(cherry picked from commit b37b3767f3c55a74bede78d11300249ab419a4c7)
2022-09-22 12:48:23 -04:00
Ivan Iskandar
7ef4291763 Reinstate in-app language picker (#7493)
Also add required config for android 13 system picker

(cherry picked from commit 2d690a09b37a55e87ce4365102ee818c5d9d1ba0)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt
2022-08-14 16:07:33 -04:00
Andreas
5baddd8a74 Add task to generate locales_config.xml (#7754)
(cherry picked from commit 4291cc8eb1f4385528afcc9cab2592c8b3afa44a)

# Conflicts:
#	.gitignore
2022-08-14 16:05:27 -04:00
Ivan Iskandar
46cbcfc82e Glance widget for Updates (#7581)
* glance

* glance2

(cherry picked from commit 29e1976b90c5dfdc7cd649740d475d86c321f573)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/App.kt
2022-07-31 11:51:51 -04:00
Andreas
13cb242f51 Replace package with namespace (#7436)
(cherry picked from commit 5d77ee37d2e66dc39e2eee0efba90872818259d8)
2022-07-02 19:42:26 -04:00
arkon
b16f91571d Stop allowing keeping app data on uninstall
Seems to be more trouble than it's worth since it makes the app uninstallable without manually deleting app data. Users have to go out of their way to save data into the app data folder now anyway.

(cherry picked from commit 83a04da4a0819c74a8aeec265976067ecaab53c3)
2022-04-15 17:47:35 -04:00
Ivan Iskandar
7918b3b26b Use existing worker for manual backup creation (#6718)
* Use existing worker for manual backup creation

This will show the "creating backup" notification when auto backup is
running. Complete or error notification will continue to be shown only on
manual job.

* Make sure disabling auto backup don't cancel running manual backup job

(cherry picked from commit d53bb4c337da6df807b43295d2991e8af9015098)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/AbstractBackupManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupCreateService.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBackupController.kt
2022-03-04 16:13:24 -05:00
Jobobby04
b7a94a72fa Rewrite intent filters for Android 12 compliance 2022-01-23 17:08:32 -05:00
arkon
c4f06d9830 Rename app updating classes
So I stop confusing it for updaters of other things.

(cherry picked from commit 21e647017b629d1ec07a32b548d27342810a2c6b)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/Migrations.kt
2021-10-23 14:25:02 -04:00
Ivan Iskandar
fa14a1cb6d 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

(cherry picked from commit b284384f0ad318fea24e7324a4621e12eb9aca7f)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
2021-09-26 13:28:48 -04:00
arkon
01401b6312 Opt out of WebView metrics and disable Google Safe Browsing
cf. https://developer.android.com/guide/webapps/managing-webview

(cherry picked from commit 3e403d5ab36160257ddc630e4f00a2a0b7337a15)

# Conflicts:
#	app/src/main/AndroidManifest.xml
2021-09-12 14:42:47 -04:00
arkon
711d0ec092 Fix RTL support
(cherry picked from commit c23506e887501a14770568d6dd94bf6b2361a5e4)
2021-08-27 12:50:27 -04:00
arkon
52a0aa9d47 Set exported flags on activities
(cherry picked from commit 78b9ac47667bff05abb68268537a23d95638eb14)

# Conflicts:
#	app/src/main/AndroidManifest.xml
2021-08-01 23:43:08 -04:00
arkon
22d0a6f19a Disable Android system auto backup (closes #5114)
In practice this feature:
- Just didn't work
- Magically worked (sometimes; see first point)
- Restored something potentially too old and totally messed up the app

(cherry picked from commit d5c75571dc7f8d8260e43f6f71db46d2835f4106)
2021-08-01 23:39:32 -04:00
Ivan Iskandar
f2bd785c57 Fix splash screen icon on Android 12 (#5565)
* Use Core Splashscreen for splashscreen stuff

* Keep splash screen until activity ready

Ready as in the data inside starting screen is finished showing

* Use custom splash screen exit animation on older android version

* Add splash screen minimum duration to prevent exit jank

* Fix broken AMOLED theme

* Improvements

(cherry picked from commit 05e7b0dc22dbd9d180e3410fdfa8c3fa1759e57d)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
#	app/src/main/res/drawable/ic_tachi_splash.xml
2021-07-18 22:01:04 -04:00
Jobobby04
d788585d14 ReImplement Mangadex deeplink 2021-07-06 16:58:09 -04:00
Ivan Iskandar
ad2bbd0e3c Merge light and dark themes (#5470)
* Merge AMOLED and regular dark themes

This allows all variants of dark themes to use black backgrounds as a
separate preference.

* Merge light and dark themes

* Fix ReaderSeekBar color on Dark Blue theme

* Color fixes

* Fix Dark Blue bars ripple

* Simplify night mode check

(cherry picked from commit 0eadc028b6f9daf38cae083cfdc2ff44a1836623)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseThemedActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt
2021-07-03 18:55:12 -04:00
Jobobby04
e9e3340c08 Convert EH Gallery Updater from a JobService to WorkManager 2021-07-02 17:50:22 -04:00
Ivan Iskandar
f61bbfa77a More themes cleanup (#5410), remove AMOLED Blue
* More themes cleanup

* Tweak some things

* Fix 'Clear History' icon

* Split out ripple colored to its own drawable

* Tidy up things

* Unify background dim amount

* Use primaryColor for Account login button

* More colored ripples

* use colorOnPrimary for selected comfortable library item title

Co-authored-by: Soitora <simon.mattila@protonmail.com>
(cherry picked from commit 932c92412c29fe4a8d1410d29a6e77557ad48707)

# Conflicts:
#	app/src/main/res/layout-sw720dp/manga_info_header.xml
#	app/src/main/res/layout/manga_info_header.xml
#	app/src/main/res/layout/reader_activity.xml
#	app/src/main/res/menu/library_selection.xml
#	app/src/main/res/menu/reader.xml
#	app/src/main/res/values/colors.xml
#	app/src/main/res/values/dimens.xml
2021-06-26 22:38:53 -04:00
arkon
d8ee654a65 Rename some biometrics things since it's no longer specifically for biometric auth
(cherry picked from commit c741920ec0e698da28469f96b2c5ecc6cbf36f5e)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/security/SecureActivityDelegate.kt
2021-05-22 17:56:36 -04:00
Jobobby04
08f1eff450 Update Mangadex Similar to GoldBattles latest version 2021-05-12 23:29:14 -04:00
Fernando Maldonado
63fa1ee75e Fix status bar icon colors in webview activity (#4903)
* Fixed status bar icon colors in webview activity

* Changed theme to Theme.Base

* Changed app theme to Theme.Base

* Update themes.xml

Co-authored-by: arkon <arkon@users.noreply.github.com>
(cherry picked from commit 24a2d86f41450bd606e509268f38a57c4f079b53)
2021-04-19 14:58:21 -04:00
Ivan Iskandar
e43777bba7 Themes cleanup (#4894)
(cherry picked from commit ad57fde1c55984f3235ce86a7505e3675039b1dc)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseThemedActivity.kt
#	app/src/main/res/values/themes.xml
2021-04-19 14:35:28 -04:00