移植 Luzui v2 Kotlin MVVM 購物車到 General flavor,接 TaiwanStar 既有
結帳鏈(BuyDialog → 付款 → DispatchDialog → MQTT 結案)、沿用 VMC 出貨。
- build:啟用 Kotlin/lifecycle/BaseRecyclerViewAdapterHelper(全域 classpath,
cart .kt 僅在 src/General 編譯,不影響 Chengwai/Cmuh 行為)
- 移植至 src/General:CartViewModel/CartOperationAdapter/CartOperationResult/
SafeCountdownUtil/UnibuyHelper/ShoppingCartFragment + layout/drawable/三語 strings
- 移除 Luzui 的 updateLocalGoods(FLOWER/DAO)、DialogXManager、HttpAPI、格子機依賴
- 結帳改 convertToBuyStructure() + SaleFlowHandler.onBuyRequested()
- 共用檔最小改動(對 Chengwai/Cmuh 零行為影響):
- SlotStructure 加 cartSelectedCount
- FontendActivity 加 openFragment()/backToVmc()、購物車浮鈕改走 onShoppingCartRequested()
- RecyclerVmcBuyListAdpter 點商品改走 flavor hook handleProductSelected()
- 三個 SaleFlowHandler 加 onShoppingCartRequested()/handleProductSelected()
(General:加入購物車;Chengwai/Cmuh:維持原行為)
三 flavor 編譯通過、General APK 打包成功。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
54 lines
2.7 KiB
TOML
54 lines
2.7 KiB
TOML
[versions]
|
||
agp = "8.13.2"
|
||
junit = "4.13.2"
|
||
junitVersion = "1.2.1"
|
||
espressoCore = "3.6.1"
|
||
appcompat = "1.7.0"
|
||
material = "1.12.0"
|
||
activity = "1.10.0"
|
||
constraintlayout = "2.2.0"
|
||
|
||
usb-serial-for-android = '3.8.1'
|
||
android-serialport = '2.1.5'
|
||
glide = '4.12.0'
|
||
compiler = '4.12.0'
|
||
media3-exoplayer = '1.5.1'
|
||
media3-ui = '1.5.1'
|
||
workRuntime = "2.10.0"
|
||
tsnackBar = "V2.0.0"
|
||
|
||
# Kotlin / MVVM(為 General flavor 的多品項購物車)
|
||
kotlin = "1.9.24"
|
||
lifecycle = "2.6.2"
|
||
brvah = "3.0.14"
|
||
|
||
[libraries]
|
||
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
||
ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
|
||
espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
|
||
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
|
||
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
||
activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
|
||
constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
|
||
|
||
usb-serial-for-android = { group = "com.github.mik3y", name = "usb-serial-for-android", version.ref = "usb-serial-for-android" }
|
||
android-serialport = { group = "com.licheedev", name = "android-serialport", version.ref = "android-serialport" }
|
||
glide = { group = "com.github.bumptech.glide", name = "glide", version.ref = "glide" }
|
||
compiler = { group = "com.github.bumptech.glide", name = "compiler", version.ref = "compiler" }
|
||
media3-exoplayer = {group = "androidx.media3", name = "media3-exoplayer", version.ref = "media3-exoplayer" }
|
||
media3-ui = {group = "androidx.media3", name = "media3-ui", version.ref = "media3-ui" }
|
||
work-runtime = { group = "androidx.work", name = "work-runtime", version.ref = "workRuntime" }
|
||
tsnackBar = { group = "com.github.Redman1037", name = "TSnackBar", version.ref = "tsnackBar" }
|
||
|
||
# Kotlin / MVVM(為 General flavor 的多品項購物車)
|
||
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
|
||
lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycle" }
|
||
lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "lifecycle" }
|
||
lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycle" }
|
||
brvah = { group = "io.github.cymchad", name = "BaseRecyclerViewAdapterHelper", version.ref = "brvah" }
|
||
|
||
[plugins]
|
||
android-application = { id = "com.android.application", version.ref = "agp" }
|
||
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
||
|