Repository navigation
Releases: windowmmk/ShiftAlarm
Release list
ShiftAlarm v3.6.3 - 極致隱私純離線排班鬧鐘
⏰ ShiftAlarm v3.6.3 版本發布
專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。
✨ 本次版本更新亮點
🎨 天色帶與日曆「成套」(一體化)
-
修好闊屏錯位:天色帶同日曆區原本用相反嘅嵌套順序計闊度(一邊「先縮再夾」、一邊「先夾再縮」),
算式喺闊度 > 480 時一定分叉 —— 實測 900px 下天色帶 480、日曆 464,每邊錯開 8px。
手機 ≤480 兩式結果相同所以完全睇唔出,只有 Web PWA 開喺桌面瀏覽器會中。依家兩邊逐層對齊。 -
日曆整區包成一張卡:以前日曆係一堆散格直接浮喺頁面底色上,而天色帶係一張有圓角嘅卡,
所以上下睇落係兩件嘢。依家共用同一個底色、同一條描邊、同一個圓角、同一條內縮,
中間留 4px 呼吸位,睇得出係一套。 -
格線更清楚:日曆卡底色改用比頁面深一檔嘅霧藍灰,空白格疊上去嘅通道差由約 15/255 升到約 23/255。
-
天色帶唔再「未載入時一片空白」:着色器未就緒嗰幾百毫秒,以前底色同頁面同色(睇落係條空白),
依家係一條有料嘅帶;靜默失敗退回 2D 版時邊緣亦只會透出協調色,唔會有一圈死白。 -
🧪 防線加厚:新增
test/band_card_alignment_test.dart(8 項),
用真 widget 喺 320/360/412/900 四個寬度量兩張卡嘅左右邊;
闊屏嗰條用具體數字 464 鎖死(淨係「兩者相等」唔夠 —— 兩邊一齊錯都會通過),
並用對比度斷言擋住「底色改淺/改純白令成個月曆變白板」。
測試 491 → 499 全綠,flutter analyze維持 28 項零新增。
Full Changelog: v3.6.2...v3.6.3
ShiftAlarm v3.6.2 - 極致隱私純離線排班鬧鐘
⏰ ShiftAlarm v3.6.2 版本發布
專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。
✨ 本次版本更新亮點
🖥️ 版面:窄屏 + 系統大字體不再出黃黑間條(9 處)
- 頂部標題列:實測原先 320/360/390/412 四個寬度全部爆邊(依次溢 108/68/38/16px),因為標題係固定寬度 Row,AppBar 只畀到「總寬 − 按鈕 − 間距」嘅剩餘寬度。改為
Flexible+ 自動縮字 + 圖示化「導入」鍵(保住 48dp 觸控)。 - 日曆表頭:系統字體 1.3x 起會撐爆格,改為每行
Expanded平分,五檔字體下總高恆定。 - 班次編輯頁「月曆格即時預覽」:320px @1.3x 起直向溢出 93px。鎖定預覽格字級後,1.0/1.3/2.0x 三檔渲染完全一致。
- 另有「關於」對話框內容可滾動、權限自檢頁標題列、排班操作列、導入/二維碼對話框按鈕行共 6 處一併修好。
⚡ 啟動不再白屏
- 原先喺
runApp之前await鬧鐘對帳(幾百次 MethodChannel 來回),畫面全白等到對帳完先出。改為首幀之後才對帳,App 即刻見到畫面。
🛡️ 資料唔會再無端端蒸發
- 排班 JSON 被截斷、或者某一天嘅欄位型別錯咗:舊版會成份清空。依家逐條獨立容錯——壞嗰條略過,好嘅全部照載,並且備份原始字串,唔會覆寫用戶資料。
- 某個班次嘅時間欄係數字等型別問題,一樣只會略過嗰一個班次,唔再拖死整份配置。
- 口令碼由 v2 升 v3 帶
defId;舊碼仍然導得入,靠班次 code 反推原 id 搬排班,唔會對唔上。
📊 分享與統計的邊界修正
- 分享碼長度截斷改為 UTF-8 邊界安全:100 個 emoji 都唔會再切落半個字元中間。
- 兩個班次嘅 code 都係空、但時間唔同時,導入後仍然對得返正確班次。
- 統計加入日期守衛:
2026-02-30、2026-13-01呢類唔存在嘅日期,唔會再被當成 3 月 2 日/2027 年 1 月計入。 - CSV 導入改用引號狀態機:引號內嘅半形/全形逗號唔再被切開,
""正確還原成一個雙引號。
🔔 Android 鬧鐘對帳(幽靈鬧鐘清理)
-
新增
AlarmIdRegistry:開機與啟動時三通道對帳,清走「App 已經冇排、系統仲留低」嘅幽靈鬧鐘。 -
補上
USE_EXACT_ALARM權限:Android 14+ 新安裝唔再預授精確鬧鐘,舊版會令真鬧鐘完全唔響而 App 內零提示。(setAlarmClock其實冇豁免,之前低估咗嚴重性。) -
排程失敗時先入 keep 再排:Android 12/12L 用戶撤銷權限嗰陣,唔會令對帳永久失效、把舊排程清走。
-
時間解析失敗唔再 cancel 舊排程;已 dismiss 過嘅預告唔會再復活。
-
🧪 防線加厚:測試由 351 增至 491 項全綠(新增 140 項:版面全掃描 84 組「7 個介面 × 4 個寬度 × 3 個字體」、資料韌性、統計日期守衛、CSV 引號),
flutter analyze維持 28 項零新增。
Full Changelog: v3.6.1...v3.6.2
ShiftAlarm v3.6.1 - 極致隱私純離線排班鬧鐘
⏰ ShiftAlarm v3.6.1 版本發布
專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。
✨ 本次版本更新亮點
- ⏳ 響前 1 小時預告改為「狀態欄倒計時」:唔再係一則靜態推送,而係一條常駐、無聲、實時倒數到響鬧時刻嘅狀態欄通知(
setChronometerCountDown)。由 1 小時開始一直數到 0,唔會彈 heads-up 打擾你。 - 🔕 預告只限真鬧鐘:開工/收工打卡呢類「只通知」項目唔再產生預告,狀態欄唔會再無端端多一條倒數。
- ⏱️ 已進入預告窗口都照數:就算你喺響前 30 分鐘先開 App、或者臨時排咗一個 30 分鐘後嘅更,倒計時都會即刻掛上去,唔會漏。
- 📏 底部排班詳情「用盡」高度:修正用死 72px 預留導航欄嘅錯誤——手勢導航實高 88.8、三鍵導航 112.8,舊版會令詳情卡被導航欄蓋住 10–40px,鍵盤彈起時又反過來空出 72–78px 空白。改用
MediaQuery.padding.bottom實測值後空白歸零。 - ⌨️ 打字時天色欄自動收成 0:新增/編輯備註、場名嗰陣,頂部海洋帶即刻讓位,日曆格高由 19px 回到 40px,唔會再有「打字畫面被切一半」嘅感覺。
- 🧪 防線加厚:測試由 187 增至 330 項全綠(新增 19 項預告單元測試,原本零覆蓋;30 項佈局實測斷言逐場景驗證底部空白 ≤7px、面板零溢出;另有 76 項獨立 QA 驗證),
flutter analyze維持 28 項零新增。
Full Changelog: v3.6.0...v3.6.1
ShiftAlarm v3.6.0 - 極致隱私純離線排班鬧鐘
⏰ ShiftAlarm v3.6.0 版本發布
專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。
✨ 本次版本更新亮點
- 📐 日曆頁改為固定三區:頂部海洋線/中間日曆/底部排班詳情,位置與高度一次算定(
CalendarLayout),取消所有彈出彈入動畫——點日期唔再彈板、唔使下划收起,排班詳情常駐喺底部。 - 🎚️ 空間讓位有優先級:屏幕唔夠高時,先縮海洋帶(96→56)、再縮底部區(158→142),最後先縮日曆格,確保班次永遠睇得清楚。
- 🔁 排班編輯原地切換:㩒「排班」喺底部區原地換成編輯面板,高度完全不變;面板高度唔再寫死 126,改由底部區決定,三鍵導航機唔會再被裁掉完成掣。
- 🧪 佈局有永久防線:新增
CalendarLayout純函數 + 18 項單元測試(0→1400px 逐 1px 掃,保證三區總高永遠等於可用高度)與 3 項真 widget 冒煙測試(360×800/360×640 實泵,捉 RenderFlex 溢出)。
Full Changelog: v3.5.0...v3.6.0
ShiftAlarm v3.5.0 - 極致隱私純離線排班鬧鐘
⏰ ShiftAlarm v3.5.0 版本發布
專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。
✨ 本次版本更新亮點
- 🌊 海平線帶:海洋由覆蓋整個畫面收窄為螢幕上緣 96px 的帶狀點綴,帶高不足 48px 時自動隱藏。舊版的海被月曆格壓住、只從格子縫隙漏出,體感像沒做;v3.5 讓海依然在,但不再與月曆爭位。
- 🎨 跨端共用著色器:Android 與 Web 統一使用
shaders/ocean.frag,真光影完整保留——9 層傅立葉波高、次表面散射、太陽碎鑽、星夜藍眼淚——兩端視覺一致。 - 🔔 鬧鐘響前 1 小時頂欄預告:以
setExactAndAllowWhileIdle精確排程,刻意不用setAlarmClock——後者會令系統時鐘 App 的「下一個鬧鐘」顯示成預告時間,污染系統指示器。響鬧當下自動撤下預告,重開機由BootReceiver自動重建。 - 📊 總工時按實際班次長度計算:支援跨午夜班次,顯示「X 小時 Y 分」;舊版硬編碼每更 6 小時。
- 🛡️ 永久固定 Release 簽名金鑰:建立項目永久簽名指紋,往後所有版本支援無縫直接覆蓋安裝升級,永不丟失數據。
Full Changelog: v3.4.5...v3.5.0
ShiftAlarm v3.4.5 - 極致隱私純離線排班鬧鐘
⏰ ShiftAlarm v3.4.5 版本發布
專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。
✨ 本次版本更新亮點
- 🔑 永久固定 Release 簽名金鑰:建立項目永久簽名指紋,往後所有版本支援無縫直接覆蓋安裝升級,永不丟失數據。
- 🔔 原生全屏鬧鐘瑞士幾何美學重構:極簡雙耳時鐘矢量圖標、柔和呼吸光圈環、精密日期抬頭與自適應對稱膠囊按鈕。
- 💬 推播提醒文案人性化:去除「延後360分鐘」等技術位移用語,收工打卡與開工提醒一目了然。
- 🛡️ 儲存與導入強固化:全面修復配置導入與 Base58 口令還原,完善單元測試覆蓋。
Full Changelog: v3.4.4...v3.4.5
ShiftAlarm v3.4.3 - 極致隱私純離線排班鬧鐘
⏰ ShiftAlarm v3.4.3 版本發布
專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。
✨ 本次版本更新亮點
- 🔑 永久固定 Release 簽名金鑰:建立項目永久簽名指紋,往後所有版本支援無縫直接覆蓋安裝升級,永不丟失數據。
- 🔔 原生全屏鬧鐘瑞士幾何美學重構:極簡雙耳時鐘矢量圖標、柔和呼吸光圈環、精密日期抬頭與自適應對稱膠囊按鈕。
- 💬 推播提醒文案人性化:去除「延後360分鐘」等技術位移用語,收工打卡與開工提醒一目了然。
- 🛡️ 儲存與導入強固化:全面修復配置導入與 Base58 口令還原,完善單元測試覆蓋。
Full Changelog: v3.4.2...v3.4.3
ShiftAlarm v3.4.2 - 極致隱私純離線排班鬧鐘
⏰ ShiftAlarm v3.4.2 版本發布
專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。
✨ 本次版本更新亮點
- 🔑 永久固定 Release 簽名金鑰:建立項目永久簽名指紋,往後所有版本支援無縫直接覆蓋安裝升級,永不丟失數據。
- 🔔 原生全屏鬧鐘瑞士幾何美學重構:極簡雙耳時鐘矢量圖標、柔和呼吸光圈環、精密日期抬頭與自適應對稱膠囊按鈕。
- 💬 推播提醒文案人性化:去除「延後360分鐘」等技術位移用語,收工打卡與開工提醒一目了然。
- 🛡️ 儲存與導入強固化:全面修復配置導入與 Base58 口令還原,完善單元測試覆蓋。
Full Changelog: v3.4.1...v3.4.2
ShiftAlarm v3.4.1 - 極致隱私純離線排班鬧鐘
⏰ ShiftAlarm v3.4.1 版本發布
專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。
✨ 本次版本更新亮點
- 🔑 永久固定 Release 簽名金鑰:建立項目永久簽名指紋,往後所有版本支援無縫直接覆蓋安裝升級,永不丟失數據。
- 🔔 原生全屏鬧鐘瑞士幾何美學重構:極簡雙耳時鐘矢量圖標、柔和呼吸光圈環、精密日期抬頭與自適應對稱膠囊按鈕。
- 💬 推播提醒文案人性化:去除「延後360分鐘」等技術位移用語,收工打卡與開工提醒一目了然。
- 🛡️ 儲存與導入強固化:全面修復配置導入與 Base58 口令還原,完善單元測試覆蓋。
Full Changelog: v3.4.0...v3.4.1
ShiftAlarm v3.4.0 - 極致隱私純離線排班鬧鐘
⏰ ShiftAlarm v3.4.0 版本發布
專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。
✨ 本次版本更新亮點
- 🔑 永久固定 Release 簽名金鑰:建立項目永久簽名指紋,往後所有版本支援無縫直接覆蓋安裝升級,永不丟失數據。
- 🔔 原生全屏鬧鐘瑞士幾何美學重構:極簡雙耳時鐘矢量圖標、柔和呼吸光圈環、精密日期抬頭與自適應對稱膠囊按鈕。
- 💬 推播提醒文案人性化:去除「延後360分鐘」等技術位移用語,收工打卡與開工提醒一目了然。
- 🛡️ 儲存與導入強固化:全面修復配置導入與 Base58 口令還原,完善單元測試覆蓋。
Full Changelog: v3.3.21...v3.4.0