77 Commits

Author SHA1 Message Date
Shamicen
95c834581b
Libarchive refactor (#1249)
* Refactor archive support with libarchive

* Refactor archive support with libarchive

* Revert string resource changs

* Only mark archive formats as supported

Comic book archives should not be compressed.

* Fixup

* Remove epub from archive format list

* Move to mihon package

* Format

* Cleanup

Co-authored-by: Shamicen <84282253+Shamicen@users.noreply.github.com>
(cherry picked from commit 239c38982c4fd55d4d86b37fd9c3c51c3b47d098)

* handle incorrect passwords

* lint

* fixed broken encryption detection + small tweaks

* Add safeguard to prevent ArchiveInputStream from being closed twice (#967)

* fix: Add safeguard to prevent ArchiveInputStream from being closed twice

* detekt

* lint: Make detekt happy

---------

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>

(cherry picked from commit e620665dda9eb5cc39f09e6087ea4f60a3cbe150)

* fixed ArchiveReaderMode CACHE_TO_DISK

* Added some missing SY --> comments

---------

Co-authored-by: FooIbar <118464521+fooibar@users.noreply.github.com>
Co-authored-by: Ahmad Ansori Palembani <46041660+null2264@users.noreply.github.com>
2024-08-17 20:25:25 -04:00
AwkwardPeak7
d968d58cd6 update r8 rules for MultipartBody.Builder in extensions (#783)
(cherry picked from commit f603db3f3fac72954997bfa0c2cd77a0b92cd7f0)
2024-06-01 13:57:27 -04:00
MajorTanya
3e438a9e87 Add ProGuard rule to keep mihon namespace classes (#605)
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
(cherry picked from commit 555d2f834fb64df9a56fdf4f54d528c15fefa4cb)
2024-04-13 11:56:06 -04:00
Shamicen
6719f22eff
implement mihonapp/mihon#326 (#1104)
* implement mihonapp/mihon#326

Archives are now being read from channels

Co-authored-by: FooIbar <118464521+FooIbar@users.noreply.github.com>
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>

* disable parallelisms for loading into memory

* switched to mutex

* detekt changes

* more detekt baseline changes

---------

Co-authored-by: FooIbar <118464521+FooIbar@users.noreply.github.com>
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
2024-03-16 11:59:00 -04:00
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
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
Jobobby04
59ee8bd8f9 Fix release build 2023-12-24 16:11:01 -05:00
Jobobby04
bfe824af18 Minor cleanup 2023-10-29 15:50:24 -04:00
arkon
baa8658183 Remove unused rxandroid dependency
(cherry picked from commit 13dc54df707623c914cd7cda2f2f781515f92eb3)
2023-09-03 23:32:59 -04:00
Alessandro Jean
abca69a078 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.

(cherry picked from commit 9b6567f5e4bfa4b8a4845400216551fd28545094)
2023-08-12 16:47:11 -04:00
arkon
98e94ef7ae Just extract everything in zips to a directory
Issues:
- Apache implementation relies on methods unavailable on lower Android API levels
- Using input stream implementation doesn't seem to read some files properly, but using
  ZipFile implementation still requires reading the entire thing into memory

(cherry picked from commit 6f59c6c6bb12f1ef123abd418001c7a86d43ef7a)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ZipPageLoader.kt
2023-05-08 23:14:29 -04:00
Jobobby04
e7d083f119 Thank you Pringle for the working build 2023-05-06 20:56:33 -04:00
Jobobby04
f2aa09039f Add suggested rules 2023-05-06 20:05:43 -04:00
arkon
cf752a0d88 Maybe fix Firebase crashes
See https://github.com/firebase/firebase-android-sdk/issues/3507

(cherry picked from commit c48accb3572d79c772875436939f7141cf5f9423)

# Conflicts:
#	app/proguard-rules.pro
2023-05-06 11:24:25 -04:00
arkon
a51660de2e Fix missing type info in release builds
(cherry picked from commit 265934d77aa514b8611d248b22f302082881aa02)
2023-05-06 11:19:31 -04:00
arkon
b44175eb50 Fix missing type info in release builds
(cherry picked from commit 2a218cca9007e6d96a59a8f64588fe8f1ee0cd75)
2023-05-06 11:19:18 -04:00
Shamicen
88f076afd4
Encrypted CBZ archives (#846)
* Initial Implementation of encrypted CBZ archives

* changed a preference key to correct Syntax, changed a function name and changed ComicInfo padding length

* Update app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt

Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>

* Update app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt

Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>

* add necessary imports

* fix indentation after merge conflict

* Update app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt

Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>

* fix indentation and add imports

* collect preferences as states

* test if password is correct in ZipPageLoader

* added withIOContext to function call

* added encryption type preference

* implemented database encryption

* added proguard rules for sqlcipher and generate padding length with SecureRandom

---------

Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
2023-05-06 11:06:54 -04:00
Jobobby04
d94270ce32 Don't optimize out serializers 2023-03-16 17:22:52 -04:00
Jobobby04
b571040ac8 Fix debug functions on release builds 2022-10-18 21:46:29 -04:00
arkon
40a9df8969 Update Proguard rules to handle serializers in all modules
Fixes #8112

(cherry picked from commit 8d1f99a48084566a81807a1877c3b92e53c97036)
2022-10-01 18:32:45 -04:00
Jobobby04
8d91c54c18 Add a proguard rule for XMLUtil to fix build 2022-09-25 22:09:32 -04:00
Ivan Iskandar
01710d7b78 Upgrade AGP 7.3.0 (#8016)
(cherry picked from commit 4a3070265a76d1a236abbcd5682ae753c31cffc8)

# Conflicts:
#	app/proguard-rules.pro
2022-09-18 11:50:06 -04:00
arkon
a24832f4db Remove Duktape
Now that none of the official extensions are using it.

(cherry picked from commit 324ae3fcfb022730604ab661c5b56510472ae718)
2022-08-19 19:51:05 -04:00
arkon
3a489da679 Downgrade R8 to avoid extension issues
(cherry picked from commit e1e1c20dbe3d49ca3175e5f6ed8c5e16a84b16ba)

# Conflicts:
#	.github/renovate.json
#	app/proguard-rules.pro
2022-05-29 18:26:34 -04:00
arkon
357b4673f8 Update to AGP 7.2.0 again
- Disable optimizations on eu.kanade.tachiyomi.source.** classes to avoid access modifications causing mismatches between the app and extensions
- Remove Gson and Kotson Proguard rules, since we don't have those dependencies anymore

(cherry picked from commit bdb55ef8817557e1d4bb4eda1120949ef42a8b54)

# Conflicts:
#	app/proguard-rules.pro
2022-05-14 19:50:09 -04:00
Jobobby04
020ce06ebd Remove GSON proguard rules 2022-01-09 15:40:05 -05:00
arkon
2dd2054d4c Add QuickJS dependency to eventually replace Duktape
(cherry picked from commit 2d03f3ce1e2ec320596837b2c3e23056f7b2eeb5)

# Conflicts:
#	app/proguard-rules.pro
2022-01-08 17:42:23 -05:00
arkon
fe4344c518 Keep coroutine methods (fixes #5662)
(cherry picked from commit dfec0e45ed616485fd92c56659aa65177c09ebe2)
2021-09-01 18:40:55 -04:00
Jobobby04
7e612e63b4 Proguard fixes 2021-05-22 16:07:11 -04:00
Jobobby04
b657af8d1c Fix a Guya crashlytics crash 2021-05-10 22:03:17 -04:00
Jobobby04
c26adbb81d Remove unused glide proguard rules 2021-05-09 18:56:24 -04:00
Jobobby04
5c2d26aa7c Genkan.io crash fix 2021-05-09 18:56:23 -04:00
Jobobby04
f9b4cb5bc9 Fix manga plus 2021-04-28 21:43:37 -04:00
Jobobby04
d15a473ed1 Enable the proguard rules 2020-10-13 21:53:23 -04:00
Jobobby04
f92c09b0f6 More comments 2020-10-13 20:55:18 -04:00
Jobobby04
5b056c6b70 Comment it all out 2020-10-13 20:27:36 -04:00
Jobobby04
2281a7a03d Comment out even more for a test 2020-10-13 17:23:43 -04:00
Jobobby04
713dcdfe53 Comment out some new rules for testing 2020-10-13 16:51:47 -04:00
Jobobby04
f3fc479020 Revert temp fixes, add serialization progurd rules
This reverts commit 543e089982e9b774c5cfbcc4d0eddb5f21373928.
2020-10-13 13:49:28 -04:00
Jobobby04
69f4d1fd46 Likely fix Hitomi extension 2020-08-11 01:35:36 -04:00
Jobobby04
fdc2b37add Fix Madokami extension username and password input 2020-06-08 22:06:38 -04:00
Rani Sargees
4d8f44ddae merge double upstream 2020-05-02 23:39:46 -04:00
TacoTheDank
55101b1a4a
Update nucleus library (#2932) 2020-04-22 22:27:30 -04:00
arkon
6c474daacd Update Proguard rules
- Keep everything in Tachiyomi package (for extensions)
- Remove SnakeYaml
2020-03-02 21:45:16 -05:00
arkon
78689e7443
Migrate to AndroidX (#2424)
* Migrate to AndroidX (automatic conversion by Android Studio)

* AndroidX dependency code updates

* Fix source preference reparenting

* fixes the androidx prefererences icon spacing issue

(cherry picked from commit b76a15d960ec2cdf771be16377db0348b66b3179)

* Fix source preference screen heading size/list padding

Co-authored-by: Carlos <cargo8005@gmail.com>
2020-01-05 11:29:27 -05:00
NerdNumber9
e747686ad8 Upgrade realm
Update proguard file so we could potentially enable proguard in the future
Update dependencies
Downgrade duktape to fix MangaPlus
Remove useless dependencies
Remove useless tabGravity
Fix debug version crashing in background
2019-08-11 14:40:01 -04:00
NerdNumber9
c6b28cbcaf Upgrade dependencies
Remove Firebase Perf for better build speeds
2019-04-09 21:43:47 -04:00
NerdNumber9
0b054126bc Attempt to fix strange crash occurring on older Android versions 2019-04-07 05:15:40 -04:00
NerdNumber9
57d83e3d1b Use TachiWeb filter serializer for saving filters 2019-04-06 09:45:28 -04:00
NerdNumber9
4e2c9dc083 Various fixes to search presets 2019-04-06 09:05:32 -04:00