Repository navigation
Muslim v1.25.38
Muslim v1.25.38
Built from the validated v1.25.38 tag. The Android app version is derived from this tag.
This release advances Quran reading and recitation, adds a configurable Google Cast sender path, improves prayer and reminder controls, and strengthens localization and release verification.
Quran Reading and Recitation
- Corrected book-style page navigation across surah boundaries and mirrored page-turn gestures for right-to-left and left-to-right reading.
- Improved reciter discovery and search, and added controls for following the recited ayah in the tafsir panel.
- Preserved the active recitation position and queue while coordinating local playback with remote Cast playback.
- Added a token-protected local media bridge for downloaded recitations during a Cast session; audio remains on the local network.
- Added a versioned Quran display protocol for ayah text, translation, tafsir, reciter details, and prayer information on a custom receiver.
Prayer, Adhan, and Reminders
- Set the default adhkar quiet period to 10:00 p.m.–6:00 a.m.
- Replaced the long Adhan sound list with a compact selection dialog and enabled the shared Adhan volume control by default.
- Suppressed Muslim alerts and Adhan playback while Android reports an active call or communication session, without changing call audio routing or volume.
Localization and Quality
- Expanded Quran interface translations and added automated checks for missing strings, untranslated values, malformed XML, and Android format placeholders.
- Added a complete English resource catalog for the Scholar Library and verified its key and formatting coverage against the Arabic source.
- Added deterministic reuse for exact matching interface strings when a locale has one unambiguous existing translation. Existing non-English translations remain untouched; copied English fallback values are replaced only with a matching translation already present in that locale.
- Added localization guidance that separates interface text from Quran translations, tafsir, and hadith editions, with source and review requirements for religious content.
- Expanded automated verification for Quran navigation, Cast payloads, local media ranges, and emulator screenshots.
Google Cast Setup
- Cast receiver display requires a real Custom Web Receiver ID from Google Cast Console and HTTPS hosting. Configure
CAST_RECEIVER_APP_IDas documented inreceiver/README.md. - Online recitations are loaded directly by the Cast device. Downloaded recitations are served from the phone through a temporary, tokenized local URL.
CI and Release Delivery
- Consolidated Android verification, emulator coverage, APK builds, signing checks, and tag publication into the single
.github/workflows/ci.ymlworkflow. - Pull request,
main, and manual CI runs build signed phone and Wear OS APKs and retain only those APK files as short-lived workflow artifacts. They do not create or update a public release. - Release tags must use
vMAJOR.MINOR.PATCH, point to a commit already merged intomain, and pass localization-diff, build, unit, lint, Detekt, content, and emulator gates before production APKs are built. - The APK version is derived from the release tag. Production APK signatures are verified, and the release is published only after the remote asset list and uploaded file sizes match the two staged APKs.
- GitHub Releases contain only
Muslim-vX.Y.Z.apkandMuslim-Wear-vX.Y.Z.apk; App Bundles, manifests, checksums, and build metadata are not attached. - Replaced the repository-wide localization failure (123,586 historical findings on the existing 188 locale folders) with a strict change gate for edited strings: malformed XML, duplicate keys, missing/empty changed translations, copied source text, Arabic fallback copies, mixed English, and mismatched placeholders block CI. English or Arabic source edits also require the affected existing locale entries to be refreshed. The full localization audit remains available with
python scripts/localize.py --checkfor backlog reporting.