TaiwanStar_general_size_s_C.../app
sky121113 ab3b53da99 [REFACTOR] 收斂 project 維度為執行期 shopping_mode + B014 雲端設定唯讀同步
1. B014 雲端設定下發 → App 解析寫入 DevSet 並持久化:
   - StarCloudAPI.saveSettings() 解析 DevSet(14 開關)/CashSet(7 面額)/
     FunctionSet(取貨碼 PickupCode、通行碼 PassCode)/ShoppingMode;
     缺漏粒度區分(整個物件缺→不動本地防誤關;物件內 key 缺→視為 false)。
   - MyApp 修 TapPay30~34 持久化 bug(saveSystemSet 補序列化、initialSystemSet
     改 optBoolean 防舊紀錄 crash),並新增 PickupCode/PassCode/ShoppingMode 持久化。
   - DevSetStructure 新增 isPickupCode/isPassCode 欄位。
   - SystemSetActivity 全部 21 個 checkbox 鎖唯讀、返回鈕只 finish() 不回寫。
   - 取貨碼浮鈕(FontendActivity)改吃 DevSet.isPickupCode()、通行碼入口(BuyDialog)
     改吃 DevSet.isPassCode(),取代舊 flavor 資源/寫死。

2. 收掉 project flavor 維度,三種購買流程改由雲端 shopping_mode 執行期切換:
   - SaleFlowHandler 改為 main 抽象基底 + create() factory,依 shopping_mode 回傳
     BasicSaleFlow(basic/原 General)、EmployeeCardSaleFlow(employee_card/原 Chengwai)、
     PickupSheetSaleFlow(pickup_sheet/原 Cmuh) 三策略。
   - 三 flavor 的 dialog/adapter/Kotlin 購物車/Cmuh 醫令類別全併入 main;重複類別去重。
   - FontendPickupCodeDialog 內部依 shopping_mode 分支(basic/employee 走 B660、
     pickup_sheet 走舊 memberVerification 並跳過取貨口檢查)。
   - fragment_vmc 合併掃描單據按鈕,VmcFragment 依 shopping_mode toggle 可見性。
   - General strings(zh/en/ja)、drawable、購物車 layout 併入 main;
     devset_defaults 併為 basic-mode bootstrap 預設。

3. 取代 BuildConfig.FLAVOR_project 編譯期分支:
   - AppEntry.isCmuh() 改判 shopping_mode == pickup_sheet。
   - DispatchDialog 6 處 Cmuh 分支改用 AppEntry.isCmuh()。
   - ComPort.getFilepath() 改認硬體維度 BuildConfig.FLAVOR(S12XYU→ttyS7/S6、
     S9XYU→ttyS1/S2),與購買流程正交;對現役機台行為不變。

4. build.gradle 移除 project 維度,flavorDimensions 只留 hardware;輸出檔名去掉
   project 段(app-S_12_XY_U-<ver>-debug.apk)。刪除 app/src/{General,Chengwai,Cmuh}/。

5. compiler-apk / release-apk(workflow + .claude/commands)改以硬體規格 S9/S12 為
   打包對象,OTA keyin 改依硬體分版並提示 shopping_mode 部署鐵律。

6. verPatch 69→70(供 OTA 遠端更新)。

雙硬體 clean 編譯回歸 S12XYU/S9XYU 全綠。實機三流程驗證待硬體。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 15:28:59 +08:00
..
libs refactor: move project files to root and cleanup structure 2026-05-06 11:13:45 +08:00
src [REFACTOR] 收斂 project 維度為執行期 shopping_mode + B014 雲端設定唯讀同步 2026-06-10 15:28:59 +08:00
.gitignore refactor: move project files to root and cleanup structure 2026-05-06 11:13:45 +08:00
build.gradle [REFACTOR] 收斂 project 維度為執行期 shopping_mode + B014 雲端設定唯讀同步 2026-06-10 15:28:59 +08:00
proguard-rules.pro refactor: move project files to root and cleanup structure 2026-05-06 11:13:45 +08:00