sky121113
|
422459a0c3
|
[FIX] 修復閒置逾時觸發與資源釋放問題,並修正介面字串
1. 於 AppCompatActivityAbstract 覆寫 onUserInteraction(),在使用者互動時主動更新最後互動時間。
2. 於 HomeActivity.onDestroy() 增加 reportOnScheduler 的生命週期管理,於銷毀時執行 shutdown() 以防止執行緒洩漏。
3. 於 FontendActivity 的閒置逾時機制中,增加開發者/主控台模式判定,若處於該模式則重設計時器、不返回待機頁。
4. 修改 strings.xml 中的 slave_machine_software 字串,由「結構設定APP」修正為「下位機設定」。
|
2026-05-20 11:30:39 +08:00 |
|
sky121113
|
d13546b379
|
[FIX] 優化點選商品之出貨口狀態判斷與防重複點擊機制
1. 重構 checkSlotHaveProduct 方法以支援安全回呼與 3000ms 超時保護。
2. 修正 DevCheckSlotByVMC 串口讀取未重置 haveThings 導致的狀態殘留 Bug。
3. 加入 isCheckingSlot 點選鎖,防呆避免非同步檢查期間重複點擊商品。
4. 於異常 AlertDialog 手動與自動關閉路徑中,正確釋放點選鎖。
5. 更新中英日三語系取貨口有物文字為「取貨口有東西,請先取出」,並將 Dialog 字體放大至 24sp。
6. 將 checkSlot 的串口讀取延遲由 2000ms 降至 800ms,大幅加速點選商品的反應時間。
|
2026-05-19 16:35:13 +08:00 |
|
sky121113
|
ab8b828aa2
|
[FIX] 優化貨道上傳流程與隱藏出貨完成後的取貨確認按鈕
1. 於 DispatchDialog.java 中隱藏出貨流程最後的「取貨確認」按鈕,改為僅以 15 秒倒數後自動關閉對話框,防範使用者干預流程。
2. 於 VmcSlotListActivity.java 調整貨道同步邏輯,在上傳成功後自動返回前一頁。
3. 於 VmcSlotListActivity.java 實作上傳失敗時的彈出對話框,提供「重新嘗試」與「直接返回」選項,防止因返回鍵隱藏而造成介面卡死。
4. 調整 activity_vmc_slot_list.xml 佈局,隱藏「返回」按鈕,並將儲存按鈕文字調整為「上傳後台並返回」。
5. 修改 MqttManager.java,將心跳包定時器初始化延遲設定為 10 秒,避免開機初始化期間發生資源競合。
|
2026-05-18 13:15:30 +08:00 |
|
sky121113
|
d68482a005
|
[REFACTOR] 關閉閒置 30 分鐘主動重啟機制以維持連線穩定
1. 註解掉 FontendActivity 中的閒置 30 分鐘重啟邏輯。
2. 改為僅依賴每 4 小時一次的定時重啟,優化 MQTT 連線紀錄的穩定性並減少頻繁斷線。
|
2026-05-16 18:16:54 +08:00 |
|
sky121113
|
65dd123d0c
|
[FEAT] 實作機器連線環境切換功能 (Demo vs 正式站)
1. 在 activity_setting.xml 新增環境切換單選鈕 (RadioGroup)。
2. 修改 SettingActivity.java 處理環境切換邏輯與 UI 初始化。
3. 修改 MachineStructure.java 新增 mqttEnv 欄位以儲存環境狀態。
4. 修改 MyApp.java 在啟動時從資料庫載入環境設定。
5. 修改 StarCloudAPI.java 使 API BASE_URL 根據環境設定動態切換。
6. 修改 MqttManager.java 使 MQTT Broker Host 根據環境設定動態切換。
7. 更新正式站 API (starcloud.taiwan-star.com.tw) 與 MQTT (emqx.taiwan-star.com.tw) 位址。
|
2026-05-15 12:55:15 +08:00 |
|
sky121113
|
43b1a8b3e3
|
[FEAT] 最佳化主介面佈局並實作 MQTT 優雅重啟邏輯
1. 在主介面 (activity_main.xml) 加入 ScrollView 容器,支援更多功能按鈕的滾動顯示。
2. 新增「進入系統畫面」按鈕,方便開發與偵錯。
3. 實作 MQTT 優雅斷線機制,在 App 手動或自動重啟前先行中斷 MQTT 連線,避免觸發 LWT 離線告警。
4. 修正貨道商品價格顯示邏輯,當價格為 0 時自動隱藏售價標籤。
5. 調整 VmcFragment 中的售價合法性判斷基準。
6. 更新 compiler-apk 工作流說明文件。
|
2026-05-14 17:42:30 +08:00 |
|
sky121113
|
4105d33956
|
[STYLE] 修正銷售平台圖片廣告下方的間距問題
1. 將 activity_fontend.xml 中的 imageAd 元件高度由 wrap_content 改為 match_parent,使其強制填滿 16:9 廣告區域,消除與下方商品列表間的間距。
2. 移除 imageAd 中無效的 app:layout_constraintDimensionRatio="16:9" 屬性。
|
2026-05-14 12:42:18 +08:00 |
|
sky121113
|
45853d0b9d
|
[FEAT] 實作遠端更新商品指令與圖片顯示優化
1. 在 MqttService 中新增 update_products 指令處理,支援遠端觸發商品資料同步。
2. 優化 ImageGlide 邏輯,移除從網路載入圖片時的淡化濾鏡,確保圖片即時顯示原色。
3. 改進 ProductListActivity 的圖片預載機制,支援逐張商品即時刷新 UI 提升互動感。
4. 更新 .gitignore 以排除 .idea 目錄及 Agent 產生的規劃檔案。
5. 配合環境調整 Gradle 配置與 SDK 路徑。
|
2026-05-14 11:13:42 +08:00 |
|
sky121113
|
8ae4ae9c14
|
[FIX] 修復廣告同步導致的 Activity 銷毀崩潰與局部廣告清空失效問題
1. 修正 HomeActivity 與 FontendActivity 在廣告更新廣播回呼中因 Activity 已銷毀而觸發 Glide IllegalArgumentException 的問題。
2. 在 VideoImageMixedPlayer 中增加 Activity 生命週期安全檢查,確保不會在非法 Context 下執行 UI 操作。
3. 優化 VideoImageMixedPlayer 的清空邏輯:當特定 Flag 下無廣告可播放時,主動隱藏影片與圖片視圖並清除殘留影像。
4. 強化 stop() 方法,確保切換頁面時能完整釋放播放器資源並重設視圖狀態。
5. 增加詳細的廣告過濾與播放日誌,並支援廣告動態播放時間 (Duration) 控制。
|
2026-05-13 17:06:17 +08:00 |
|
sky121113
|
3044314856
|
[FIX] 修正商品圖片同步後銷售平台未更新問題及編譯穩定性改善
1. StarCloudAPI:同步商品後強制更新所有 SlotStructure 的物件參考,確保 UI 取到最新資料
2. FontendActivity:在 onResume 中清除 Glide 記憶體快取並呼叫 updateFlowerBuyList(),確保返回銷售平台時圖片即時刷新
3. ImageGlide:新增 clearProductCache() 方法,可實體刪除本地快取圖片目錄,並加入診斷用日誌
4. RecyclerVmcBuyListAdpter:優化 ViewHolder 綁定邏輯,補齊售完遮罩顯示判斷及點擊事件資料驗證
5. SettingActivity:補上遺漏的 ImageGlide import 修正編譯錯誤,並修正 RecyclerView LayoutManager 設定邏輯
6. ProductListActivity:補上遺漏 import
7. compiler-apk.md:Workflow 改為每次執行 clean build 並先終止殘留 Gradle Daemon,避免增量快取遮蔽編譯錯誤
|
2026-05-13 12:42:41 +08:00 |
|
sky121113
|
028cac10b5
|
[FIX] 優化出貨流程 UI 體驗與修復雙重倒數 Bug
1. 修復出貨結案時,因 VMC 重複回傳訊號導致 15 秒倒數重置的 Bug。
2. 實作 isFinalizing 狀態鎖,確保結案流程不被舊有的定時器或重複訊號干擾。
3. 優化出貨流程 UI:初始狀態顯示「準備出貨」,取代原先錯誤的提示文字。
4. 調整「取貨確認」按鈕邏輯:出貨中隱藏按鈕,僅在 15 秒取貨倒數時顯示,並支援使用者提前確認取貨。
5. 修正「員工卡」錯字並同步多語系(英、日)字串資源。
6. 在 MqttService 與 FontendActivity 實作 isMachineBusy() 檢查,防止交易過程中觸發遠端重啟。
7. 優化 VMC 偵測邏輯,加入重複訊號過濾防護。
|
2026-05-13 09:33:32 +08:00 |
|
sky121113
|
93a9ad7e2d
|
[FIX] 優化 MQTT 遠端重啟邏輯與機台忙碌狀態判斷
1. 在 MyApp 實作 getBusyReason(),整合對話框、購物車、NFC 支付狀態,提供更精確的忙碌診斷資訊。
2. 重構 MqttService 遠端解鎖/重啟邏輯,使用新的忙碌檢查機制並記錄詳細拒絕原因。
3. 修正 HomeActivity 進入時強制清空購物車,確保逾時回首頁後機台能正確進入閒置狀態。
4. 更新 FontendActivity 重啟邏輯,改用 isMachineBusy() 提升穩定性。
5. 移除出貨對話框 (DispatchDialog) 的「異常回報」按鈕,簡化使用者介面。
6. 優化購物車 Adapter (Electric/VMC),確保遠端庫存更新時能即時同步 UI 點選狀態。
|
2026-05-12 16:41:52 +08:00 |
|
sky121113
|
ccab0905c6
|
[REFACTOR] 統一重啟邏輯安全防護與 MQTT 交易結案規格
1. 統一 MQTT 交易結案規格:移除 TransactionFinalizePayload 與 Builder 中的 remote_command_id 欄位,強制使用 code_id。
2. 強化定時重啟安全性:將 HomeActivity 與 FontendActivity 的重啟邏輯統一為「閒置 90 秒 + 無開啟對話框」才執行硬重啟。
3. 統一 12:00 重啟行為:將中午 12 點的軟重啟改為受保護的硬重啟,確保資源清理。
4. 加固遠端指令安全性:MqttService 收到 reboot 或 unlock 指令時,若偵測到有人操作(閒置 < 60 秒或對話框開啟)則回傳失敗 ACK,不執行重啟。
|
2026-05-12 14:57:26 +08:00 |
|
sky121113
|
98cb59c431
|
[FIX] 修復遠端出貨流程與 MQTT 回傳機制
1. 修復 SchedulerAbstract.java 的 shutdown() 方法在多執行緒環境下因 scheduler 被設為 null 而導致的 NullPointerException。
2. 強化 ProductDispenseManager.java 的輪詢機制,在重新輪詢的 lambda 中加入 try-catch 安全網,確保即使排程異常也能觸發 onFailure 回調發送 ACK。
3. 優化 MqttService.java 對 dispense 指令的處理,增加對成功/失敗回調的日誌記錄與 Command ACK 發送。
4. 更新 TransactionFinalizeBuilder.java 與相關 Payload 結構,確保 code_id 以字串形式正確上報,並加入 remote_command_id 欄位以利後台對帳。
5. 修正 DevXinYuanController.java 對 VMC_04_BUY_STATUS 的處理,確保不論成功或處理中狀態皆能透過 MQTT 診斷 Topic 上報。
6. 修正 DevController.java 中 getReadBuffer 邏輯,避免在重新啟動排程時出現潛在競爭。
|
2026-05-12 13:24:33 +08:00 |
|
sky121113
|
f5619e754e
|
[FIX] 攔截硬體 Enter 鍵防止誤觸並修正遠端出貨交易紀錄
1. 在 FontendActivity 中攔截購物畫面非預期的 Enter 鍵事件,防止讀卡機誤觸員工卡對話框。
2. 關閉 VMC 與 Electric 商品列表圖片的 focusable 屬性,杜絕硬體 Enter 鍵觸發點擊事件。
3. 修正 MqttService 中的遠端出貨邏輯,改用 TransactionFinalizeBuilder 走完整交易結案流程。
4. 確保遠端出貨時正確填充 BuyList 與 ReportFlowInfoData,使後台能產生完整的訂單紀錄。
5. 在 NFC 支付對話框取消時,確保呼叫 nfcPayController.shutdown() 釋放硬體資源。
|
2026-05-11 18:07:12 +08:00 |
|
sky121113
|
e5feac1608
|
[FEAT] 整合 MQTT 交易結案邏輯與優化 NFC 生命週期管理
1. 在 MqttService 中實作遠端出貨指令的結案回報 (Transaction Finalize),確保庫存同步。
2. 優化 TransactionFinalizeBuilder,統一使用 FlowIdGenerator 生成 flow_id 與 order_no,確保端到端一致性。
3. 更新 TransactionFinalizePayload 結構,新增 remote_command_id 欄位以支援遠端指令追蹤。
4. 實作 NFC 讀卡生命週期 gated 機制,在 CheckoutNfcCardDialog 等對話框關閉時正確釋放硬體資源。
5. 修復 DevXinYuan 與 Rs232Dev 在異常通訊時的穩定性問題。
|
2026-05-11 17:16:18 +08:00 |
|
sky121113
|
5579d937e3
|
[FIX] 優化 MQTT 連線生命週期與重啟邏輯
1. 新增 gracefulDisconnect 模式:重啟前主動發布 'restarting' 狀態並正常斷線,抑制 LWT 離線警告。
2. 消除冗餘重啟循環:修改 HomeActivity 與 RestartActivity 協作邏輯,進入購物頁面僅釋放硬體而不殺掉進程,避免多次連線恢復。
3. 遠端指令校準:確保遠端重啟指令後 App 回到 HomeActivity 初始畫面。
4. 解決硬體資源衝突:保留 RestartActivity 的串口釋放流程,修復 App 跳轉卡死問題。
|
2026-05-11 14:33:22 +08:00 |
|
sky121113
|
7a990ffc12
|
[FEAT] 實作遠端找零與遠端出貨功能
1. 新增 CashPayoutManager.java:封裝 MDB 退幣/退鈔硬體控制邏輯與金額拆解算法。
2. 新增 ProductDispenseManager.java:封裝背景出貨流程,包含貨道檢查、出貨執行及狀態輪詢,並實作成功後自動更新本地 SQLite 庫存與 MyApp 狀態。
3. 修改 MqttService.java:接入 'change' 與 'dispense' MQTT 指令,解析 payload 並調用對應管理器,執行完畢後回傳 ACK 狀態至雲端。
|
2026-05-11 09:16:20 +08:00 |
|
sky121113
|
df8dae9a56
|
[FEAT]:串接刷卡機重啟與遠端結帳 MQTT 指令
1. 在 MqttService 中新增 nfc_reset 指令,對應原本的刷卡機重置邏輯。
2. 在 MqttService 中新增 nfc_checkout 指令,對應原本的刷卡機結帳邏輯。
3. 確保指令執行後會回傳 ACK 狀態至後台。
|
2026-05-07 17:35:25 +08:00 |
|
sky121113
|
18943e8a0f
|
[FEAT]:新增遠端維護鎖定模式與隱藏後門機制
1. 實作遠端維護鎖定功能,支援 MQTT lock 與 unlock 指令。
2. 新增 MaintenanceActivity 頁面,顯示「機器維護中」背景圖並封鎖所有操作。
3. 在維護頁面實作隱藏後門機制(長按畫面中央 5 秒觸發管理員登入視窗)。
4. 更新 SettingsDao 使用 SQLite 持久化機台鎖定狀態,確保重啟後依然生效。
5. 更新 HomeActivity 入口邏輯,在開機啟動時優先檢查鎖定狀態。
6. 修正維護頁面資源路徑,並清理干擾編譯的 NTFS Zone Identifier 檔案。
|
2026-05-07 17:29:01 +08:00 |
|
sky121113
|
d722b3273b
|
[REFACTOR] 優化 Android MQTT 通訊架構與商品同步語義
1. 實作 MqttService 與 MqttManager 以優化 MQTT 生命週期管理與自動重連機制。
2. 新增 MQTT Payload 結構類別 (Command, Heartbeat, Ack),規範化 IoT 通訊格式。
3. 調整「商品同步」語義與 UI 流程,更名為「下載商品資料」並強化同步完成提示。
4. 修正 StarCloudAPI 同步邏輯,確保空貨道資訊正確上傳至後台。
5. 統一多語系字串(繁中/英文/日文),提升操作直覺性。
|
2026-05-07 15:22:28 +08:00 |
|
sky121113
|
a73c618360
|
[FIX] 修復 Star-Cloud 管理員登入流程與 ApiKey 持久化機制
1. 修正 B000 登入 API 路徑並補上機台 Authorization Token 驗證,解決 401 授權失敗問題。
2. 遷移 login 實作至 HttpURLConnection 直連模式,確保網路連線錯誤能正確反饋至 UI。
3. 實作 persistCurrentSettings 統一持久化方法,確保 Token 變更後立即同步至 SQLite。
4. 優化 MyApp 初始化邏輯,修正 App 重啟後 ApiKey 無法從資料庫正確還原的問題。
5. 禁用 HomeActivity 與 FontendActivity 中的舊版 B010/B022 背景任務,避免新舊系統衝突。
6. 於 .agents/rules/ 新增 Star-Cloud API 開發規範文件,防止未來代碼回退。
7. 移除偵錯用的冗餘 Toast 訊息,優化使用者體驗。
|
2026-05-06 17:53:37 +08:00 |
|
sky121113
|
4b2dc746f6
|
refactor: move project files to root and cleanup structure
|
2026-05-06 11:13:45 +08:00 |
|
sky121113
|
a4ed26ada8
|
chore: initial commit from unzipped app source
|
2026-05-06 11:11:44 +08:00 |
|