Skip to content

Shape CMP skeleton#332

Merged
Goooler merged 19 commits into
trunkfrom
move-android-main
Jun 11, 2026
Merged

Shape CMP skeleton#332
Goooler merged 19 commits into
trunkfrom
move-android-main

Conversation

@Goooler

@Goooler Goooler commented Jun 10, 2026

Copy link
Copy Markdown
Owner

@Goooler Goooler force-pushed the move-android-main branch 2 times, most recently from 76c5e43 to af9bf73 Compare June 10, 2026 05:28
@Goooler Goooler force-pushed the move-android-main branch 2 times, most recently from 34fc53d to f1e452d Compare June 10, 2026 08:31
@Goooler Goooler force-pushed the move-android-main branch from f1e452d to 241d230 Compare June 11, 2026 01:32
@Goooler Goooler force-pushed the move-android-main branch from b37faf7 to 096325d Compare June 11, 2026 02:03
@Goooler Goooler force-pushed the move-android-main branch 12 times, most recently from ea37b10 to fbe63db Compare June 11, 2026 06:32
@Goooler Goooler force-pushed the move-android-main branch from fbe63db to d845ee6 Compare June 11, 2026 06:37
# 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
@Goooler Goooler force-pushed the move-android-main branch from c0ecd5d to ea3a5c4 Compare June 11, 2026 07:15
@Goooler

Goooler commented Jun 11, 2026

Copy link
Copy Markdown
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

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:androidApp and 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.close will 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.

@Goooler Goooler enabled auto-merge (squash) June 11, 2026 07:34
@Goooler Goooler merged commit 02f39ef into trunk Jun 11, 2026
5 checks passed
@Goooler Goooler deleted the move-android-main branch June 11, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants