Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quran MVP #1203

Closed
wants to merge 87 commits into from
Closed

Quran MVP #1203

wants to merge 87 commits into from

Conversation

ibrahim-zehhaf-mawaqit
Copy link
Contributor

No description provided.

…orage, add `QuranRemoteDataSource` to handle remote
# Conflicts:
#	lib/l10n/intl_en.arb
#	lib/main.dart
#	lib/src/const/constants.dart
… following paths `assets/img/quran/` `assets/icon/`
- Added `QuranBackground` widget to provide a consistent background with image and gradient.
1. **Quran Notifier**:
   - Introduced a new method `getSuwarByReciter` in `QuranNotifier` to fetch the list of Surahs filtered by the selected reciter.
   - Enhanced error handling and state management for fetching Surahs based on the selected reciter.

2. **Reciter Selection Screen**:
   - Updated the `ReciterSelectionScreen` to use the new `QuranBackground` widget.
   - Improved the layout and user interaction for selecting reciters and recitation types.
   - Integrated keyboard navigation for better accessibility.

3. **Quran Player**:
   - Added a new `QuranPlayerScreen` to provide a dedicated player interface for Quran recitations.
   - Implemented a `SeekBar` and player controls for managing playback.
   - Enhanced playback state management with `QuranAudioPlayerState` and `QuranAudioPlayerNotifier`.

4. **Data Source and Repository**:
   - Added `ReciteRemoteDataSource` and `ReciteLocalDataSource` for managing reciter data.
   - Introduced `ReciteImpl` as the implementation of `ReciteRepository` for handling reciter-related operations.

5. **Hive Integration**:
   - Registered Hive adapters for `ReciterModel` and `MoshafModel` to support local data storage.
**Changes:**

1. **lib/src/pages/quran/widget/quran_background.dart**
   - Wrapped `Scaffold` in a `SafeArea` widget to ensure content is displayed within the safe area of the screen.
   - Adjusted the structure to consistently use `SafeArea` for both cases when `appBar` is present or not.

2. **lib/src/pages/quran/widget/side_menu.dart**
   - Imported `sizer` package for responsive layout adjustments.
   - Modified `width` to use `Sizer` package's percentage width (`18.w`).
   - Added `BoxConstraints` to set minimum and maximum width for better responsiveness.

3. **lib/src/pages/quran/page/surah_selection_screen.dart**
   - Added `AppBar` within `QuranBackground` with transparent background and responsive font size using `sizer` package.
   - Adjusted padding and grid layout within `QuranBackground` to use `Sizer` for dynamic sizing.
   - Moved the `SideMenu` widget inside the `quranState.when` method for better state management.

4. **lib/src/pages/quran/page/quran_player_screen.dart**
   - Tweaked the `SliderTheme` to remove unnecessary properties and adjusted `thumbShape` size.
   - Adjusted font sizes in `Row` displaying position and duration using `sizer` package.
   - Removed redundant `SizedBox` height adjustments.

5. **lib/src/pages/quran/page/reciter_selection_screen.dart**
   - Adjusted `sizeOfContainerReciter` for better responsive behavior.
   - Introduced navigation buttons for scrolling through the reciter list.
   - Enhanced `_reciterCard` to use `Sizer` for size adjustments.
   - Improved the `_buildReciterListShimmer` and grid layout for better responsiveness.

6. **lib/src/pages/quran/widget/surah_card.dart**
   - Adjusted `borderRadius` for `Container` to a more uniform value.
   - Updated text font size within `SurahCard` to use `sizer` package for responsiven
…orage, add `QuranRemoteDataSource` to handle remote
… following paths `assets/img/quran/` `assets/icon/`
- Added `QuranBackground` widget to provide a consistent background with image and gradient.
1. **Quran Notifier**:
   - Introduced a new method `getSuwarByReciter` in `QuranNotifier` to fetch the list of Surahs filtered by the selected reciter.
   - Enhanced error handling and state management for fetching Surahs based on the selected reciter.

2. **Reciter Selection Screen**:
   - Updated the `ReciterSelectionScreen` to use the new `QuranBackground` widget.
   - Improved the layout and user interaction for selecting reciters and recitation types.
   - Integrated keyboard navigation for better accessibility.

3. **Quran Player**:
   - Added a new `QuranPlayerScreen` to provide a dedicated player interface for Quran recitations.
   - Implemented a `SeekBar` and player controls for managing playback.
   - Enhanced playback state management with `QuranAudioPlayerState` and `QuranAudioPlayerNotifier`.

4. **Data Source and Repository**:
   - Added `ReciteRemoteDataSource` and `ReciteLocalDataSource` for managing reciter data.
   - Introduced `ReciteImpl` as the implementation of `ReciteRepository` for handling reciter-related operations.

5. **Hive Integration**:
   - Registered Hive adapters for `ReciterModel` and `MoshafModel` to support local data storage.
**Changes:**

1. **lib/src/pages/quran/widget/quran_background.dart**
   - Wrapped `Scaffold` in a `SafeArea` widget to ensure content is displayed within the safe area of the screen.
   - Adjusted the structure to consistently use `SafeArea` for both cases when `appBar` is present or not.

2. **lib/src/pages/quran/widget/side_menu.dart**
   - Imported `sizer` package for responsive layout adjustments.
   - Modified `width` to use `Sizer` package's percentage width (`18.w`).
   - Added `BoxConstraints` to set minimum and maximum width for better responsiveness.

3. **lib/src/pages/quran/page/surah_selection_screen.dart**
   - Added `AppBar` within `QuranBackground` with transparent background and responsive font size using `sizer` package.
   - Adjusted padding and grid layout within `QuranBackground` to use `Sizer` for dynamic sizing.
   - Moved the `SideMenu` widget inside the `quranState.when` method for better state management.

4. **lib/src/pages/quran/page/quran_player_screen.dart**
   - Tweaked the `SliderTheme` to remove unnecessary properties and adjusted `thumbShape` size.
   - Adjusted font sizes in `Row` displaying position and duration using `sizer` package.
   - Removed redundant `SizedBox` height adjustments.

5. **lib/src/pages/quran/page/reciter_selection_screen.dart**
   - Adjusted `sizeOfContainerReciter` for better responsive behavior.
   - Introduced navigation buttons for scrolling through the reciter list.
   - Enhanced `_reciterCard` to use `Sizer` for size adjustments.
   - Improved the `_buildReciterListShimmer` and grid layout for better responsiveness.

6. **lib/src/pages/quran/widget/surah_card.dart**
   - Adjusted `borderRadius` for `Container` to a more uniform value.
   - Updated text font size within `SurahCard` to use `sizer` package for responsiven
# Conflicts:
#	lib/l10n/intl_en.arb
#	lib/src/const/constants.dart
#	lib/src/pages/quran/page/quran_player_screen.dart
#	lib/src/pages/quran/page/reciter_selection_screen.dart
#	lib/src/pages/quran/page/surah_selection_screen.dart
#	lib/src/pages/quran/widget/quran_background.dart
#	lib/src/state_management/quran/quran/quran_notifier.dart
#	lib/src/state_management/quran/quran/quran_state.dart
#	lib/src/state_management/quran/recite/recite_state.dart
#	lib/src/widgets/MawaqitDrawer.dart
feat: add reading mode into Quran
@ibrahim-zehhaf-mawaqit ibrahim-zehhaf-mawaqit linked an issue Jul 11, 2024 that may be closed by this pull request
5 tasks
@YassinNouh21 YassinNouh21 deleted the feat/quran/quran_main branch July 13, 2024 10:34
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.

Add quran feature (MVP)
3 participants