diff --git a/README.md b/README.md index e7cf29e..c2db146 100644 --- a/README.md +++ b/README.md @@ -19,18 +19,22 @@ 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.3) +## Screen (v0.4) -- Pure #000000 AMOLED background, including the list and prayer rows -- Larger 42px clock, 28px prayer names and 36px times -- Native vertically swipe-scrollable list: 80px rows in a 320×240px viewport -- Top/bottom spacers let the first and last prayers scroll to the center -- Fixed next-prayer countdown; lavender outline/text highlight the next prayer -- Normal system back button exits; no crown support assumed -- 15s refresh; no changes to prayer calculations +- Pure #000000 AMOLED background +- Larger 50px clock; no swipe instruction label +- 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 -Build and automated tests pass; v0.3 scrolling/rendering needs an on-watch check. -`preview-0.3.png` is a static layout mock with illustrative times, not a watch screenshot. +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. ## Project layout @@ -56,6 +60,7 @@ npm run release node tests/prayer.cjs node tests/page.cjs node tests/amoled.cjs +node tests/focus.cjs ``` ## Install diff --git a/preview-0.4.png b/preview-0.4.png new file mode 100644 index 0000000..bbf2a3a Binary files /dev/null and b/preview-0.4.png differ diff --git a/src/manifest.json b/src/manifest.json index 2b1e3a7..1f5409a 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -2,8 +2,8 @@ "package": "com.ilias.salah", "name": "SALAH", "icon": "/common/icon.png", - "versionName": "0.3", - "versionCode": 3, + "versionName": "0.4", + "versionCode": 4, "minAPILevel": 1, "deviceTypeList": [ "watch" diff --git a/src/pages/index/index.ux b/src/pages/index/index.ux index ac22aee..e3e419f 100644 --- a/src/pages/index/index.ux +++ b/src/pages/index/index.ux @@ -6,15 +6,14 @@ {{ nextName }} in {{ countdown }} - +
- {{ row.label }} - {{ row.time }} + {{ row.label }} + {{ row.time }}
- SWIPE TO SCROLL diff --git a/tests/focus.cjs b/tests/focus.cjs new file mode 100644 index 0000000..f59a911 --- /dev/null +++ b/tests/focus.cjs @@ -0,0 +1,40 @@ +const assert = require('node:assert/strict') +const fs = require('node:fs') +const vm = require('node:vm') +const src = fs.readFileSync('src/pages/index/index.ux', 'utf8') +const body = src.match(/