Commit graph

10541 commits

Author SHA1 Message Date
littlecodedragon
f6d9e07077 ci: remove unavailable signing action on Forgejo
Some checks failed
Forgejo Release Builder / release (push) Failing after 0s
Drop external APK signing action and publish unsigned release artifacts in Forgejo workflow to keep pipeline executable.
2026-04-27 04:53:29 +02:00
littlecodedragon
138a92854e ci: remove external action dependencies in Forgejo workflow
Some checks failed
Forgejo Release Builder / release (push) Failing after 0s
Replace setup-java, write-file-action, and setup-gradle action steps with shell-based equivalents for reliable Forgejo execution.
2026-04-27 04:51:29 +02:00
littlecodedragon
dbee19612b ci: sanitize Forgejo release workflow yaml
Some checks failed
Forgejo Release Builder / release (push) Failing after 5s
Remove hidden control bytes so Forgejo can parse build_release.yml again.
2026-04-27 04:43:14 +02:00
littlecodedragon
efb1a1e539 ci: touch Forgejo workflow for trigger
Add a marker comment and keep Forgejo release workflow explicitly node20-compatible.
2026-04-26 17:33:58 +02:00
littlecodedragon
5b93575bab ci: fix Forgejo release workflow action versions
Switch checkout/setup-java/setup-gradle to node20-compatible action versions for Forgejo runner v3.5.1.
2026-04-26 17:19:39 +02:00
littlecodedragon
5351e4a2f8 ci: make workflows Forgejo runner compatible
Some checks failed
Forgejo Release Builder / release (push) Failing after 0s
Pin workflow actions to node20-compatible versions and replace node24-only dependencies so jobs run on Forgejo runner v3.5.1.

Made-with: Cursor
2026-04-26 17:11:53 +02:00
littlecodedragon
d51aaa39b9 ci: add Forgejo release workflow
Some checks failed
Forgejo Release Builder / release (push) Failing after 5s
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-24 14:28:23 +02:00
littlecodedragon
9c110ee46a docs: mention series ETA in README
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-24 14:10:11 +02:00
Cuong-Tran
bdf81596e9
chore: Avoid race conditions and improve bulk selection (#1606)
* avoid race conditions

* Improve Bulk selection

* Consolidate selection mode updates and list clearing into a single state update.
2026-04-23 16:30:55 +07:00
Cuong-Tran
d8eb71e004
chore(UI): Use remember getUiModel (#1605)
* use remember getUiModel

* update headerIndexes to use remember for state management

* Refactor LibraryUpdateErrorScreen to improve state management

*   Move header index calculation from the screen model to the presentation layer.
*   Optimize UI model and header index memoization using `remember(state)`.
*   Remove redundant `LaunchedEffect` and simplify scroll-to-index logic.

* Refactor LibraryUpdateErrorScreen to enhance state management with derivedStateOf
2026-04-23 15:19:54 +07:00
Cuong-Tran
bf9b663581 Optimize database indexes and clean up schema (#1603)
* Update `excluded_scanlators` index to a composite index on `manga_id` and `scanlator`.
* Convert `idx_history_last_read` into a partial index for entries where `last_read > 0`.
* Remove redundant `idx_manga_sync_manga_id` index.
* Remove unused `last_modified_at` column and its associated trigger from `mangas_categories`.
* Sync migration files with schema changes.
2026-04-23 00:02:39 +07:00
Luca Auer
8bb8d7ccb7 Add missing indexes to improve database query performance (mihonapp/mihon#2950)
(cherry picked from commit cae9fbf3213987e7d263845431dfac10a2ecb3b0)
2026-04-23 00:02:39 +07:00
MediocreLegion
80ea323281
fix(delegate): migrate NH to the v2 api (#1582)
* fix(delegate): migrate NH to the v2 api

* bump versionId

* remove versionId requirement

* gemini review suggestions

* remove dead code

* remove unused imports

* linging

* unneeded comment

* fix(delegate): migrate NH to the v2 api (jobobby04/TachiyomiSY#1581)

* fix(delegate): migrate NH to the v2 api

* remove extra comment

* remove redundant data

* linting

* Code cleanup

---------

Co-authored-by: Jobobby04 <jobobby04@users.noreply.github.com>
(cherry picked from commit eec1236b8b5904b46d79bb716e29f073c6fe9b34)

* close `response`

* Avoid empty server list

---------

Co-authored-by: Jobobby04 <jobobby04@users.noreply.github.com>
Co-authored-by: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com>
2026-04-22 13:31:05 +07:00
Copilot
ee7fb26790
fix: remove expect/actual for LocalSource in single-target KMP module (#1602)
Agent-Logs-Url: https://github.com/komikku-app/komikku/sessions/5bf2689f-d906-47af-881b-4556f828a3a6

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: cuong-tran <16017808+cuong-tran@users.noreply.github.com>
2026-04-22 12:18:16 +07:00
Cuong-Tran
6f020399d8
chore(ci): Add SSH key setup for Codeberg repository mirroring (#1595) 2026-04-16 16:22:27 +07:00
Cuong-Tran
26d3be95e3
feat(UI): Mask WebDAV password while typing (#1564)
* Refactor

* feat(UI): Mask WebDAV password while typing

* fix: allow space as password

* use coroutines for asynchronous setting
2026-04-16 14:01:49 +07:00
Cuong-Tran
fd60bc7f13
fix(MangaDex): Fix nullability issues in track creation for MangaDex (#1527)
* fix(trackers-mangadex): Handle nullability in `createMdListTrack`

* Return null instead of throwing exception in initial track creation

* Improve error handling in `createMdListTrack`

* Change exception to return null when track not found

* handle nullability in MangaDex tracking
2026-04-16 12:52:51 +07:00
Cuong-Tran
6f06974524
feat: split "sync on add" into separate metadata and chapter fetch preferences (#1563)
* feat: split "sync on add" into separate metadata and chapter fetch preferences

* refactor: remove redundant SnackbarHostState and error snackbars when auto sync entries

* clean other languages strings
2026-03-17 13:09:48 +07:00
Weblate (bot)
edaf975e21
Translations update from Hosted Weblate (#1523)
* Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (208 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/zh_Hant/

* Translated using Weblate (Italian)

Currently translated at 94.7% (197 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/it/

* Translated using Weblate (Italian)

Currently translated at 95.1% (198 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/it/

* Translated using Weblate (Arabic)

Currently translated at 74.5% (155 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ar/

* Translated using Weblate (Korean)

Currently translated at 30.7% (64 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ko/

* Translated using Weblate (Russian)

Currently translated at 100.0% (208 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ru/

* Translated using Weblate (Italian)

Currently translated at 95.1% (198 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/it/

* Translated using Weblate (Arabic)

Currently translated at 74.5% (155 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ar/

* Translated using Weblate (Korean)

Currently translated at 30.7% (64 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ko/

* Translated using Weblate (Italian)

Currently translated at 95.6% (199 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/it/

* Translated using Weblate (Arabic)

Currently translated at 74.5% (155 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ar/

* Translated using Weblate (Arabic)

Currently translated at 74.5% (155 of 208 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ar/

---------

Co-authored-by: ɴᴇᴋᴏ <s99095lkjjim@gmail.com>
Co-authored-by: Giulia <giuliachen6562@gmail.com>
Co-authored-by: pasquale ruotolo <pachiruo@gmail.com>
Co-authored-by: ZiadSenior <Ziadsenior@yahoo.com>
Co-authored-by: 안세훈 <on9686@gmail.com>
Co-authored-by: amigo browser <juniperforest1@proton.me>
Co-authored-by: Cuong Tran <cuongtran.tm@gmail.com>
2026-03-17 08:34:25 +07:00
Cuong-Tran
3fa1cf9e07 chore(deps): Automate app shortcuts with shortcut-helper plugin
- Revert shortcuts setup with `com.github.zellius.shortcut-helper`
- Switch to komikku-app/android-shortcut-gradle:0.2.0
2026-02-24 12:11:58 +07:00
renovate[bot]
e7a4a215d5
chore(deps): update github actions (#1507)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:39:01 +07:00
renovate[bot]
dfc89d4fc3
fix(deps): update dependency org.junit.jupiter:junit-jupiter to v6.0.3 (#1498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:54 +07:00
renovate[bot]
03667fbf85
fix(deps): update dependency androidx.compose:compose-bom to v2026.02.00 (#1493)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:47 +07:00
renovate[bot]
86bfa87809
fix(deps): update paging.version to v3.4.1 (#1492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:38 +07:00
renovate[bot]
f20f44b516
fix(deps): update dependency androidx.activity:activity-compose to v1.12.4 (#1491)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:30 +07:00
renovate[bot]
ebfbc6498f
fix(deps): update dependency dev.chrisbanes.haze:haze to v1.7.2 (#1487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:21 +07:00
renovate[bot]
9eeadee712
fix(deps): update dependency com.google.firebase:firebase-bom to v34.9.0 (#1478)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:10 +07:00
Weblate (bot)
5b14a51993
Translations update from Hosted Weblate (#1502)
* Translated using Weblate (Russian)

Currently translated at 100.0% (206 of 206 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ru/

* Translated using Weblate (Spanish)

Currently translated at 64.5% (133 of 206 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/es/

---------

Co-authored-by: amigo browser <juniperforest1@proton.me>
Co-authored-by: Erick Alejandro <erickux@gmail.com>
2026-02-22 18:37:30 +07:00
Weblate (bot)
f78d3af23a
Translations update from Hosted Weblate (mihonapp/mihon#2843)
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/ar/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/ca/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/de/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/eo/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/es/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/fil/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/fr/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/hi/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/hr/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/id/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/ja/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/ko/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/my/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/pl/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/ru/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/tr/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/vi/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/zh_Hant/
Translation: Mihon/Mihon

Co-authored-by: Ai Ai Ecchi <aiaiecchi9og@gmail.com>
Co-authored-by: Alexandre Dhooge <alexandre.dhooge@zaclys.net>
Co-authored-by: Cuong Tran <cuongtran.tm@gmail.com>
Co-authored-by: Dexroneum <Rozhenkov69@gmail.com>
Co-authored-by: Eduard Ereza Martínez <eduard@ereza.cat>
Co-authored-by: Frosted <frosted@users.noreply.hosted.weblate.org>
Co-authored-by: Hualiang <642615676@qq.com>
Co-authored-by: Infy's Tagalog Translations <ced.paltep10@gmail.com>
Co-authored-by: Jakub Szafranek13 Fabijan <jakubfabijan@tuta.io>
Co-authored-by: Lyfja <45209212+lyfja@users.noreply.github.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: MuhamadSyabitHidayattulloh <tebepc@gmail.com>
Co-authored-by: Swyter <swyterzone@gmail.com>
Co-authored-by: Throw Away <throwawayacc4gulshan@gmail.com>
Co-authored-by: ZerOriSama <godarms2010@live.com>
Co-authored-by: akir45 <akkn0708@gmail.com>
Co-authored-by: clukki <nguyenhuuminh16911@gmail.com>
Co-authored-by: momoehab <momoehab@gmail.com>
Co-authored-by: yumekon <konrad.nowicki91@gmail.com>
Co-authored-by: ɴᴇᴋᴏ <s99095lkjjim@gmail.com>
Co-authored-by: 안세훈 <on9686@gmail.com>
(cherry picked from commit 7c7d35e2c64d4f85b0db431fbe18408698af9c6e)
2026-02-22 18:35:32 +07:00
Cuong-Tran
78f9cf65c0 feat(navigation): Allow clearing search when Back on Extensions Screen (#1506) 2026-02-20 18:17:44 +07:00
Cuong-Tran
a09e55270c (chore): Don't wrap an intent-chooser inside another intent-chooser (#1505) 2026-02-20 17:02:46 +07:00
Cuong-Tran
7380e77b5c feat(theme): Support Dynamic theme for Android 11 and below (#1504) 2026-02-20 12:02:31 +07:00
Cuong-Tran
fe7b10f941
feat(migration): Allow skipping smart search for single entry migration (#1496)
* feat(migration): Allow skipping smart search for single entry migration

Introduces a "Smart search" setting when migrating a single manga, allowing users to choose between an automated best-match search or manual selection directly.

* ensure manual migration is only triggered once

* Add UI toggle

* refactor pref
2026-02-20 08:49:51 +07:00
Cuong-Tran
36c1c642ca
fix(recommends): Handle crash due to null manga case in RecommendsScreenModel (#1495) 2026-02-13 13:53:11 +07:00
Cuong-Tran
4292b22743
fix(logging): Fix xLog crash (#1494) 2026-02-13 12:31:53 +07:00
Syabit
dd3b19fa89
fix(notifications): paused notifications not showing (#1468)
* fix(notifications): paused notifications not showing

* docs(notifications): clarify notification dismissal and add comment for paused notifications

* refactor

---------

Co-authored-by: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com>
2026-02-10 13:54:36 +07:00
Cuong-Tran
b68444f3cb
fix(ExH): Fix CF cookies interceptor (#1485)
* fix(ExH): Fix CF cookies interceptor

* No need getting cookies from system webview
2026-02-10 12:51:57 +07:00
MajorTanya
513e5e8dd3 Add src:local search alias for Local Source (mihonapp/mihon#2928)
(cherry picked from commit cf93afab4526bf7dc336b9eaec93a45181785ff1)
2026-02-09 10:24:19 +07:00
MajorTanya
34102027d1 Clean up some build warnings (mihonapp/mihon#2929)
* Replace deprecated rememberPlainTooltipPositionProvider

* Remove superfluous when branch

This when is marked as exhaustive.

* Replace deprecated LibrariesContainer call

AboutLibraries now wants us to produce the libraries ourselves.

* Replace deprecated ClipboardManager with Clipboard

Clipboard uses suspend functions, hence the coroutine scope addition.

* Use multi-dollar strs to simplify GraphQL queries

These have been available since Kotlin 2.1.

* Remove various redundant casts & conversions

- WebViewScreenContent: loadingState is in the LoadingState.Loading
  branch, no need to cast at all
- Bangumi: username is not modified, make val
- Kavita: token is already a String
- PagerViewerAdapter: insertPageLastPage is already null-checked
- PagerViewerAdapter: use reified filterIsInstance
- ReaderViewModel: chapter IDs are already Longs
- CloudflareInterceptor: webview is smart-cast to non-null here

* Replace deprecated MenuAnchorType

Literally just a typealias for ExposedDropdownMenuAnchorType anyway.

* OptimizeNonSkippingGroups is enabled by default

* Suppress shadowing warning

This is explicitly intentional according to the KDocs.

* Migrate Context Receivers to Context Parameters

Requires changing the compiler arg, but that is part of the migration:

https://blog.jetbrains.com/kotlin/2025/04/update-on-context-parameters

Apparently, the only visible change is that names are required now.
"_" can be used for anonymous context parameters.

* Fix expression bodies with explicit return

Naming conflict resolved by aliasing.

From 2.4/2.5 onward, these will only be allowed with explicit return
types, or have to be turned into a block body. I opted for the latter
since the function is reasonably dense already.

see: https://youtrack.jetbrains.com/issue/KTLC-288

* Suppress deprecation of non-AutoMirrored icons

We use these arrows for navigation in the Upcoming screen.
I strongly doubt the AutoMirrored versions would make sense for our
use-case.

* Explicitly opt-in to new annotation default rules

affects the following annotated value-parameters:
- Preference.SliderPreference.steps (`@IntRange`)
- ReaderViewModel.State.brightnessOverlayValue (`@IntRange`)
- ReadingMode.iconRes (`@DrawableRes`)
- MigrationListScreenModel.Dialog.Progress.progress (`@FloatRange`)

see: https://youtrack.jetbrains.com/issue/KT-73255
see: https://github.com/Kotlin/KEEP/blob/change-defaulting-rule/proposals/annotation-target-in-properties.md

Warning message was the following:

    This annotation is currently applied to the value parameter only, but in the future it will also be applied to field.
    - To opt in to applying to both value parameter and field, add '-Xannotation-default-target=param-property' to your compiler arguments.
    - To keep applying to the value parameter only, use the '@param:' annotation target.

(cherry picked from commit b543bc089a442c5e93b0fb6c83bc4037740b1eb5)
2026-02-05 22:56:31 +07:00
renovate[bot]
ccf404c4f7
fix(deps): update kotlin monorepo to v2.3.10 (#1470)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 16:41:39 +07:00
renovate[bot]
a4298237e2
fix(deps): update dependency io.kotest:kotest-assertions-core to v6.1.3 (#1469)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 16:41:29 +07:00
Weblate (bot)
f5aca44449
Translations update from Hosted Weblate (#1434)
* Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (195 of 195 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/zh_Hant/

* Translated using Weblate (Catalan)

Currently translated at 17.9% (35 of 195 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ca/

* Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (197 of 197 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/zh_Hant/

* Translated using Weblate (Filipino)

Currently translated at 87.3% (180 of 206 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/fil/

* Translated using Weblate (Catalan)

Currently translated at 16.9% (35 of 206 strings)

Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ca/

---------

Co-authored-by: ɴᴇᴋᴏ <s99095lkjjim@gmail.com>
Co-authored-by: Salvador Rodó Coll <salvador.rodo@gmail.com>
Co-authored-by: Infy's Tagalog Translations <ced.paltep10@gmail.com>
Co-authored-by: Cuong Tran <cuongtran.tm@gmail.com>
2026-02-05 11:20:32 +07:00
renovate[bot]
72a4efabe1
chore(deps): update github actions (#1467)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 10:18:47 +07:00
renovate[bot]
be927c4083
fix(deps): update dependency net.zetetic:sqlcipher-android to v4.13.0 (#1457)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 10:18:39 +07:00
renovate[bot]
90ebaaf935
fix(deps): update sqldelight to v2.2.1 (#1466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 09:41:49 +07:00
renovate[bot]
1388716aab
fix(deps): update serialization.version to v1.10.0 (#1465)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 09:41:40 +07:00
renovate[bot]
9974b3ae9f
fix(deps): update lifecycle.version to v2.10.0 (#1461)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 09:41:32 +07:00
renovate[bot]
226aa9ed3b
fix(deps): update dependency org.jsoup:jsoup to v1.22.1 (#1458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 08:14:31 +07:00
renovate[bot]
2f0a82030d
fix(deps): update paging.version to v3.4.0 (#1464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 08:10:21 +07:00
renovate[bot]
8817e19fc7
fix(deps): update moko to v0.26.0 (#1463)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 08:10:10 +07:00