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

feat: Download the whole quran suwar and quran single surah #1194

Closed

Commits on Apr 30, 2024

  1. Configuration menu
    Copy the full SHA
    6cd63ad View commit details
    Browse the repository at this point in the history
  2. pubspec: add dart_mappable, json_annotation, `dart_mappable_build…

    …er`, `json_serializable`
    YassinNouh21 committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    2f20bef View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7d49439 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    35754c8 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    55801e7 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    fd86337 View commit details
    Browse the repository at this point in the history

Commits on May 3, 2024

  1. Configuration menu
    Copy the full SHA
    9821e5e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    709d41c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    146e3e3 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a1f4234 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    90a8d42 View commit details
    Browse the repository at this point in the history
  6. feat(data): add QuranLocalDataSource to handle caching and local st…

    …orage, add `QuranRemoteDataSource` to handle remote
    YassinNouh21 committed May 3, 2024
    Configuration menu
    Copy the full SHA
    5f12812 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    845ad0b View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    2deebd5 View commit details
    Browse the repository at this point in the history

Commits on May 4, 2024

  1. Configuration menu
    Copy the full SHA
    17dbb2e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    740c6d2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a7d5cfc View commit details
    Browse the repository at this point in the history

Commits on May 11, 2024

  1. Merge branch 'main' into feat/quran/recite

    # Conflicts:
    #	lib/l10n/intl_en.arb
    #	lib/main.dart
    #	lib/src/const/constants.dart
    YassinNouh21 committed May 11, 2024
    Configuration menu
    Copy the full SHA
    067a50f View commit details
    Browse the repository at this point in the history

Commits on May 14, 2024

  1. Configuration menu
    Copy the full SHA
    7764e35 View commit details
    Browse the repository at this point in the history

Commits on May 16, 2024

  1. Configuration menu
    Copy the full SHA
    4f5d4df View commit details
    Browse the repository at this point in the history
  2. dependency: add shimmer, rxdart, just_audio_background. add the…

    … following paths `assets/img/quran/` `assets/icon/`
    YassinNouh21 committed May 16, 2024
    Configuration menu
    Copy the full SHA
    4268a30 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8031dae View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    578507a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    9a68540 View commit details
    Browse the repository at this point in the history
  6. feat: add QuranBackground widget.

    - Added `QuranBackground` widget to provide a consistent background with image and gradient.
    YassinNouh21 committed May 16, 2024
    Configuration menu
    Copy the full SHA
    51e0c6e View commit details
    Browse the repository at this point in the history
  7. feat: add theme for quranBackground and enhance recitation features

    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.
    YassinNouh21 committed May 16, 2024
    Configuration menu
    Copy the full SHA
    bf1137a View commit details
    Browse the repository at this point in the history
  8. format

    YassinNouh21 committed May 16, 2024
    Configuration menu
    Copy the full SHA
    94af254 View commit details
    Browse the repository at this point in the history

Commits on May 17, 2024

  1. Configuration menu
    Copy the full SHA
    afc2dc9 View commit details
    Browse the repository at this point in the history
  2. feat: enhance UI Responsiveness and Add SafeArea Widget

    **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
    YassinNouh21 committed May 17, 2024
    Configuration menu
    Copy the full SHA
    889804e View commit details
    Browse the repository at this point in the history

Commits on May 19, 2024

  1. format files

    YassinNouh21 committed May 19, 2024
    Configuration menu
    Copy the full SHA
    1b89c2a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8b94976 View commit details
    Browse the repository at this point in the history
  3. feat(quran): add reading screen and mode selection functionality

    - Implement `ReadingScreen` in `reading_screen.dart` with basic navigation and logging.
    - Add `QuranMode` enum and integrate it into `QuranState` for mode management.
    - Create `QuranModeSelectionScreen` with keyboard navigation and mode selection.
    - Modify `MawaqitDrawer` to listen for changes in `QuranMode` and navigate accordingly.
    - Update `QuranNotifier` to handle mode selection and retrieval from shared preferences.
    YassinNouh21 committed May 19, 2024
    Configuration menu
    Copy the full SHA
    a31b49c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    394df04 View commit details
    Browse the repository at this point in the history

Commits on May 24, 2024

  1. Configuration menu
    Copy the full SHA
    c9d82fc View commit details
    Browse the repository at this point in the history
  2. feat: Quran reading mode and update Quran download functionality

    - Refactor reading screen to `QuranReadingScreen` for better clarity.
    - Implement navigation buttons (left/right) to update the current page in the notifier.
    - Ensure state synchronization between `PageController` and `QuranReadingNotifier`.
    - Update `QuranReadingNotifier` to handle state changes correctly for next and previous page transitions.
    - Modify `download_quran_state` and `download_quran_notifier` to include and handle `svgFolderPath`.
    - Remove old `ReadingScreen` and update references to the new `QuranReadingScreen` in the drawer and mode selection screen.
    YassinNouh21 committed May 24, 2024
    Configuration menu
    Copy the full SHA
    51b396b View commit details
    Browse the repository at this point in the history

Commits on May 26, 2024

  1. feat: add Quran reading functionality including data_source, impl

    … and `repository`
    
    - Added `QuranReadingRepository` interface with methods to get and save the last read page.
    - Implemented `QuranReadingLocalDataSource` for local storage using `SharedPreferences`.
    - Created `QuranReadingImpl` to implement the `QuranReadingRepository` using the local data source.
    YassinNouh21 committed May 26, 2024
    Configuration menu
    Copy the full SHA
    b9d0811 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a4e903e View commit details
    Browse the repository at this point in the history
  3. feat: add Quran reading last reading page state management and UI int…

    …eraction
    
    - **State Management**:
      - Added `isInitial` flag to `QuranReadingState` to manage initial loading state.
      - Modified `QuranReadingNotifier` to include methods for saving and retrieving the last read page using the repository.
      - Updated state initialization and SVG loading methods in `QuranReadingNotifier`.
      - Implemented logic to handle page updates and transitions, including saving the current page.
    
    - **UI Updates**:
      - Introduced logging for debugging purposes in `quran_reading_screen.dart`.
      - Added `ref.listen` in `QuranReadingScreen` to handle initial page jump based on the saved state.
      - Added `quranIndex` to manage the current page index.
      - Adjusted the `PageView` to update the current page in the state notifier.
    YassinNouh21 committed May 26, 2024
    Configuration menu
    Copy the full SHA
    c857af8 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2bdd5df View commit details
    Browse the repository at this point in the history
  5. feat: improve Quran reading experience and page navigation

    - Quran Display:
      - Enhanced the Quran reading screen to properly display the Quran after downloading.
      - Added a listener for `downloadQuranNotifierProvider` to invalidate `quranReadingNotifierProvider` upon successful download, ensuring the Quran content is refreshed and displayed correctly.
    
    - Back Button Behavior:
      - Overridden the back button in the `QuranReadingScreen` to navigate back properly, improving user experience.
    
    - Floating Action Button:
      - Adjusted the floating action button to pop the current screen and select the listening mode for the Quran.
    YassinNouh21 committed May 26, 2024
    Configuration menu
    Copy the full SHA
    d85fdc4 View commit details
    Browse the repository at this point in the history
  6. remove tests

    YassinNouh21 committed May 26, 2024
    Configuration menu
    Copy the full SHA
    609b49b View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    944714c View commit details
    Browse the repository at this point in the history
  8. feat: enhance navigation and user experience for Quran modes

    ### Changes:
    
    1. **Quran Mode Selection Screen**:
       - Navigate to `QuranReadingScreen` for reading mode.
       - Navigate to `ReciterSelectionScreen` for listening mode.
    
    2. **Quran State Management**:
       - Updated `toString` method to handle empty lists and avoid `RangeError`.
    
    3. **Quran Background Widget**:
       - Added `isSwitch` parameter to control the floating action button.
       - Enhanced FAB to switch between reading and listening modes.
    
    4. **Mawaqit Drawer**:
       - Directly call `getSelectedMode` and handle navigation based on mode.
       - Removed redundant listener.
    
    5. **Download Quran Popup**:
       - Made dialog barrier dismissible to allow interaction with FAB.
    
    6. **Reciter Selection Screen**:
       - Ensure reciters are fetched on screen initialization.
    
    7. **Quran Reading Screen**:
       - Updated FAB to navigate to `ReciterSelectionScreen`.
    YassinNouh21 committed May 26, 2024
    Configuration menu
    Copy the full SHA
    741a7f7 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    39b490a View commit details
    Browse the repository at this point in the history

Commits on May 28, 2024

  1. Configuration menu
    Copy the full SHA
    4d2ca61 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    70bce35 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    49d08d5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ba33312 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    120d531 View commit details
    Browse the repository at this point in the history

Commits on May 30, 2024

  1. Configuration menu
    Copy the full SHA
    14cb0e8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    901bda9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1294261 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d3cd816 View commit details
    Browse the repository at this point in the history

Commits on May 31, 2024

  1. Configuration menu
    Copy the full SHA
    7f58ba6 View commit details
    Browse the repository at this point in the history
  2. refactor: change the size of the icon and remove the background and a…

    …djust the navigation with quran mode
    YassinNouh21 committed May 31, 2024
    Configuration menu
    Copy the full SHA
    226a01d View commit details
    Browse the repository at this point in the history
  3. feat: add Page string into the intl_en, add display the index of th…

    …e page in reading quran screen
    YassinNouh21 committed May 31, 2024
    Configuration menu
    Copy the full SHA
    3b8be0c View commit details
    Browse the repository at this point in the history

Commits on Jun 1, 2024

  1. Configuration menu
    Copy the full SHA
    5d11edd View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2024

  1. Configuration menu
    Copy the full SHA
    55ba6ba View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e99f0b5 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2024

  1. feat: Optimize ReciteLocalDataSource for efficient data retrieval and…

    … caching
    
    - Replace Box<List<ReciterModel>> with Box<ReciterModel> for better data management.
    - Implement efficient data saving and retrieval methods for `ReciterModel`.
    - Remove redundant `saveRecitersBySurah` and `getReciterBySurah` methods.
    - Update recite_impl to align with the new data source methods.
    - Add support for managing favorite reciters and surahs in separate Hive boxes.
    YassinNouh21 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    410900c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0a2517e View commit details
    Browse the repository at this point in the history
  3. feat: add exceptions

    YassinNouh21 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    dc5d549 View commit details
    Browse the repository at this point in the history
  4. feat: Implement Quran favorite feature QuranFavoriteRepository, `Qu…

    …ranFavoriteImpl`
    
    - Add QuranFavoriteRepository interface for managing favorite reciters and surahs
    - Implement QuranFavoriteImpl repository using QuranFavoriteLocalDataSource and ReciteLocalDataSource
    - Create QuranFavoriteLocalDataSource for persisting favorite data using Hive
    YassinNouh21 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    be14682 View commit details
    Browse the repository at this point in the history
  5. feat: add QuranFavoriteNotifier and QuranFavoriteState for managing f…

    …avorite state
    
    Provide methods to save and retrieve favorite reciters and surahs
    YassinNouh21 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    550f141 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a255781 View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2024

  1. Configuration menu
    Copy the full SHA
    60cd1e2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    de8b1a3 View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2024

  1. feat: Enhance reciter saving into favorites

    - Updated `SurahCard` widget to support favorite functionality:
      - Converted `SurahCard` to `ConsumerStatefulWidget`.
      - Added favorite button with `onFavoriteTap` callback.
      - Introduced `_isFocused` state to manage favorite state UI.
      - Improved visual feedback for favorite state.
    
    - Enhanced `SurahSelectionScreen`:
      - Added initialization to fetch favorite surahs on screen load.
      - Integrated `quranFavoriteNotifierProvider` to manage favorite surahs.
      - Added `reciterId` and `riwayatId` parameters to `SurahSelectionScreen`.
    
    - Modified `ReciterSelectionScreen`:
      - Added `reciterId` and `riwayatId` parameters to navigate to `SurahSelectionScreen`.
      - Included `onSelected` callback in `ReciterListView` for selection feedback.
    
    - Updated repository and data source implementations:
      - Modified `QuranFavoriteRepository` and `QuranFavoriteLocalDataSource` to use `riwayatId` instead of `riwayat`.
      - Enhanced methods to support the new favorite functionality.
      - Included logs for better debugging.
    
    - Adjusted `QuranFavoriteNotifier`:
      - Added methods to save and fetch favorite surahs.
      - Included state management for favorite operations.
    
    - Enhanced `ReciterListView`:
      - Added `onSelected` callback to manage reciter selection.
    
    - Updated Hive data model:
      - Modified `QuranFavoriteLocalDataSource` to use `QuranReciterFavoriteModel` for managing favorite surahs.
    YassinNouh21 committed Jun 9, 2024
    Configuration menu
    Copy the full SHA
    063387c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    23079d9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f7fed5f View commit details
    Browse the repository at this point in the history
  4. feat: Remove shade from Surah Card, add feature to remove bookmarks, …

    …and prioritize favorite Surahs.
    
    - Removed the shade effect from Surah cards when focused.
    - Implemented a feature to remove bookmarks from Surahs.
    - Added functionality to prioritize favorite Surahs by listing them at the top of the Surah selection screen.
    YassinNouh21 committed Jun 9, 2024
    Configuration menu
    Copy the full SHA
    4a5ece7 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    981cbfb View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2024

  1. feat: Add local and remote audio file handling

    - Added `audio_file_model.dart` to define the AudioFileModel with JSON serialization support using Dart Mappable.
    - Updated `reciter_local_data_source.dart` to handle saving and retrieving audio files locally:
      - Added `saveAudioFile` method to save audio files to local storage.
      - Added `getAudioFilePath` method to retrieve file paths of locally stored audio files.
      - Imported necessary packages (`path`, `path_provider`, `dart:io`).
    - Updated `reciter_remote_data_source.dart` to handle downloading audio files from remote sources:
      - Added `downloadAudioFile` method to download audio files using Dio.
    - Added new exceptions in `recite_exception.dart` to handle audio file-related errors:
      - `FetchAudioFileFailedException`, `SaveAudioFileException`, `FetchAudioFileException`, and `AudioFileNotFoundInCacheException`.
    YassinNouh21 committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    5cd6285 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a1a8cd1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    54fc8bb View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2024

  1. feat: add Quran audio player functionality and offline support

    - Add local audio file playback capability
    - Implement surah download functionality
    - Add checks for downloaded surah status
    - Improve audio player state management
    - Enhance connectivity handling for playback
    - Refactor audio file downloading to use isolates
    - Update UI to reflect download status and playback options
    - Fix various bugs and improve error handling
    YassinNouh21 committed Jun 29, 2024
    Configuration menu
    Copy the full SHA
    31ec9f5 View commit details
    Browse the repository at this point in the history
  2. feat: improve Quran player navigation and audio handling

    - Implement debounce mechanism to prevent multiple page pushes when spamming in UI
    - Enhance offline mode handling in QuranAudioPlayer
    - Refactor audio source initialization for better reliability
    - Add playlist refresh functionality after downloading new audio
    - Improve state management for player controls (next/previous)
    YassinNouh21 committed Jun 29, 2024
    Configuration menu
    Copy the full SHA
    fdd6e4d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    61e76e8 View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2024

  1. Configuration menu
    Copy the full SHA
    121298c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    54f7738 View commit details
    Browse the repository at this point in the history
  3. feat: implement batch download for all Surahs

    - Add downloadAllSuwar method to QuranAudioPlayer for batch downloading
    - Update SurahSelectionScreen to use the new batch download functionality
    - Refactor download button in SurahSelectionScreen to use whenOrNull for better null safety
    - Pass ReciterModel and MoshafModel to SurahSelectionScreen for more context
    - Remove local download methods from SurahSelectionScreen
    - Update ReciterSelectionScreen to pass new required parameters to SurahSelectionScreen
    YassinNouh21 committed Jun 30, 2024
    Configuration menu
    Copy the full SHA
    cc3a7ef View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3b554b5 View commit details
    Browse the repository at this point in the history
  5. feat: implement batch download functionality with status updates

    - Add DownloadStatus enum to track download states
    - Extend DownloadAudioQuranState to include download status
    - Update DownloadStateNotifier with methods to set and reset download status
    - Modify QuranAudioPlayer to handle batch downloads and update status
    - Update SurahSelectionScreen to show download progress and status
    - Add toast notifications for download completion and no new downloads
    - Implement Riverpod listener for download status changes
    - Add new localization strings for download status messages
    - Disable download button while downloads are in progress
    YassinNouh21 committed Jun 30, 2024
    Configuration menu
    Copy the full SHA
    6831210 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4329508 View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2024

  1. Configuration menu
    Copy the full SHA
    52da6a1 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2024

  1. Configuration menu
    Copy the full SHA
    824fa17 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    68c4341 View commit details
    Browse the repository at this point in the history