Shape CMP skeleton#332
Merged
Merged
Conversation
76c5e43 to
af9bf73
Compare
34fc53d to
f1e452d
Compare
f1e452d to
241d230
Compare
b37faf7 to
096325d
Compare
…acy Android resource usages
# Conflicts: # glue/src/main/kotlin/com/github/kr328/clash/glue/util/I18n.kt
ea37b10 to
fbe63db
Compare
fbe63db to
d845ee6
Compare
# Conflicts: # androidApp/src/main/res/values-ru/strings.xml # androidApp/src/main/res/values-vi/strings.xml # androidApp/src/main/res/values/strings.xml # common/src/commonMain/composeResources/values-ru/strings.xml # common/src/commonMain/composeResources/values/strings.xml # common/src/main/res/values/non-translatable.xml # ui/profile/src/main/res/values/non-translatable.xml
c0ecd5d to
ea3a5c4
Compare
ea3a5c4 to
e305bd6
Compare
Owner
Author
OLD: old.apk (signature: V2)
NEW: new.apk (signature: V2)
│ compressed │ uncompressed
├───────────┬───────────┬────────────┼───────────┬───────────┬────────────
APK │ old │ new │ diff │ old │ new │ diff
──────────┼───────────┼───────────┼────────────┼───────────┼───────────┼────────────
dex │ 5.8 MiB │ 6 MiB │ +170.2 KiB │ 5.8 MiB │ 6 MiB │ +170.2 KiB
arsc │ 634.1 KiB │ 441.1 KiB │ -193 KiB │ 634 KiB │ 441 KiB │ -193 KiB
manifest │ 4.9 KiB │ 4.8 KiB │ -1 B │ 21.9 KiB │ 21.9 KiB │ 0 B
res │ 406.9 KiB │ 406.9 KiB │ +4 B │ 454.2 KiB │ 454.2 KiB │ 0 B
native │ 16.8 MiB │ 16.8 MiB │ +6 B │ 45.4 MiB │ 45.4 MiB │ +8 B
asset │ 12.5 MiB │ 12.8 MiB │ +245.9 KiB │ 25.5 MiB │ 25.8 MiB │ +300.7 KiB
other │ 57.6 KiB │ 57.6 KiB │ 0 B │ 115.2 KiB │ 115.2 KiB │ -1 B
──────────┼───────────┼───────────┼────────────┼───────────┼───────────┼────────────
total │ 36.2 MiB │ 36.4 MiB │ +223.1 KiB │ 77.9 MiB │ 78.2 MiB │ +277.9 KiB
DEX │ old │ new │ diff
─────────┼───────┼───────┼──────────────────
files │ 1 │ 1 │ 0
strings │ 39353 │ 40098 │ +745 (+813 -68)
types │ 8318 │ 8341 │ +23 (+48 -25)
classes │ 6936 │ 6959 │ +23 (+47 -24)
methods │ 33635 │ 33794 │ +159 (+314 -155)
fields │ 23477 │ 23798 │ +321 (+419 -98)
ARSC │ old │ new │ diff
─────────┼──────┼──────┼────────────────
configs │ 131 │ 131 │ 0
entries │ 1375 │ 1108 │ -267 (+0 -267)
=================
==== APK ====
=================
compressed │ uncompressed │
───────────┬────────────┼───────────┬────────────┤
size │ diff │ size │ diff │ path
───────────┼────────────┼───────────┼────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────
441.1 KiB │ -193 KiB │ 441 KiB │ -193 KiB │ ∆ resources.arsc
174.4 KiB │ +174.4 KiB │ 174.1 KiB │ +174.1 KiB │ + assets/composeResources/com.github.kr328.clash.common/drawable/ic_tabby_foreground.webp
6 MiB │ +170.2 KiB │ 6 MiB │ +170.2 KiB │ ∆ classes.dex
4.1 KiB │ +4.1 KiB │ 11.5 KiB │ +11.5 KiB │ + assets/composeResources/com.github.kr328.clash.settings/values-ru/strings.commonMain.cvr
3.6 KiB │ +3.6 KiB │ 8.9 KiB │ +8.9 KiB │ + assets/composeResources/com.github.kr328.clash.settings/values-vi/strings.commonMain.cvr
3.5 KiB │ +3.5 KiB │ 8 KiB │ +8 KiB │ + assets/composeResources/com.github.kr328.clash.settings/values-ko-rKR/strings.commonMain.cvr
3.4 KiB │ +3.4 KiB │ 8.9 KiB │ +8.9 KiB │ + assets/composeResources/com.github.kr328.clash.settings/values-ja-rJP/strings.commonMain.cvr
3.2 KiB │ +3.2 KiB │ 7.2 KiB │ +7.2 KiB │ + assets/composeResources/com.github.kr328.clash.settings/values-zh-rTW/strings.commonMain.cvr
3.1 KiB │ +3.1 KiB │ 7.1 KiB │ +7.1 KiB │ + assets/composeResources/com.github.kr328.clash.settings/values-zh-rHK/strings.commonMain.cvr
3.1 KiB │ +3.1 KiB │ 7.2 KiB │ +7.2 KiB │ + assets/composeResources/com.github.kr328.clash.settings/values/strings.commonMain.cvr
3 KiB │ +3 KiB │ 7.1 KiB │ +7.1 KiB │ + assets/composeResources/com.github.kr328.clash.settings/values-zh/strings.commonMain.cvr
1.7 KiB │ +1.7 KiB │ 3.3 KiB │ +3.3 KiB │ + assets/composeResources/com.github.kr328.clash.profile/values-ru/strings.commonMain.cvr
1.5 KiB │ +1.5 KiB │ 2.8 KiB │ +2.8 KiB │ + assets/composeResources/com.github.kr328.clash.profile/values-ko-rKR/strings.commonMain.cvr
1.5 KiB │ +1.5 KiB │ 2.7 KiB │ +2.7 KiB │ + assets/composeResources/com.github.kr328.clash.profile/values-vi/strings.commonMain.cvr
1.4 KiB │ +1.4 KiB │ 2.8 KiB │ +2.8 KiB │ + assets/composeResources/com.github.kr328.clash.profile/values-ja-rJP/strings.commonMain.cvr
1.4 KiB │ +1.4 KiB │ 2.3 KiB │ +2.3 KiB │ + assets/composeResources/com.github.kr328.clash.profile/values/strings.commonMain.cvr
1.3 KiB │ +1.3 KiB │ 2.3 KiB │ +2.3 KiB │ + assets/composeResources/com.github.kr328.clash.profile/values-zh-rTW/strings.commonMain.cvr
1.3 KiB │ +1.3 KiB │ 2.3 KiB │ +2.3 KiB │ + assets/composeResources/com.github.kr328.clash.profile/values-zh-rHK/strings.commonMain.cvr
1.3 KiB │ +1.3 KiB │ 2.3 KiB │ +2.3 KiB │ + assets/composeResources/com.github.kr328.clash.profile/values-zh/strings.commonMain.cvr
1.2 KiB │ +1.2 KiB │ 2 KiB │ +2 KiB │ + assets/composeResources/com.github.kr328.clash.common/values-ru/strings.commonMain.cvr
1.1 KiB │ +1.1 KiB │ 1.8 KiB │ +1.8 KiB │ + assets/composeResources/com.github.kr328.clash.common/values-vi/strings.commonMain.cvr
1.1 KiB │ +1.1 KiB │ 1.9 KiB │ +1.9 KiB │ + assets/composeResources/com.github.kr328.clash.common/values-ja-JP/strings.commonMain.cvr
1.1 KiB │ +1.1 KiB │ 1.7 KiB │ +1.7 KiB │ + assets/composeResources/com.github.kr328.clash.common/values-ko-KR/strings.commonMain.cvr
1 KiB │ +1 KiB │ 1.6 KiB │ +1.6 KiB │ + assets/composeResources/com.github.kr328.clash.home/values-ru/strings.commonMain.cvr
1 KiB │ +1 KiB │ 1.7 KiB │ +1.7 KiB │ + assets/composeResources/com.github.kr328.clash.common/values-ja-rJP/strings.commonMain.cvr
1,009 B │ +1,009 B │ 1.5 KiB │ +1.5 KiB │ + assets/composeResources/com.github.kr328.clash.common/values-ko-rKR/strings.commonMain.cvr
995 B │ +995 B │ 1.5 KiB │ +1.5 KiB │ + assets/composeResources/com.github.kr328.clash.home/values-ja-rJP/strings.commonMain.cvr
987 B │ +987 B │ 1.5 KiB │ +1.5 KiB │ + assets/composeResources/com.github.kr328.clash.common/values-zh-TW/strings.commonMain.cvr
979 B │ +979 B │ 1.5 KiB │ +1.5 KiB │ + assets/composeResources/com.github.kr328.clash.common/values-zh-HK/strings.commonMain.cvr
967 B │ +967 B │ 1.3 KiB │ +1.3 KiB │ + assets/composeResources/com.github.kr328.clash.home/values-ko-rKR/strings.commonMain.cvr
942 B │ +942 B │ 1.4 KiB │ +1.4 KiB │ + assets/composeResources/com.github.kr328.clash.common/values/strings.commonMain.cvr
937 B │ +937 B │ 1.3 KiB │ +1.3 KiB │ + assets/composeResources/com.github.kr328.clash.home/values-vi/strings.commonMain.cvr
929 B │ +929 B │ 1.4 KiB │ +1.4 KiB │ + assets/composeResources/com.github.kr328.clash.common/values-zh-rTW/strings.commonMain.cvr
924 B │ +924 B │ 1.4 KiB │ +1.4 KiB │ + assets/composeResources/com.github.kr328.clash.common/values-zh-rHK/strings.commonMain.cvr
912 B │ +912 B │ 1.4 KiB │ +1.4 KiB │ + assets/composeResources/com.github.kr328.clash.common/values-zh/strings.commonMain.cvr
872 B │ +872 B │ 1.1 KiB │ +1.1 KiB │ + assets/composeResources/com.github.kr328.clash.home/values-zh-rHK/strings.commonMain.cvr
867 B │ +867 B │ 1.1 KiB │ +1.1 KiB │ + assets/composeResources/com.github.kr328.clash.home/values-zh-rTW/strings.commonMain.cvr
864 B │ +864 B │ 1.1 KiB │ +1.1 KiB │ + assets/composeResources/com.github.kr328.clash.home/values-zh/strings.commonMain.cvr
845 B │ +845 B │ 1 KiB │ +1 KiB │ + assets/composeResources/com.github.kr328.clash.home/values/strings.commonMain.cvr
621 B │ +621 B │ 706 B │ +706 B │ + assets/composeResources/com.github.kr328.clash.proxy/values-ru/strings.commonMain.cvr
606 B │ +606 B │ 623 B │ +623 B │ + assets/composeResources/com.github.kr328.clash.common/drawable/ic_tabby_small.xml
579 B │ +579 B │ 550 B │ +550 B │ + assets/composeResources/com.github.kr328.clash.proxy/values-vi/strings.commonMain.cvr
573 B │ +573 B │ 522 B │ +522 B │ + assets/composeResources/com.github.kr328.clash.proxy/values-ko-rKR/strings.commonMain.cvr
562 B │ +562 B │ 555 B │ +555 B │ + assets/composeResources/com.github.kr328.clash.crash/values-ru/strings.commonMain.cvr
550 B │ +550 B │ 586 B │ +586 B │ + assets/composeResources/com.github.kr328.clash.proxy/values-ja-rJP/strings.commonMain.cvr
531 B │ +531 B │ 465 B │ +465 B │ + assets/composeResources/com.github.kr328.clash.log/values-ru/strings.commonMain.cvr
523 B │ +523 B │ 450 B │ +450 B │ + assets/composeResources/com.github.kr328.clash.proxy/values-zh-rTW/strings.commonMain.cvr
517 B │ +517 B │ 435 B │ +435 B │ + assets/composeResources/com.github.kr328.clash.crash/values-vi/strings.commonMain.cvr
515 B │ +515 B │ 425 B │ +425 B │ + assets/composeResources/com.github.kr328.clash.log/values-vi/strings.commonMain.cvr
514 B │ +514 B │ 459 B │ +459 B │ + assets/composeResources/com.github.kr328.clash.crash/values-ja-rJP/strings.commonMain.cvr
514 B │ +514 B │ 438 B │ +438 B │ + assets/composeResources/com.github.kr328.clash.proxy/values-zh-rHK/strings.commonMain.cvr
513 B │ +513 B │ 446 B │ +446 B │ + assets/composeResources/com.github.kr328.clash.proxy/values/strings.commonMain.cvr
508 B │ +508 B │ 401 B │ +401 B │ + assets/composeResources/com.github.kr328.clash.log/values-ko-rKR/strings.commonMain.cvr
504 B │ +504 B │ 355 B │ +355 B │ + assets/composeResources/com.github.kr328.clash.crash/values-ko-rKR/strings.commonMain.cvr
504 B │ +504 B │ 438 B │ +438 B │ + assets/composeResources/com.github.kr328.clash.proxy/values-zh/strings.commonMain.cvr
493 B │ +493 B │ 355 B │ +355 B │ + assets/composeResources/com.github.kr328.clash.crash/values-zh-rTW/strings.commonMain.cvr
488 B │ +488 B │ 359 B │ +359 B │ + assets/composeResources/com.github.kr328.clash.crash/values/strings.commonMain.cvr
477 B │ +477 B │ 319 B │ +319 B │ + assets/composeResources/com.github.kr328.clash.crash/values-zh-rHK/strings.commonMain.cvr
474 B │ +474 B │ 421 B │ +421 B │ + assets/composeResources/com.github.kr328.clash.log/values-ja-rJP/strings.commonMain.cvr
469 B │ +469 B │ 319 B │ +319 B │ + assets/composeResources/com.github.kr328.clash.crash/values-zh/strings.commonMain.cvr
467 B │ +467 B │ 345 B │ +345 B │ + assets/composeResources/com.github.kr328.clash.log/values-zh-rHK/strings.commonMain.cvr
461 B │ +461 B │ 329 B │ +329 B │ + assets/composeResources/com.github.kr328.clash.log/values/strings.commonMain.cvr
454 B │ +454 B │ 345 B │ +345 B │ + assets/composeResources/com.github.kr328.clash.log/values-zh/strings.commonMain.cvr
450 B │ +450 B │ 333 B │ +333 B │ + assets/composeResources/com.github.kr328.clash.log/values-zh-rTW/strings.commonMain.cvr
346 B │ +346 B │ 113 B │ +113 B │ + assets/composeResources/com.github.kr328.clash.settings/values/non-translatable.commonMain.cvr
319 B │ +319 B │ 82 B │ +82 B │ + assets/composeResources/com.github.kr328.clash.home/values/non-translatable.commonMain.cvr
297 B │ +297 B │ 33 B │ +33 B │ + assets/composeResources/com.github.kr328.clash.profile/values/non-translatable.commonMain.cvr
294 B │ +294 B │ 32 B │ +32 B │ + assets/composeResources/com.github.kr328.clash.common/values/non-translatable.commonMain.cvr
5.9 KiB │ -30 B │ 5.8 KiB │ -28 B │ ∆ assets/dexopt/baseline.prof
383 B │ +4 B │ 281 B │ 0 B │ ∆ res/-B.png
7.7 KiB │ +3 B │ 23.1 KiB │ +8 B │ ∆ lib/arm64-v8a/libbridge.so
14.7 MiB │ +3 B │ 40.6 MiB │ 0 B │ ∆ lib/arm64-v8a/libclash.so
381.5 KiB │ +2 B │ 381.3 KiB │ 0 B │ ∆ assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite
272 B │ +1 B │ 120 B │ 0 B │ ∆ META-INF/version-control-info.textproto
200 B │ -1 B │ 6 B │ -1 B │ ∆ META-INF/androidx.compose.material_material-ripple.version
4.8 KiB │ -1 B │ 21.9 KiB │ 0 B │ ∆ AndroidManifest.xml
───────────┼────────────┼───────────┼────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────
21.8 MiB │ +223.1 KiB │ 47.8 MiB │ +277.9 KiB │ (total)
======================
==== MANIFEST ====
======================
@@ -358,2 +358,11 @@
/>
+ <activity
+ android:exported="false"
+ android:name="com.google.android.gms.common.api.GoogleApiActivity"
+ android:theme="@null"
+ />
+ <meta-data
+ android:name="com.google.android.gms.version"
+ android:value="@integer/google_play_services_version"
+ />
<provider
@@ -386,11 +395,2 @@
</provider>
- <activity
- android:exported="false"
- android:name="com.google.android.gms.common.api.GoogleApiActivity"
- android:theme="@null"
- />
- <meta-data
- android:name="com.google.android.gms.version"
- android:value="@integer/google_play_services_version"
- />
<uses-library |
There was a problem hiding this comment.
Pull request overview
This PR lays down the initial Compose Multiplatform (CMP) “skeleton” by migrating UI modules toward Kotlin Multiplatform + Compose Resources, introducing shared navigation helpers, and renaming the Android application module to androidApp with corresponding CI/doc updates.
Changes:
- Migrate multiple UI modules to Android Multiplatform + Compose Resources (
Res/stringResource/getString) and adjust resource placement. - Introduce Navigation3-based entry wiring (Home/Profile/Settings/Proxy/Log/Crash) plus Koin modules for new screens/viewmodels.
- Rename
:app→:androidAppand update workflows, docs, and Android resources/assets paths accordingly.
Reviewed changes
Copilot reviewed 82 out of 261 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/theme/Theme.kt | Update DarkMode import to common model for KMP alignment. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/theme/Color.kt | Add Tabby color tokens for Compose theming. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/nav/TabbyNavDisplay.kt | Add a shared Navigation3 NavDisplay wrapper + helpers. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/lifecycle/ViewModel.kt | Add a composable helper to attach a LifecycleObserver to a ViewModel. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/TabbyIcons.kt | Introduce TabbyIcons holder for vector extensions. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/OutlineUpdate.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/OutlineNotInterested.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/OutlineLabel.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/OutlineInfo.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/OutlineInbox.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/OutlineFolder.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/OutlineDelete.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/OutlineCheckCircle.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/OutlineArticle.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineViewList.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineUpdate.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineSync.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineSwapVerticalCircle.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineSwapVert.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineStop.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineStack.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineSearch.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineSave.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineRestore.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineReplay.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineMoreVert.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineKey.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineInfo.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineGetApp.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineFlashOn.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineEdit.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineDragHandle.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineDelete.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineContentCopy.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineCloudDownload.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineClearAll.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineCircleCenter.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineBrightness4.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineArrowUp.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineArrowBack.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/icon/BaselineAdd.kt | Add Compose ImageVector icon. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/component/TabbyScaffold.kt | Switch content descriptions to Compose Resources string lookup. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/component/Spacers.kt | Add convenience spacer composables for layouts. |
| ui/src/androidMain/kotlin/com/github/kr328/clash/ui/component/ModelProgressBarDialog.kt | Add a progress dialog composable with determinate/indeterminate support. |
| ui/settings/src/commonMain/composeResources/values/non-translatable.xml | Add non-translatable compose resources for settings module. |
| ui/settings/src/androidMain/kotlin/com/github/kr328/clash/settings/vm/AppSettingsViewModel.kt | Switch DarkMode import to common model. |
| ui/settings/src/androidMain/kotlin/com/github/kr328/clash/settings/ui/SettingsPreference.kt | Migrate string usage to Compose Resources StringResource. |
| ui/settings/src/androidMain/kotlin/com/github/kr328/clash/settings/ui/ResetOverrideSettingsDialog.kt | Migrate dialog strings to Compose Resources. |
| ui/settings/src/androidMain/kotlin/com/github/kr328/clash/settings/ui/PreferencesInSettings.kt | Add LazyListScope wrappers for preference items (workaround file). |
| ui/settings/src/androidMain/kotlin/com/github/kr328/clash/settings/SettingsNav.kt | Add Navigation3 entries for settings flows. |
| ui/settings/src/androidMain/kotlin/com/github/kr328/clash/settings/di/SettingsModule.kt | Add Koin viewmodel bindings for settings. |
| ui/settings/build.gradle.kts | Convert settings module to android multiplatform with split source sets. |
| ui/proxy/src/commonMain/composeResources/values/strings.xml | Add proxy strings to compose resources. |
| ui/proxy/src/commonMain/composeResources/values-zh/strings.xml | Add zh proxy translations. |
| ui/proxy/src/commonMain/composeResources/values-zh-rTW/strings.xml | Add zh-rTW proxy translations. |
| ui/proxy/src/commonMain/composeResources/values-zh-rHK/strings.xml | Add zh-rHK proxy translations. |
| ui/proxy/src/commonMain/composeResources/values-vi/strings.xml | Add vi proxy translations. |
| ui/proxy/src/commonMain/composeResources/values-ru/strings.xml | Add ru proxy translations. |
| ui/proxy/src/commonMain/composeResources/values-ko-rKR/strings.xml | Add ko proxy translations. |
| ui/proxy/src/commonMain/composeResources/values-ja-rJP/strings.xml | Add ja proxy translations. |
| ui/proxy/src/androidMain/kotlin/com/github/kr328/clash/proxy/ProxyNav.kt | Add Navigation3 entries for proxy screen. |
| ui/proxy/src/androidMain/kotlin/com/github/kr328/clash/proxy/di/ProxyModule.kt | Add Koin viewmodel bindings for proxy. |
| ui/proxy/build.gradle.kts | Convert proxy module to android multiplatform with split source sets. |
| ui/profile/src/commonMain/kotlin/com/github/kr328/clash/profile/util/elapsedIntervalString.kt | Move elapsed interval formatting to composable + compose resources. |
| ui/profile/src/commonMain/composeResources/values/strings.xml | Add profile strings to compose resources. |
| ui/profile/src/commonMain/composeResources/values/non-translatable.xml | Add non-translatable profile compose resource(s). |
| ui/profile/src/androidMain/kotlin/com/github/kr328/clash/profile/vm/ProvidersViewModel.kt | Migrate message formatting to Compose Resources getString. |
| ui/profile/src/androidMain/kotlin/com/github/kr328/clash/profile/vm/ProfilesViewModel.kt | Migrate strings to Compose Resources + adjust name/reason handling. |
| ui/profile/src/androidMain/kotlin/com/github/kr328/clash/profile/ui/PreferencesInProfiles.kt | Add LazyListScope wrapper for preference item (workaround file). |
| ui/profile/src/androidMain/kotlin/com/github/kr328/clash/profile/ui/NewProfileScreen.kt | Migrate scaffold title and provider texts to Compose Resources. |
| ui/profile/src/androidMain/kotlin/com/github/kr328/clash/profile/ProfilesNav.kt | Add Navigation3 entries for profile flows. |
| ui/profile/src/androidMain/kotlin/com/github/kr328/clash/profile/model/ProfileProvider.kt | Rework provider metadata for Compose Resources usage. |
| ui/profile/src/androidMain/kotlin/com/github/kr328/clash/profile/di/ProfileModule.kt | Add Koin viewmodel bindings for profile. |
| ui/profile/build.gradle.kts | Convert profile module to android multiplatform with split source sets. |
| ui/log/src/commonMain/composeResources/values/strings.xml | Add log strings to compose resources. |
| ui/log/src/commonMain/composeResources/values-zh/strings.xml | Add zh log translations. |
| ui/log/src/commonMain/composeResources/values-zh-rTW/strings.xml | Add zh-rTW log translations. |
| ui/log/src/commonMain/composeResources/values-zh-rHK/strings.xml | Add zh-rHK log translations. |
| ui/log/src/commonMain/composeResources/values-vi/strings.xml | Add vi log translations. |
| ui/log/src/commonMain/composeResources/values-ru/strings.xml | Add ru log translations. |
| ui/log/src/commonMain/composeResources/values-ko-rKR/strings.xml | Add ko log translations. |
| ui/log/src/commonMain/composeResources/values-ja-rJP/strings.xml | Add ja log translations. |
| ui/log/src/androidMain/res/values/strings.xml | Add Android resources needed by manifest/labels. |
| ui/log/src/androidMain/res/values/ids.xml | Add Android id resource used for notification. |
| ui/log/src/androidMain/res/values-zh/strings.xml | Add zh Android string. |
| ui/log/src/androidMain/res/values-zh-rTW/strings.xml | Add zh-rTW Android string. |
| ui/log/src/androidMain/res/values-zh-rHK/strings.xml | Add zh-rHK Android string. |
| ui/log/src/androidMain/res/values-vi/strings.xml | Add vi Android string. |
| ui/log/src/androidMain/res/values-ru/strings.xml | Add ru Android string. |
| ui/log/src/androidMain/res/values-ko-rKR/strings.xml | Add ko Android string. |
| ui/log/src/androidMain/res/values-ja-rJP/strings.xml | Add ja Android string. |
| ui/log/src/androidMain/kotlin/com/github/kr328/clash/log/vm/LogsViewModel.kt | Add logs list/delete viewmodel. |
| ui/log/src/androidMain/kotlin/com/github/kr328/clash/log/vm/LogcatViewModel.kt | Migrate messages to Compose Resources getString. |
| ui/log/src/androidMain/kotlin/com/github/kr328/clash/log/util/LogcatWriter.kt | Add log writer for persisted log files. |
| ui/log/src/androidMain/kotlin/com/github/kr328/clash/log/util/LogcatReader.kt | Add log reader/parsing for persisted log files. |
| ui/log/src/androidMain/kotlin/com/github/kr328/clash/log/util/LogcatFilter.kt | Add filtering/formatting for log export. |
| ui/log/src/androidMain/kotlin/com/github/kr328/clash/log/util/LogcatCache.kt | Add in-memory logcat message cache. |
| ui/log/src/androidMain/kotlin/com/github/kr328/clash/log/model/LogFile.kt | Add log file naming/parsing model. |
| ui/log/src/androidMain/kotlin/com/github/kr328/clash/log/LogNav.kt | Add Navigation3 entries for logs/logcat screens. |
| ui/log/src/androidMain/kotlin/com/github/kr328/clash/log/LogcatService.kt | Make notification channel/title strings Compose Resource based. |
| ui/log/src/androidMain/kotlin/com/github/kr328/clash/log/di/LogModule.kt | Add Koin viewmodel bindings for log module. |
| ui/log/src/androidMain/AndroidManifest.xml | Declare logcat foreground service. |
| ui/log/build.gradle.kts | Convert log module to android multiplatform with split source sets. |
| ui/home/src/commonMain/composeResources/values/strings.xml | Add home strings to compose resources. |
| ui/home/src/commonMain/composeResources/values/non-translatable.xml | Add non-translatable home compose resources. |
| ui/home/src/commonMain/composeResources/values-zh/strings.xml | Add zh home translations. |
| ui/home/src/commonMain/composeResources/values-zh-rTW/strings.xml | Add zh-rTW home translations. |
| ui/home/src/commonMain/composeResources/values-zh-rHK/strings.xml | Add zh-rHK home translations. |
| ui/home/src/commonMain/composeResources/values-vi/strings.xml | Add vi home translations. |
| ui/home/src/commonMain/composeResources/values-ru/strings.xml | Add ru home translations. |
| ui/home/src/commonMain/composeResources/values-ko-rKR/strings.xml | Add ko home translations. |
| ui/home/src/commonMain/composeResources/values-ja-rJP/strings.xml | Add ja home translations. |
| ui/home/src/androidMain/kotlin/com/github/kr328/clash/home/vm/HomeViewModel.kt | Migrate strings to Compose Resources getString (suspend lookups). |
| ui/home/src/androidMain/kotlin/com/github/kr328/clash/home/vm/HelpViewModel.kt | Migrate update messages to Compose Resources getString. |
| ui/home/src/androidMain/kotlin/com/github/kr328/clash/home/HomeNav.kt | Add Navigation3 entries for home/help screens. |
| ui/home/src/androidMain/kotlin/com/github/kr328/clash/home/di/HomeModule.kt | Add Koin module for home dependencies/viewmodels. |
| ui/home/src/androidMain/kotlin/com/github/kr328/clash/home/api/HelpApi.kt | Add GitHub releases API client. |
| ui/home/build.gradle.kts | Convert home module to android multiplatform with split source sets + tests. |
| ui/crash/src/commonMain/composeResources/values/strings.xml | Add crash strings to compose resources. |
| ui/crash/src/commonMain/composeResources/values-zh/strings.xml | Add zh crash translations. |
| ui/crash/src/commonMain/composeResources/values-zh-rTW/strings.xml | Add zh-rTW crash translations. |
| ui/crash/src/commonMain/composeResources/values-zh-rHK/strings.xml | Add zh-rHK crash translations. |
| ui/crash/src/commonMain/composeResources/values-vi/strings.xml | Add vi crash translations. |
| ui/crash/src/commonMain/composeResources/values-ru/strings.xml | Add ru crash translations. |
| ui/crash/src/commonMain/composeResources/values-ko-rKR/strings.xml | Add ko crash translations. |
| ui/crash/src/commonMain/composeResources/values-ja-rJP/strings.xml | Add ja crash translations. |
| ui/crash/src/androidMain/kotlin/com/github/kr328/clash/crash/vm/AppCrashedViewModel.kt | Add crash log dumping viewmodel. |
| ui/crash/src/androidMain/kotlin/com/github/kr328/clash/crash/ui/AppCrashedScreen.kt | Migrate title to Compose Resources. |
| ui/crash/src/androidMain/kotlin/com/github/kr328/clash/crash/ui/ApkBrokenScreen.kt | Migrate preference texts to Compose Resources. |
| ui/crash/src/androidMain/kotlin/com/github/kr328/clash/crash/di/CrashModule.kt | Add Koin viewmodel binding for crash module. |
| ui/crash/src/androidMain/kotlin/com/github/kr328/clash/crash/CrashNav.kt | Add Navigation3 entries for crash screens. |
| ui/crash/build.gradle.kts | Convert crash module to android multiplatform with split source sets. |
| ui/build.gradle.kts | Convert root ui module to android multiplatform; depend on common. |
| settings.gradle.kts | Rename included app module to :androidApp. |
| glue/src/main/kotlin/com/github/kr328/clash/glue/util/I18n.kt | Remove Android resource-dependent helpers (toward KMP). |
| glue/src/main/kotlin/com/github/kr328/clash/glue/store/UiStore.kt | Switch DarkMode import to common model. |
| CONTRIBUTING.md | Update commands and CI references to androidApp module. |
| common/src/commonMain/kotlin/com/github/kr328/clash/common/model/DarkMode.kt | Move DarkMode to common multiplatform package. |
| common/src/commonMain/composeResources/values/strings.xml | Adjust common compose resources (remove app-specific strings). |
| common/src/commonMain/composeResources/values/non-translatable.xml | Add non-translatable common compose resource(s). |
| common/src/commonMain/composeResources/values-zh/strings.xml | Sync zh common compose resources. |
| common/src/commonMain/composeResources/values-zh-rTW/strings.xml | Sync zh-rTW common compose resources. |
| common/src/commonMain/composeResources/values-zh-rHK/strings.xml | Sync zh-rHK common compose resources. |
| common/src/commonMain/composeResources/values-vi/strings.xml | Sync vi common compose resources. |
| common/src/commonMain/composeResources/values-ru/strings.xml | Sync ru common compose resources. |
| common/src/commonMain/composeResources/values-ko-rKR/strings.xml | Sync ko common compose resources. |
| common/src/commonMain/composeResources/values-ja-rJP/strings.xml | Sync ja common compose resources. |
| common/src/androidMain/res/values/non-translatable.xml | Add Android non-translatable resource(s). |
| common/src/androidMain/res/values/colors.xml | Add Android colors for Tabby branding. |
| common/src/androidMain/res/drawable/ic_tabby_small.xml | Add small Tabby vector asset. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/util/Ticker.kt | Add coroutine ticker helper. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/util/Patterns.kt | Add filename validation regex constant. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/util/Intent.kt | Add intent helpers (main intent, URI grants, UUID helpers). |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/util/Components.kt | Add component/intent helpers + global application accessor. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/store/StoreProvider.kt | Add store provider abstraction. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/store/Providers.kt | Add SharedPreferences-backed StoreProvider. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/log/Log.kt | Add a lightweight Android Log wrapper. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/id/UndefinedIds.kt | Add generator for stable “undefined” IDs. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/di/AppInfoProvider.kt | Add app info provider interface for decoupling app details. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/constants/Intents.kt | Add centralized intent action constants. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/constants/Authorities.kt | Add centralized content-provider authorities constants. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/compat/Resource.kt | Add preferredLocale compatibility helper. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/compat/PackageManager.kt | Add SDK-compatible PackageManager helper functions. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/compat/Intents.kt | Add SDK-compatible PendingIntent flags helper. |
| common/src/androidMain/kotlin/com/github/kr328/clash/common/compat/Context.kt | Add Context/Service compat helpers (colors, receivers, foreground). |
| common/build.gradle.kts | Convert common module to android multiplatform + compose resources config. |
| androidApp/src/main/res/xml/network_security_config.xml | Add network security config. |
| androidApp/src/main/res/xml/locales_config.xml | Update locale config (remove XML header). |
| androidApp/src/main/res/xml/full_backup_content.xml | Add full-backup include list. |
| androidApp/src/main/res/values/themes.xml | Add bootstrap theme. |
| androidApp/src/main/res/values/strings.xml | Add new strings moved from common/app (e.g., VPN failure, new profile). |
| androidApp/src/main/res/values/colors.xml | Add window background + launcher background color. |
| androidApp/src/main/res/values-night/colors.xml | Add night window background color. |
| androidApp/src/main/res/values-zh/strings.xml | Add zh app strings. |
| androidApp/src/main/res/values-zh-rTW/strings.xml | Add zh-rTW app strings. |
| androidApp/src/main/res/values-zh-rHK/strings.xml | Add zh-rHK app strings. |
| androidApp/src/main/res/values-vi/strings.xml | Add vi app strings. |
| androidApp/src/main/res/values-ru/strings.xml | Add ru app strings. |
| androidApp/src/main/res/values-ko-rKR/strings.xml | Add ko app strings. |
| androidApp/src/main/res/values-ja-rJP/strings.xml | Add ja app strings. |
| androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml | Add adaptive launcher icon referencing new assets. |
| androidApp/src/main/res/drawable/ic_toggle_on.xml | Add toggle icon asset. |
| androidApp/src/main/res/drawable/ic_toggle_off.xml | Add toggle icon asset. |
| androidApp/src/main/res/drawable/ic_toggle_all.xml | Add toggle icon asset. |
| androidApp/src/main/kotlin/com/github/kr328/clash/app/RestartReceiver.kt | Add receiver to restart service after boot/package replace. |
| androidApp/src/main/kotlin/com/github/kr328/clash/app/MainActivity.kt | Update strings + DarkMode import + profile creation naming. |
| androidApp/src/main/kotlin/com/github/kr328/clash/app/DialerReceiver.kt | Add receiver to open app via dialer trigger. |
| androidApp/src/main/kotlin/com/github/kr328/clash/app/di/AppModule.kt | Add Koin app module incl. AppInfoProvider implementation. |
| androidApp/proguard-rules.pro | Add ProGuard rules for the new app module. |
| androidApp/build.gradle.kts | Add jb compose plugin, navigation3 deps, and set namespace. |
| .gitignore | Update assets ignore path to androidApp. |
| .github/workflows/release.yml | Update build/release paths to androidApp. |
| .github/workflows/build.yml | Update build/release paths to androidApp. |
Comments suppressed due to low confidence (2)
ui/src/androidMain/kotlin/com/github/kr328/clash/ui/component/TabbyScaffold.kt:22
- Unused import
com.github.kr328.clash.common.closewill fail the build because Kotlin compilation is configured with warnings-as-errors. Remove the unused import.
ui/settings/src/androidMain/kotlin/com/github/kr328/clash/settings/ui/SettingsPreference.kt:14 - Unused resource accessor imports (
format_elements,empty) are not referenced and will fail the build with warnings-as-errors. Remove the unused imports.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
https://kotlinlang.org/docs/multiplatform/compose-multiplatform-create-first-app.html
Refs #233.