TaiwanStar Developer
0a19e965a8
feat(cart): 優化購物車品項數量調整邏輯與介面顯示
...
- 新增單一品項與總數量的調整限制邏輯,達上限時按鈕切換為 disabled 狀態
- 移除數量調整按鈕的陰影跳動與裁切問題
- 新增增加、減少、刪除按鈕的水波紋點擊反饋
- 在品項金額後方新增「庫存xx件」資訊,並統一樣式
- 購物車達數量上限時,顯示「已達數量上限」警告文字
2026-06-12 13:35:39 +08:00
TaiwanStar Developer
e331e399bc
feat(ui): 統一來店禮與通行碼的對話框樣式與輸入模式切換
...
- 參照取貨碼對話框 (dialog_pickup_code_fontend) 重新設計 dialog_free_gift_code.xml 與 dialog_access_code.xml
- 於 CheckoutFreeGiftCodeDialog 與 CheckoutAccessCodeDialog 加入鍵盤輸入與掃描條碼之模式切換邏輯 (btnModeKeypad / btnModeScan)
2026-06-12 12:16:08 +08:00
TaiwanStar Developer
2e70c16aa3
UI: 更新取貨碼視窗樣式與佈局
...
- 將「請輸入取貨碼」標題與副標調整為單一標題
- 調整視窗上方 padding 與標題間距
- 實作「鍵盤輸入」與「掃描條碼」的分段控制按鈕,包含背景、文字顏色變化與陰影效果
- 按鈕群組移除外框並增加陰影
- 返回按鈕置中並修改文字為「取消xx秒」
- 「輸入完成」按鈕修改為「確認」
- 掃描條碼圖片等比例填滿容器
2026-06-12 11:49:14 +08:00
sky121113
a33c0c97bd
Merge remote-tracking branch 'origin/ui-design' into feat/general-cart-and-payment
2026-06-12 08:47:50 +08:00
sky121113
39245a0608
[FIX] TapPay 圖示檔名改小寫修正 aapt2 命名違規;升版 v81
...
- ui-design 合併帶進的 TapPay30~34.png 用大寫檔名,違反 Android
resource「只能 a-z/0-9/底線」規則,導致 mergeResources 失敗。
改名為 tappay30~34.png(git mv 保留歷史)。圖示目前未被引用,
改名不影響功能,保留供日後接線。
- verPatch 80→81
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 08:47:43 +08:00
TaiwanStar Developer
f6028ffb80
UI: 優化購物車頁面排版與樣式
...
1. 商品列表滿版顯示,品項數量移至最上方並縮小字級。
2. 小記與總額樣式調整:小記字級縮小且改為黑色,總額改為主題色,並對齊底部。
3. 底部操作區重新排版:左右比例改為 4:6,對齊底部水平線。
4. 按鈕樣式更新:
- 「繼續選購」:改為 outline button。
- 「清空購物車」:改為 warning 顏色的 outline button,移除計時括號並縮小字級。
- 「前往結帳」:寬度填滿容器的按鈕。
5. 背景與陰影調整:底部操作區增加陰影並移除外框;商品區背景色調整。
6. 購物車單品操作按鈕(增減、刪除)增加 elevation 陰影效果。
2026-06-11 17:20:30 +08:00
sky121113
79e1f69325
Merge remote-tracking branch 'origin/ui-design' into feat/general-cart-and-payment
2026-06-11 16:58:21 +08:00
sky121113
8d2adee5ab
[FEAT] 支付方式「母&&子」集中判斷 + 入口防呆;對話框期間隱藏銷售平台浮層
...
- DevSetStructure 新增 canCreditCard/canCardPay/canMobilePay/canEsunPay/
canTapPay/canLinePay/canCash,集中「母開關 && 子項」真相
- BuyDialog 購物車/單品/例外三分支改用上述便利方法,並在 changeCheckout
入口以 isPaymentFlowAllowed 再次防呆,擋下被繞過的已停用支付
- 浮層連動:HIDDEN/SHOW_MULTILANGUAGE_BUTTON 改為 HIDE/SHOW_SALE_OVERLAY,
對話框與購物車 Fragment 期間統一隱藏取貨碼/購物車浮鈕與上下系統列
- 無操作逾時 3 分鐘調整為 5 分鐘;verPatch 79→80
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 16:58:14 +08:00
TaiwanStar Developer
b0f7381832
新增 TapPay 相關圖示資源
2026-06-11 16:21:49 +08:00
TaiwanStar Developer
5af9a94a0c
優化購物車品項排版與按鈕樣式
...
1. 新增按鈕背景與 Icon 向量資源
- 新增 bg_quantity_outline_button.xml:為加減按鈕設計的背景,底色為頁面背景,帶有 1.5dp 黑色圓角外框。
- 新增 bg_waste_outline_button.xml:為移除按鈕設計的背景,底色為頁面背景,帶有 1.5dp 警告色圓角外框。
- 新增 add_24.xml、remove_24.xml、close_24.xml:將原本填充式圖示改寫為純線段,設定黑色線條且加粗 (strokeWidth="3")。
- 新增 close_warning_24.xml:移除按鈕專用的叉叉圖示,線條同樣加粗,顏色改為警告色。
2. 優化購物車清單排版 (recycler_cart_operation.xml)
- 圖片縮小:將商品圖片寬高從 120dp 縮減為 80dp。
- 文字調整:將商品名稱字級放大至 24sp,並將字重調整為 normal。
- 將單一品項金額設為隱藏,並將小計金額從最右側移至商品名稱下方。
- 加減按鈕:尺寸調整為 44dp 並加上 10dp padding,套用新的黑色外框背景與加粗 Icon。
- 移除按鈕:尺寸同樣調整為 44dp,改用 Warning 樣式外框與 Icon,並加大左側邊距 (marginStart=32dp) 以拉開間隔。
3. 其他連帶變更
- 包含 fragment_shopping_cart.xml 與多語系 strings.xml 的相關微小變動。
2026-06-11 16:21:49 +08:00
TaiwanStar Developer
ee732e03a3
UI: 更新購物車與取貨碼懸浮按鈕樣式及動態角標
...
- 將購物車與取貨碼改為統一的帶圓角 CardView 容器設計,使用 surface 背景與黑色圖示文字。
- 修正陰影裁切問題,移除外層容器的 clipChildren 限制。
- 購物車新增右上角紅色 Badge 顯示當前選取的商品總數,並與 CartViewModel 動態綁定。
- 調整懸浮按鈕位置,使其與底部機台資訊列保持 24dp 的合適間距。
- 新增 Google Material Icons: package_24 與 shopping_cart_24。
- 同步更新相關的 Agent 發版規則文件,移除廢棄的多維度 flavor 定義。
2026-06-11 15:18:38 +08:00
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
2683b850a2
Merge remote-tracking branch 'origin/ui-design' into ui-design
2026-06-11 14:12:22 +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
TaiwanStar Developer
3b1764b75c
feat: 新增商品出貨成功與機器巡檢中 UI 彈跳視窗
2026-06-11 10:24:04 +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