Skip to content

feat: tajweed colours, transliteration, and word-level audio highligh…#750

Open
walebant wants to merge 1 commit intoquran:mainfrom
walebant:main
Open

feat: tajweed colours, transliteration, and word-level audio highligh…#750
walebant wants to merge 1 commit intoquran:mainfrom
walebant:main

Conversation

@walebant
Copy link

…ting

  • Add TajweedColor enum with quran.com colour palette (17 rules)
  • Add WordAnnotation model carrying tajweed colour + transliteration per word
  • Add WordAnnotationService fetching tajweed HTML from Quran.com API and transliteration from the local words SQLite database
  • Add WordTimingService fetching per-word audio segments from QuranCDN API
  • Add WordTimingScheduler that fires highlight callbacks timed to each word
  • Extend ImageDecorations with tajweedColors and transliterations dictionaries
  • Add tajweedOverlay and transliterationOverlay views in ImageDecorationsView
  • Wire WordAnnotationService into ContentImageViewModel/ContentImageBuilder
  • Add playingWord callback to QuranAudioPlayerActions
  • Wire WordTimingScheduler into QuranAudioPlayer to drive word highlighting
  • Add highlightReadingWord to AudioBannerListener / ContentViewModel / QuranInteractor so the audio word highlight flows to the UI
  • Register WordAnnotationService as a new Domain SPM target

…ting

- Add TajweedColor enum with quran.com colour palette (17 rules)
- Add WordAnnotation model carrying tajweed colour + transliteration per word
- Add WordAnnotationService fetching tajweed HTML from Quran.com API and
  transliteration from the local words SQLite database
- Add WordTimingService fetching per-word audio segments from QuranCDN API
- Add WordTimingScheduler that fires highlight callbacks timed to each word
- Extend ImageDecorations with tajweedColors and transliterations dictionaries
- Add tajweedOverlay and transliterationOverlay views in ImageDecorationsView
- Wire WordAnnotationService into ContentImageViewModel/ContentImageBuilder
- Add playingWord callback to QuranAudioPlayerActions
- Wire WordTimingScheduler into QuranAudioPlayer to drive word highlighting
- Add highlightReadingWord to AudioBannerListener / ContentViewModel /
  QuranInteractor so the audio word highlight flows to the UI
- Register WordAnnotationService as a new Domain SPM target

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@mohamede1945
Copy link
Collaborator

Thanks for opening the PR.

It would be helpful to include a summary of the testing performed along with screenshots or screen recordings demonstrating the changes. That makes it much easier to evaluate the impact and completeness of the work.

Re: word-level highlighting
We do not use api.qurancdn.com in our stack, and the data format likely to be incompatible with our current implementation.

Re: tajweed rendering
We also do not use api.quran.com for tajweed. Our rendering pipeline is structured differently, particularly with mobile constraints and offline support in mind.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants