Skip to content

Releases: windowmmk/ShiftAlarm

ShiftAlarm v3.6.3 - 極致隱私純離線排班鬧鐘

Choose a tag to compare

@github-actions github-actions released this 22 Oct 12:00

⏰ 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 - 極致隱私純離線排班鬧鐘

Choose a tag to compare

@github-actions github-actions released this 22 Oct 11:33

⏰ 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 - 極致隱私純離線排班鬧鐘

Choose a tag to compare

@github-actions github-actions released this 22 Oct 10:45

⏰ 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 - 極致隱私純離線排班鬧鐘

Choose a tag to compare

@github-actions github-actions released this 21 Oct 09:54

⏰ 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 - 極致隱私純離線排班鬧鐘

Choose a tag to compare

@github-actions github-actions released this 21 Oct 09:07

⏰ 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 - 極致隱私純離線排班鬧鐘

Choose a tag to compare

@github-actions github-actions released this 19 Oct 08:14

⏰ ShiftAlarm v3.4.5 版本發布

專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。

✨ 本次版本更新亮點

  • 🔑 永久固定 Release 簽名金鑰:建立項目永久簽名指紋,往後所有版本支援無縫直接覆蓋安裝升級,永不丟失數據。
  • 🔔 原生全屏鬧鐘瑞士幾何美學重構:極簡雙耳時鐘矢量圖標、柔和呼吸光圈環、精密日期抬頭與自適應對稱膠囊按鈕。
  • 💬 推播提醒文案人性化:去除「延後360分鐘」等技術位移用語,收工打卡與開工提醒一目了然。
  • 🛡️ 儲存與導入強固化:全面修復配置導入與 Base58 口令還原,完善單元測試覆蓋。

Full Changelog: v3.4.4...v3.4.5

ShiftAlarm v3.4.3 - 極致隱私純離線排班鬧鐘

Choose a tag to compare

@github-actions github-actions released this 19 Oct 07:54

⏰ ShiftAlarm v3.4.3 版本發布

專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。

✨ 本次版本更新亮點

  • 🔑 永久固定 Release 簽名金鑰:建立項目永久簽名指紋,往後所有版本支援無縫直接覆蓋安裝升級,永不丟失數據。
  • 🔔 原生全屏鬧鐘瑞士幾何美學重構:極簡雙耳時鐘矢量圖標、柔和呼吸光圈環、精密日期抬頭與自適應對稱膠囊按鈕。
  • 💬 推播提醒文案人性化:去除「延後360分鐘」等技術位移用語,收工打卡與開工提醒一目了然。
  • 🛡️ 儲存與導入強固化:全面修復配置導入與 Base58 口令還原,完善單元測試覆蓋。

Full Changelog: v3.4.2...v3.4.3

ShiftAlarm v3.4.2 - 極致隱私純離線排班鬧鐘

Choose a tag to compare

@github-actions github-actions released this 19 Oct 07:45

⏰ ShiftAlarm v3.4.2 版本發布

專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。

✨ 本次版本更新亮點

  • 🔑 永久固定 Release 簽名金鑰:建立項目永久簽名指紋,往後所有版本支援無縫直接覆蓋安裝升級,永不丟失數據。
  • 🔔 原生全屏鬧鐘瑞士幾何美學重構:極簡雙耳時鐘矢量圖標、柔和呼吸光圈環、精密日期抬頭與自適應對稱膠囊按鈕。
  • 💬 推播提醒文案人性化:去除「延後360分鐘」等技術位移用語,收工打卡與開工提醒一目了然。
  • 🛡️ 儲存與導入強固化:全面修復配置導入與 Base58 口令還原,完善單元測試覆蓋。

Full Changelog: v3.4.1...v3.4.2

ShiftAlarm v3.4.1 - 極致隱私純離線排班鬧鐘

Choose a tag to compare

@github-actions github-actions released this 19 Oct 07:36

⏰ ShiftAlarm v3.4.1 版本發布

專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。

✨ 本次版本更新亮點

  • 🔑 永久固定 Release 簽名金鑰:建立項目永久簽名指紋,往後所有版本支援無縫直接覆蓋安裝升級,永不丟失數據。
  • 🔔 原生全屏鬧鐘瑞士幾何美學重構:極簡雙耳時鐘矢量圖標、柔和呼吸光圈環、精密日期抬頭與自適應對稱膠囊按鈕。
  • 💬 推播提醒文案人性化:去除「延後360分鐘」等技術位移用語,收工打卡與開工提醒一目了然。
  • 🛡️ 儲存與導入強固化:全面修復配置導入與 Base58 口令還原,完善單元測試覆蓋。

Full Changelog: v3.4.0...v3.4.1

ShiftAlarm v3.4.0 - 極致隱私純離線排班鬧鐘

Choose a tag to compare

@github-actions github-actions released this 19 Oct 07:29

⏰ ShiftAlarm v3.4.0 版本發布

專為輪班與排班人士量身打造的極致隱私、純離線、全功能排班日曆與精確鬧鐘應用程式。

✨ 本次版本更新亮點

  • 🔑 永久固定 Release 簽名金鑰:建立項目永久簽名指紋,往後所有版本支援無縫直接覆蓋安裝升級,永不丟失數據。
  • 🔔 原生全屏鬧鐘瑞士幾何美學重構:極簡雙耳時鐘矢量圖標、柔和呼吸光圈環、精密日期抬頭與自適應對稱膠囊按鈕。
  • 💬 推播提醒文案人性化:去除「延後360分鐘」等技術位移用語,收工打卡與開工提醒一目了然。
  • 🛡️ 儲存與導入強固化:全面修復配置導入與 Base58 口令還原,完善單元測試覆蓋。

Full Changelog: v3.3.21...v3.4.0