sky121113
fc21186a53
[FEAT] 來店禮串接 B690 + 掃碼即時回饋與空窗修正、通行碼購物車模式封堵
...
1. 來店禮改串新端點 B690(取代舊 HttpAPI.freeGiftCode):
- StarCloudAPI 新增 verifyWelcomeGift(),POST machine/welcome-gift/verify/B690(Bearer 機台 token,body {code})。
- CheckoutFreeGiftCodeDialog 手動輸入與掃碼皆改走 B690;折扣映射 amount→mode1(折抵金額)、percentage→mode2(折扣趴數換算總價乘數,八折20→0.8)。
- 加 isWelcomeGift API 防護;非 amount/percentage 型別擋下提示。
- 注意:B690 無舊「免費商品」型,純折扣。
2. 掃碼 UX 空窗修正(取貨碼/通行碼/來店禮三個對話框):
- 掃描器啟動延遲 5 秒→0,對話框一彈出即監聽,解決「剛彈出馬上掃會整個丟失、時好時壞、無回饋」。
- 讀取窗口 7→9 次(約 45 秒),覆蓋 40 秒對話框存活時間。
- 新增 SET_SCAN_INPUT:掃到的碼即時顯示在輸入框;送出前顯示「驗證中…」。
3. 通行碼購物車模式封堵:
- BuyDialog 購物車模式的付款清單中,通行碼(buttonAccessCode)從未 gating;改在 onCreate 加權威判斷,需 isPickupModule && isPassCode 才顯示,涵蓋購物車/單品所有模式。
4. 版號 verPatch 76→79。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 15:09:42 +08:00
sky121113
e8b3185b8a
[FIX] 取貨碼/通行碼:封堵付款備援漏出、API 防護、掃碼即時回饋
...
通行碼漏洞封堵
- BuyDialog 單品模式 NFC 不支援時會強制顯示通行碼(buttonAccessCode)當備援,
未判斷 isPassCode;改為從屬取貨模組(isPickupModule && isPassCode)才顯示
API 防護(defense-in-depth,UI 漏出入口也擋下)
- submitPassCode/submitPickupCode 開頭加守門:功能關閉即不呼叫 B670/B660,狀態列提示「功能未開放」
掃碼 UX 回饋
- 新增 SET_SCAN_INPUT 事件:掃碼後即時把掃到的碼顯示在輸入框
- 送出驗證前顯示「驗證中…」狀態,取代原本易忽略的遮罩 Toast,避免使用者誤以為沒掃到
- 版號 verPatch 75→76
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 14:11:06 +08:00
sky121113
018da036b1
[FEAT] B014 系統設定全面接入:取貨模組/來店禮 gating、購物車單品直購、購物方式顯示與設定權限分流
...
雲端 B014 設定解析與持久化(StarCloudAPI / MyApp / DevSetStructure)
- FunctionSet 改接 PickupModule/WelcomeGift/MemberSystem/AmbientTemp(原僅 PickupCode/PassCode)
- DevSet 補接刷卡機/掃碼支付細項;新增 HardwareSet 貨道型式(彈簧/履帶)解析
- B000 登入解析 identity/loginToken,供系統設定唯讀身分判斷與 B016 回寫
- 新增 bootstrap 預設(devset_defaults)、initialSystemSet/saveSystemSet DB 持久化
前台流程 gating
- 取貨碼、通行碼從屬「取貨模組」(PickupModule):模組關閉時連動隱藏(畫面與流程都不出現)
- 來店禮獨立判斷(WelcomeGift):原按鈕恆亮,改為依雲端開關顯示
- BasicSaleFlow:購物車(ShoppingCar)關閉時點商品改單品直購,清空後僅放本品並直接開 BuyDialog
系統設定頁(SystemSetActivity / activity_system_set / styles)
- 新增「購物方式」唯讀顯示(基礎版/員工卡/取貨單);僅 basic 展開其下可設定項
- 權限分流:商業政策項(購物車/發票/各支付方式/取貨模組/來店禮/會員)恆唯讀,
機台實體項(刷卡機/掃碼/現金總開關、面額、環溫、硬體貨道)系統方可改並寫回雲端
其他
- DispatchDialog 成功結案清空 v2 購物車;ShoppingCartFragment 調整數量續命倒數
- 版號 verPatch 72→75
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 12:33:57 +08:00
sky121113
b56c539549
[CHORE] 新增 .editorconfig 防止 XML 檔頭 UTF-8 BOM(aapt2 打包防呆)
...
供 UIUX 設計師直接在本 repo 改 UI 時,編輯器不再寫入 BOM 導致 aapt2 失敗。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 17:09:23 +08:00
sky121113
42947dce0c
[FIX] DispatchDialog 關閉未結案補送 MQTT Finalize,修正多品項部分出貨不上報
...
1. 問題:出貨流程若走 dialogCancel() 收場(倒數結束 / dispatchIndex 越界 /
中途中止),整筆交易完全不上報。批次 MQTT Finalize 僅在「成功完成」與
「ERROR_PROCESS_GOODS 失敗」兩條路送出,dialogCancel 這條共通關閉路徑漏掉。
此缺口於 main 既存,因通用版原無多品項出貨、Cmuh 失敗都走 ERROR_PROCESS_GOODS
而未被觸發;多品項 basic 出貨為首次暴露。
2. 修正:在 dialogCancel() 開頭、buyList.clear() 之前加安全網——
若出貨已開始(dispatchList 非空)且尚未結案(!isFinalizing),
補呼叫既有 finalizeFailedDispatch() 送出一筆含全部明細的部分/未完成結案。
3. 守門:以 isFinalizing 擋住正常成功(:946)/錯誤(:1062)路徑,零重複上報;
通行碼 flowType=5 仍由 publishFinalizeUnlessPassCode 自動略過,
對晟崴/中國醫現行行為零影響。
雙硬體編譯綠。實機驗證待硬體(多品項第2件失敗→後台收到一筆部分出貨)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 16:47:10 +08:00
sky121113
1d4c4ab071
[FEAT] Phase3 購物車:移植 ShoppingCart 商品列外觀(表面移植,沿用現有 v2 購物車)
...
- recycler_cart_operation 改用 ShoppingCart 設計(120dp 圖、QuickCart 字樣、primary 色、56dp 加減鈕)
- 保留 buttonWaste 刪除鈕與 totalPriceTextView 小計(現有 CartOperationAdapter/ShoppingCartFragment 沿用)
- 新增 TextAppearance.App.QuickCart.Medium / .Small 樣式
- 不動 FontendActivity 架構與抽屜(DialogXManager/FlowerFragment 不在表面移植範圍)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 16:36:00 +08:00
sky121113
998b3ae89f
[FEAT] Phase2 支付:dialog_buy 支付選單改用 Travis 版(沿用現有 BuyDialog 邏輯)
...
- dialog_buy 換成 Travis 付款選擇版面(gridPaymentIcons + ConstraintLayout Flow)
- binding 契約相符(layoutNfcPay 在現有 BuyDialog 已停用、逐顆控制),無需改 Java
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 16:19:49 +08:00
sky121113
33d79076a6
[FEAT] Phase2 發票:完整移植 Travis 發票設定新流程
...
- 新增 InvoiceTypeDialog(統一類型入口:載具/捐贈/統編)
- 新增 InvoiceDonationDialog + RecyclerDonationListAdpter(捐贈機構 RecyclerView)
- 新增 dialog_invoice_type / dialog_donation 版面 + bg_selected_item
- BuyDialog 發票入口改走 InvoiceTypeDialog(取代直接進 InvoiceBarcodeDialog)
- InvoiceBarcodeDialog:捐贈鈕改導向新 InvoiceDonationDialog,移除舊 inline
showDonationDialog(其引用的舊 dialog_donation id 已不存在)
- 沿用現有 main 發票資料流(getInvoiceData/setLoveCode、ReportFlowInfoData)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 16:18:21 +08:00
sky121113
73e2b55c53
[FEAT] Phase2 發票:移植 Travis 統編/載具對話框外觀(沿用現有 Java)
...
- dialog_customer_identifier / dialog_invoice_barcode 換 Travis 版面
- 新增 bg_keypad_button / bg_step_active / bg_step_inactive 與 color/outlineVariant
- binding 契約相符,無需改 Java
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 16:07:39 +08:00
sky121113
696e6cb952
[FEAT] Phase2 通行碼/取貨碼:移植 Travis 對話框外觀(沿用現有 B660/B670 邏輯)
...
- dialog_access_code / dialog_pickup_code_fontend 換 Travis 版面
- binding 契約相符,無需改 Java(保留現有通行碼/取貨碼邏輯)
- 新增 color/transparent
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 16:05:21 +08:00
sky121113
d4fe3c6cf4
[FEAT] Phase2 支付流程:移植 Travis 現金/玉山結帳對話框外觀
...
分區授權:checkout 對話框採 Travis 設計,邏輯沿用現有 main。
- dialog_checkout_cash_pay / dialog_checkout_esun_pay 換 Travis 版面
- 補回 buttonRetryEscrow(CashPayDialogGeneral 退鈔重試邏輯沿用),以新 Material 樣式呈現
- 新增 pay_* 付款圖檔、icon_network_poor/temperature、img_reload
- 新增 colors infoContainer / surface
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 16:03:43 +08:00
sky121113
c24f409674
[FIX] 移除 origin/ui 帶入的 UTF-8 BOM(aapt2 無法解析導致打包失敗)
...
設計師端編輯器在 3 個 XML 開頭寫入 UTF-8 BOM,aapt2 報
「Cannot read field elmName because root is null」。移除 BOM 後 S12XYU/S9XYU
Debug 皆可正常打包。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 15:40:36 +08:00
sky121113
3d798eb94d
[FEAT] 整合 UIUX origin/ui 改版(後台/貨道/商品卡/員工卡/出貨/StarCloud 圖示)
...
合併 origin/ui 設計師改版:前台商品卡、後台首頁/主控、貨道卡片式 Grid(停售遮罩、
一鍵補貨配色)、商品搜尋、員工卡取貨、出貨清單與進度對話框、各 checkout 對話框版面、
StarCloud App 圖示與名稱、付款管道/接受付款圖檔、switch 色票 selector。
衝突處理:
- 3 個 Cmuh res/layout 覆寫檔(activity_fontend、dialog_pickup_code_buy、
dialog_pickup_code_fontend)已於 ab3b53d 收斂進 main,保留刪除,由 main 對應佈局承載。
- origin/ui 移除了 colors.xml 的 @color/red,但重構後移入 main 的 fragment_shopping_cart
仍沿用,補回 red 定義避免 aapt 連結失敗。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 15:37:14 +08:00
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
sky121113
2c3255cb64
[RELEASE] 升級修補版號 verPatch 68→69(供 General 下位機修正 OTA 更新)
...
ComPort 修正後需遞增版號讓現場機台可觸發 OTA 覆蓋更新。
General S9XYU → versionCode 210169 / versionName 21_01_69_R。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 12:14:48 +08:00
sky121113
275d6d1fa9
[FIX] 通用版下位機 COM port 改為與中國醫相同
...
General 的下位機硬體與中國醫(Cmuh)相同(晟崴為最新硬體),故 COM port
應接 ttyS1/ttyS2 而非原本的 ttyS7/ttyS6。
ComPort.getFilepath() 改為:只有晟崴(Chengwai) 用最新的 ttyS7/ttyS6,
其餘(General + Cmuh)用 ttyS1/ttyS2。晟崴/中國醫接線不變,僅 General 調整。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 11:58:23 +08:00
sky121113
588da4a2eb
[CHORE] APK workflow 強殺防呆 + 新增 Claude Code slash command
...
- .agents/workflows/{compiler,release}-apk.md:Gradle Daemon 終止改防呆——
先優雅 ./gradlew --stop,僅在仍殘留時才升級終止(先 TERM 再 KILL),
避免無差別 pkill -9 撞鎖導致 clean 編譯隨機失敗。
- .claude/commands/{compiler,release}-apk.md:新增對應 slash command(薄包裝,
指向 .agents/workflows 單一真相來源,處理參數注入與 Java 17 環境)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 10:25:48 +08:00
sky121113
53ea3dafa9
[FEAT] 取貨碼金額歸零 + 通行碼不上報交易
...
- 取貨碼(FontendPickupCodeDialog):setTotalPrice(0),因屬已預付來取貨/
付款未出貨補出貨,本機交易付款金額為 0。
- 通行碼(payment_type=5):工程師/內部硬體測試用,DispatchDialog 照常出貨
測試硬體,但略過 MQTT 交易結案上報(避免污染銷售/營收、不扣雲端庫存;
B670 驗證已於後台記 log)。集中於 publishFinalizeUnlessPassCode(),
成功/失敗兩路徑共用。
三 flavor 編譯/打包通過。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 10:01:51 +08:00
sky121113
1720d2007e
[FEAT] 取貨碼/通行碼改走 StarCloudAPI B660/B670(比照員工卡 B680)
...
舊的 httpAPI(memberVerification / checkAccessCode B024)改為新 StarCloudAPI:
- StarCloudAPI 新增 verifyPickupCode(B660,回 code_id+slot_no)、
verifyPassCode(B670,回 code_id),及 PickupVerificationCallback。
- 通行碼 CheckoutAccessCodeDialog:手動+掃碼兩入口改走 verifyPassCode,
成功設 flowType=5、保存 accessCodeId 供 MQTT finalize(payment_type=5)。
- 取貨碼 FontendPickupCodeDialog:兩入口改走 verifyPickupCode,依回傳 slot_no
建立 BuyList、設 flowType=6、保存 accessCodeId(payment_type=6),
進入 BuyPickupCodeDialog 確認 → DispatchDialog;文案修正為「取貨碼」。
finalize 的 code_id 取自 ReportAccessCodeStructure.accessCodeId、payment_type
取自 flowType,App 端 TransactionFinalizeBuilder 既有支援。三 flavor 編譯/打包通過。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 09:52:20 +08:00
sky121113
f10f6f5879
[FEAT] General 接通取貨碼入口(供實機測試)
...
- General SaleFlowHandler.onPickupRequested() 開啟 FontendPickupCodeDialog
(原為空,導致取貨碼點不到)
- 前台取貨碼浮鈕改由 flavor 資源 show_pickup_code_button 控制顯示:
General=true 顯示,main/晟崴/中國醫=false 維持原本隱藏行為
至此 General 取貨碼與通行碼皆可實機測試。三 flavor 編譯/打包通過。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 09:42:30 +08:00
sky121113
e8856d0a8b
[FIX] 通行碼 Dialog 防呆強化(Part 2-3)
...
CheckoutAccessCodeDialog.changeOk()(自 Luzui 移植防呆):
- 加 3 秒防連點,避免重複送出驗證
- 輸入加 .trim() 與 isEmpty 過濾
- 修正誤植文案「統一編號長度不能少於 8 碼」→「通行碼長度不能少於 8 碼」
三 flavor 完整 APK 打包成功(General/Chengwai/Cmuh)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 09:07:56 +08:00
sky121113
2315a32f56
[FEAT] General 現金強化版合併(Part 2-2)
...
移植 Luzui 現金 Dialog 的硬體容錯邏輯(卡鈔偵測+退鈔重試、零錢不足拒收+
退款保障、暫存區兩階段入帳、找零失敗自癒、百元鈔庫存輪詢、3分鐘閒置逾時),
上報層改接 TaiwanStar 新 MQTT(移除 B600/B650,改 DispatchDialog 統一 Finalize)。
採「獨立類別 + flavor 路由」避免 duplicate class、不污染已上線 flavor:
- 新增 src/General CashPayDialogGeneral(Luzui 強化版改名,只 General 編譯)
+ General layout override dialog_checkout_cash_pay.xml 補 buttonRetryEscrow
- showDispatchDialog 改 MQTT 路徑、移除 callB600AndProceed/httpAPI
- onCreate(Context) 移除 throws(對齊 TaiwanStar DialogAbstract 簽名)
- DialogAbstract.cashDialogClass() 經 SaleFlowHandler 解析各 flavor 現金 Dialog
- 三個 SaleFlowHandler 加 cashDialogClass():General→CashPayDialogGeneral、
晟崴/中國醫→標準 CashPayDialog
- 3 個呼叫點(BuyDialog/InvoiceBarcodeDialog/InvoiceCustomerIdentifierDialog)
case 9 改 changeDialog(cashDialogClass())
三 flavor 編譯通過、General APK 打包成功。現金硬體容錯需實機驗證(階段 7)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 09:05:59 +08:00
sky121113
402490ee58
[FEAT] General 付款選單啟用 + BuyDialog NFC 顯示控制(Part 2-1)
...
- DevSet 初始預設值改由 res/values/devset_defaults.xml 提供,各 flavor 可覆寫;
main 維持原值(Chengwai/Cmuh 行為不變),General override 為購物車 + 現金/
刷卡/玉山/LINE Pay/發票全開,裝上即可用。
- BuyDialog 購物車分支:NFC 卡/儲值/手機改逐顆依 isDevNFCPay 控制顯示
(TaiwanStar 無 layoutNfcPay 容器,修正原本指向不存在 view 而被註解的問題)。
三 flavor 編譯通過、General APK 打包成功。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 08:48:07 +08:00
sky121113
cfc802dbb5
[FEAT] General flavor 多品項購物車(Part 1)
...
移植 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>
2026-06-10 08:45:11 +08:00
TaiwanStar Developer
404ba69fba
chore: 修改 APP 圖示與顯示名稱為 StarCloud
2026-06-09 16:58:11 +08:00
TaiwanStar Developer
8e4a0993c7
style: 優化首頁購物按鈕樣式與文字,並新增 logo 資源
...
- 優化首頁 (activity_home.xml) 的購物按鈕 (startButton) 樣式:
1. 寬度由 0dp 改為固定寬度 400dp。
2. 按鈕文字由「購物去」調整為「開始購物」。
3. 背景與文字顏色改為套用主題色系 (@color/primary 與 @color/onPrimary)。
- 新增星雲 LOGO 圓形圖示資源 (starcloud_logo_circle.png)。
2026-06-09 16:46:11 +08:00
TaiwanStar Developer
4d7717edc3
style: 優化後台貨道清單介面佈局與狀態顯示
...
- 狀態辨識度提升:
1. 貨道編號新增「貨道」前綴字樣。
2. 販售與停售狀態加入顏色識別,文字與 Switch 顏色會根據狀態動態切換(成功色/警告色)。
- 佈局與操作體驗優化:
1. 重新排列操作區塊,將「清空貨道」按鈕移至卡片最下方。
2. 放大庫存加減按鈕的觸控範圍(高度調整為 60dp)與字體大小,提升機台觸控體驗。
3. 「清空貨道」按鈕改用 warning 警示色系。
- 視覺微調:移除卡片外框線,使列表視覺更為乾淨。
2026-06-09 16:14:36 +08:00
sky121113
5f480d6cb6
[FIX] 修正非中國醫專案的物料代碼一致性驗證邏輯並升級修補版號
...
1. 於 VmcSlotListActivity 限制 validateMaterialCodeConsistency 僅在中國醫 (CMUH) 專案下執行,其他專案直接跳過。
2. 調整 app/build.gradle 的修補版號 (verPatch) 變數值,由 67 遞增至 68。
2026-06-09 16:00:58 +08:00
TaiwanStar Developer
b1732987ce
feat: 優化商品搜尋介面並修復後台貨道編輯 Bug
...
- 商品搜尋介面大改版:
1. 搜尋列表從單欄改為 3 欄網格排列,並導入 MaterialCardView 重新設計商品卡片。
2. 搜尋框體驗優化:隱藏原生圖示,新增清空按鈕;支援點擊列表或候選字時自動收起鍵盤。
3. 點擊候選字邏輯修改為直接套用完整字詞。
4. 擴大點擊範圍,改為點擊整張商品卡片即可選取。
- 貨道編輯清單修復:
1. 將 textCount 隱藏狀態改為 INVISIBLE 解決 GONE 導致輸入框寬度壓縮為 0 的問題。
2. 輸入數量時改用 numberPassword 並移除密碼遮罩,以喚起乾淨的純數字鍵盤。
- 資源與樣式:
1. 新增 button_outline_black.xml 黑框按鈕樣式。
2. 修正圖片檔名大小寫 (eTicket -> eticket)。
2026-06-09 15:59:36 +08:00
TaiwanStar Developer
d917f6445c
style(ui): 將出貨頁面標題改為灰色背景與黑色文字
2026-06-08 15:33:34 +08:00
TaiwanStar Developer
d1bf7d18ce
style: 調整出貨清單 UI 的文字顏色與出貨中狀態格式
...
- 將商品名稱、順序(槽位號)與已出貨數量資訊的文字顏色改為黑色(@color/black)
- 將出貨中狀態的格式「出貨中(1)」改為「出貨中(1件)」
2026-06-08 14:34:26 +08:00
TaiwanStar Developer
f2ed393686
style(ui): 優化出貨進度對話框結構、版面自適應與配色調整
...
- 頁面標題改為「出貨進度」,背景調整為主色 (primary)
- 新增並更新多國語言字串 (processing, dispatch_progress)
- 重構底部的當前出貨進度區塊結構,移除冗餘嵌套,將區塊背景設為 cardSurface
- 取消按鈕樣式改為 warning/onWarning 配色,扁平化結構並去除冗餘 FrameLayout
- 清單區域高度改為 weight=1 自適應剩餘空間,移除 Space 元件,背景改為 background 色
2026-06-08 13:59:32 +08:00
TaiwanStar Developer
907d5095d5
style: 重構員工卡支付對話框佈局並更新身分證/員工卡相關圖檔資源
2026-06-08 11:54:15 +08:00
TaiwanStar Developer
28a3d623f0
feat: 新增支付管道與接受付款類型相關圖片資源
2026-06-08 09:53:40 +08:00
TaiwanStar Developer
2e71cc29b8
feat: 修改 VMC 貨道清單之未配置商品圖示、卡片背景色與一鍵補貨按鈕配色
2026-06-05 17:24:37 +08:00
TaiwanStar Developer
8f6b5217d6
feat(ui): 貨道停售中狀態時在商品圖片上方顯示透明黑色遮罩
2026-06-05 16:19:51 +08:00
TaiwanStar Developer
5d9c5ba5cf
style(ui): 調整貨道管理儲存與一鍵補貨按鈕配色,並將 Switch 選中狀態設為 primary 色
2026-06-05 16:18:26 +08:00
TaiwanStar Developer
a933bb22f6
feat(ui): 改造貨道管理列表為卡片式 Grid 佈局與 Adapter 邏輯對接
2026-06-05 16:16:27 +08:00
TaiwanStar Developer
aed8d9bc1f
style(ui): 依據參考介面調整貨道管理版面
...
調整項目:
1. 頂部區域:保留「貨道管理」標題,省略機櫃選擇與命名的部分。
2. 列表區域:將 recyclerSlotList 改為 Grid 網格排版,設定 spanCount 為 3。
3. 底部區域:省略批量匯出、批量匯入按鈕。將「返回」與「清空」按鈕設為隱藏以維持程式碼 ViewBinding 相容性。
4. 儲存按鈕:原「上傳後台並返回」按鈕文字修改為「儲存」,並維持原有點擊與同步邏輯。
2026-06-05 15:40:36 +08:00
sky121113
abe3ac14c1
Merge branch 'dev' into main for release v21.1.67
2026-06-04 16:29:04 +08:00
TaiwanStar Developer
54e0c9ffa5
style(ui): 調整廣告區域容器比例至 21:9 與等比例縮放
...
1. 將廣告區域容器比例從 16:9 調整為 21:9
2. 設定影片播放器屬性為 app:resize_mode=zoom
3. 設定廣告圖片屬性為 android:scaleType=centerCrop
2026-06-04 16:28:34 +08:00
sky121113
0637f71e34
[FIX] 優化機台鎖定防護流程與遞增版本號
...
1. 遞增修補版號 verPatch 至 67 以落實機台 OTA 更新規範。
2. 於 FontendActivity 的 onCreate 流程新增機台鎖定狀態檢查,若鎖定則強制跳轉至 MaintenanceActivity 並清除 Activity 棧。
3. 修正 MqttService 的鎖定命令跳轉旗標,改用 Intent.FLAG_ACTIVITY_CLEAR_TASK 確保舊 Activity 棧被完整清理。
4. 移除 AppUtils 中未使用的 MqttManager 引用。
2026-06-04 16:07:31 +08:00
TaiwanStar Developer
02ae6623d9
style(ui): 調整前端首頁資訊排版與背景色
...
1. 將版本號與 TC/VC 移至最底部釘選
2. 頂部資訊順序改為「時間 | 溫度 | 網路」,文字改為 @color/gray
3. 上下區塊背景改為 @color/light_gray,文字改為 @color/gray
4. 頁面背景及商品卡片區域背景改為 @color/background
2026-06-04 15:41:56 +08:00
TaiwanStar Developer
12e61d2a10
feat(ui): 替換 VMC 購買清單為新版佈局並調適 Adapter
...
1. 替換 recycler_vmc_buy_list.xml 為新版 CardView 結構,微調定位使 textPrice 相容舊版價格邏輯
2. 將貨道 textSlot 移至左上角,大小設為 18sp,顏色改用 primary/onPrimary 語意色
3. 將庫存 textStock 獨立定位於右下角,大小設為 18sp,顏色改用 gray/black 資源
4. 修改 RecyclerVmcBuyListAdpter 綁定庫存數量,並將貨道文字調整為「貨道value」無補零格式
2026-06-04 15:24:22 +08:00
TaiwanStar Developer
c7d75a8522
fix(layout): 移除佈局 XML 檔案的 UTF-8 BOM 檔頭
...
修復 DataBinding 元件在 Gradle 建置過程中因 XML 檔案包含 BOM (Byte Order Mark) 檔頭而解析失敗的問題。
原因:XML 檔頭的前導字元 EF BB BF 導致 LayoutFileParser 在解析 root 節點時發生 NullPointerException。
調整項目:- 批次移除 layout 目錄下所有 XML 佈局檔案的 UTF-8 BOM 檔頭。
2026-06-04 14:22:32 +08:00
TaiwanStar Developer
c7b8372dfc
style(ui): 簡化色彩系統設定與對齊佈局配置
2026-06-04 13:57:06 +08:00
sky121113
bfc2915403
[FIX] 修復中國醫多貨道庫存分配異常與遞增發版版號
...
1. 修復 SaleFlowHandler.java:重構中國醫客製領藥流程中的多商品貨道分配演算法,引進動態多貨道輪替分配機制,徹底解決一筆單多商品(如 3 個同商品)時貨道重複分配為 3, 4, 4 的 Bug。
2. 更新 build.gradle:配合生產發版,將修補版號 verPatch 遞增至 66,並在背景成功編譯產出正式 Release APK (CmuhS9XYURelease)。
2026-06-02 17:49:40 +08:00
sky121113
0967f8445e
Merge branch 'dev' into main for release 65
2026-06-02 16:01:05 +08:00
sky121113
a5add7d8ae
RELEASE: 修正多商品取貨 UI 倒數閃跳與 3 分鐘閒置崩潰問題,發佈版本 65
2026-06-02 16:00:58 +08:00
sky121113
31a073475e
[PROMOTE] 晉升開發分支 dev 至生產分支 main
...
包含以下主要功能與修復:
1. [FIX] 修正 OTA 連線超時與首頁執行緒併發競態導致 UI 異常問題 (808b9c4 )
2. [FEAT] 優化 OTA 靜默安裝邏輯,支援降版本覆蓋安裝 (8768e95 )
3. [STYLE] 優化 CMUH 專屬佈局元件比例與樣式排版 (2ea55b9 )
4. [FEAT] 新增 CMUH 客製初始畫面跳轉與多處頁面重啟邏輯優化 (7b9b96c )
5. [FIX] 修正中國醫 (CMUH) 領藥異常處理與銷貨流水號關聯 (4c9fb5e )
6. [FIX] 實作半途出貨失敗的 MQTT Finalize 結案回報機制 (b2b6776 )
7. [REFACTOR] 優化中國醫(Cmuh)售貨與領藥流程,並重構 API 連線模組 (71a0591 )
8. [FEAT] 主控台 UI 全面翻新 (Console UI Overhaul) (984bbe7 )
9. [REFACTOR] 重構銷售流程至雙維度 Flavor 架構與版本計算規範 (3409f93 )
10. [FEAT] 新增遠端 MQTT 應用程式 OTA 更新功能與雙版號動態計算機制 (e15d020 )
2026-06-02 10:52:50 +08:00