Salah 0.5: defer center resizing until scrolling stops

This commit is contained in:
2026-09-12 13:15:30 +01:00
parent d92609e046
commit 1c20c2927c
5 changed files with 85 additions and 32 deletions
+16 -13
View File
@@ -19,22 +19,24 @@ Morocco (Ministry of Habous), matching AlAdhan `method=21`:
All computation happens **on the watch** — no GPS, no network. Pure solar math
(same Meeus approach as the sundial) lives in `src/common/prayer.js`.
## Screen (v0.4)
## Screen (v0.5)
- Pure #000000 AMOLED background
- Larger 50px clock; no swipe instruction label
- Pure #000000 AMOLED background, large 50px clock, no swipe hint
- Prayer names above their times, in fixed 104px native list rows
- Center magnification: prayer times grow continuously from 30px to 60px as
their row approaches the physical screen center; names grow from 20px to 28px
- Scroll viewport 320×264 at x73/y101, centered at y233; 80px end spacers
- Fixed next-prayer countdown below the list; lavender next-prayer highlight
- Glyph sizes change without changing row heights, avoiding scroll-position drift
- 15s clock refresh preserves scroll focus; calculation logic unchanged
- Normal system back exits; crown support not assumed
- After scrolling stops, the nearest-center prayer gets a 60px time and 28px
label; other rows use 30px times and 20px labels
- No font resizing or row-array replacement during gesture/inertial scrolling
- Duplicate stop notifications do not repaint unchanged focus; periodic refresh
defers while scrolling and resumes normally after hiding/showing the app
- Scroll viewport 320×264 at x73/y101 (center y233); 80px end spacers
- Fixed countdown below the list; lavender next-prayer highlight
- Normal system back exits; calculation logic unchanged
Automated math/page/focus/layout tests and release build pass. The live scroll
magnification still needs an on-watch check. `preview-0.4.png` is a static layout
mock with illustrative times, not a device screenshot.
User reported watch lag in v0.4. A 500-event VM replay measured 500 row-array
replacements in v0.4 versus zero during scrolling in v0.5. This verifies reduced
update work, NOT device frame rate. All automated tests and release build pass;
on-watch smoothness still needs confirmation. `preview-0.4.png` remains an
illustrative static layout mock; the settled appearance is unchanged.
## Project layout
@@ -61,6 +63,7 @@ node tests/prayer.cjs
node tests/page.cjs
node tests/amoled.cjs
node tests/focus.cjs
node tests/scroll-performance.cjs
```
## Install