mawaqit / android-tv-app

Prayer times App for Android TV
https://mawaqit.net
Other
34 stars 15 forks source link

feat: Add Quran Listening features with local data storage and audio playback. #1149

Open YassinNouh21 opened 1 month ago

YassinNouh21 commented 1 month ago

📝 Summary

This PR for issue: #1109

Description

This pull request introduces significant enhancements to the Quran recitation features in the application. The main highlights include fetching and storing reciter data locally, enabling users to choose a Surah, and starting the audio playback seamlessly.

Key Features:

  1. Fetching and Storing Reciter Data Locally:

    • Implemented ReciteRemoteDataSource and ReciteLocalDataSource to handle fetching and storing reciter data.
    • The reciter data, including recitation types, is fetched from the remote API and stored locally using Hive.
    • Added ReciteImpl as the repository for managing reciter data operations.
    • Updated QuranNotifier and ReciteNotifier to manage and provide reciter data.
  2. Audio Playback on Surah Selection:

    • Introduced QuranPlayerScreen for Quran recitation playback with a user-friendly interface.
    • Implemented QuranAudioPlayerNotifier and QuranAudioPlayerState to manage audio playback state.
    • Added a SeekBar and player control buttons for better user interaction and control.
  3. UI Enhancements:

    • Updated ReciterSelectionScreen to use the new QuranBackground widget.
    • Improved layout and user interaction for selecting reciters and recitation types.
    • Integrated keyboard navigation for better accessibility.

Checklist: