From 6cd63ad41ed480d092fbc172fc0d3a652da4929e Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Wed, 1 May 2024 01:26:30 +0300 Subject: [PATCH 01/31] gitignore: update ignore files --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index a2707bbcc..bf50d97d0 100644 --- a/.gitignore +++ b/.gitignore @@ -87,3 +87,7 @@ emulator.sh /android/mawaqit.jks /android/key.properties /android/app/release + +# Files generated by Flutter +*.mapper.dart +*.g.dart From 2f20bef5502e73c5254294a39bde81dc86ac8ef6 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Wed, 1 May 2024 01:27:43 +0300 Subject: [PATCH 02/31] pubspec: add `dart_mappable`, `json_annotation`, `dart_mappable_builder`, `json_serializable` --- pubspec.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index c9bfc7113..faccc8159 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -125,6 +125,8 @@ dependencies: # manage files and folders flutter_archive: ^6.0.3 + dart_mappable: ^4.2.2 + json_annotation: ^4.9.0 dev_dependencies: flutter_test: sdk: flutter @@ -132,11 +134,13 @@ dev_dependencies: # to get unused packages run # flutter pub run dependency_validator dependency_validator: - build_runner: ^2.1.4 + build_runner: ^2.4.9 http_mock_adapter: ^0.6.1 flutter_lints: ^3.0.2 hive_generator: ^2.0.1 mocktail: ^1.0.3 + dart_mappable_builder: ^4.2.3 + json_serializable: ^6.8.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From 7d49439862fcf3944079b8e5020386f011162f6e Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Wed, 1 May 2024 01:29:39 +0300 Subject: [PATCH 03/31] feat(model): `language`, `moshaf`, `reciter`,and `riwayat` models --- .../domain/model/quran/langauge_model.dart | 56 ++++++++++++++++++ lib/src/domain/model/quran/moshaf_model.dart | 59 +++++++++++++++++++ lib/src/domain/model/quran/reciter_model.dart | 55 +++++++++++++++++ lib/src/domain/model/quran/riwayat_model.dart | 51 ++++++++++++++++ 4 files changed, 221 insertions(+) create mode 100644 lib/src/domain/model/quran/langauge_model.dart create mode 100644 lib/src/domain/model/quran/moshaf_model.dart create mode 100644 lib/src/domain/model/quran/reciter_model.dart create mode 100644 lib/src/domain/model/quran/riwayat_model.dart diff --git a/lib/src/domain/model/quran/langauge_model.dart b/lib/src/domain/model/quran/langauge_model.dart new file mode 100644 index 000000000..e4cdff60c --- /dev/null +++ b/lib/src/domain/model/quran/langauge_model.dart @@ -0,0 +1,56 @@ +import 'package:dart_mappable/dart_mappable.dart'; + +part 'langauge_model.mapper.dart'; + +@MappableClass() +class LangaugeModel { + final String id; + final String language; + final String surah; + final String rewayah; + final String reciters; + final String tafasir; + + LangaugeModel(this.id, this.language, this.surah, this.rewayah, + this.reciters, this.tafasir); + + factory LangaugeModel.fromJson(Map map) => + _ensureContainer.fromMap(map); + + factory LangaugeModel.fromString(String json) => + _ensureContainer.fromJson(json); + + Map toJson() { + return _ensureContainer.toMap(this); + } + + @override + String toString() { + return _ensureContainer.toJson(this); + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (runtimeType == other.runtimeType && + _ensureContainer.isEqual(this, other)); + } + + @override + int get hashCode { + return _ensureContainer.hash(this); + } + + LangaugeModelCopyWith + get copyWith { + return _LangaugeModelCopyWithImpl(this, $identity, $identity); + } + + static final MapperContainer _ensureContainer = () { + LangaugeModelMapper.ensureInitialized(); + return MapperContainer.globals; + }(); + + static LangaugeModelMapper ensureInitialized() => + LangaugeModelMapper.ensureInitialized(); +} diff --git a/lib/src/domain/model/quran/moshaf_model.dart b/lib/src/domain/model/quran/moshaf_model.dart new file mode 100644 index 000000000..9da492771 --- /dev/null +++ b/lib/src/domain/model/quran/moshaf_model.dart @@ -0,0 +1,59 @@ +import 'package:dart_mappable/dart_mappable.dart'; + +part 'moshaf_model.mapper.dart'; + +@MappableClass() +class MoshafModel { + final int id; + final String name; + final String server; + @MappableField(key: 'surah_total') + final int surahTotal; + @MappableField(key: 'moshaf_type') + final int moshafType; + @MappableField(key: 'surah_list') + final String surahList; + + MoshafModel(this.id, this.name, this.server, this.surahTotal, + this.moshafType, this.surahList); + + factory MoshafModel.fromJson(Map map) => + _ensureContainer.fromMap(map); + + factory MoshafModel.fromString(String json) => + _ensureContainer.fromJson(json); + + Map toJson() { + return _ensureContainer.toMap(this); + } + + @override + String toString() { + return _ensureContainer.toJson(this); + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (runtimeType == other.runtimeType && + _ensureContainer.isEqual(this, other)); + } + + @override + int get hashCode { + return _ensureContainer.hash(this); + } + + MoshafModelCopyWith + get copyWith { + return _MoshafModelCopyWithImpl(this, $identity, $identity); + } + + static final MapperContainer _ensureContainer = () { + MoshafModelMapper.ensureInitialized(); + return MapperContainer.globals; + }(); + + static MoshafModelMapper ensureInitialized() => + MoshafModelMapper.ensureInitialized(); +} diff --git a/lib/src/domain/model/quran/reciter_model.dart b/lib/src/domain/model/quran/reciter_model.dart new file mode 100644 index 000000000..a277ebc1d --- /dev/null +++ b/lib/src/domain/model/quran/reciter_model.dart @@ -0,0 +1,55 @@ +import 'package:dart_mappable/dart_mappable.dart'; + +import 'moshaf_model.dart'; + +part 'reciter_model.mapper.dart'; + +@MappableClass() +class ReciterModel { + final int id; + final String name; + final String letter; + final List moshaf; + + ReciterModel(this.id, this.name, this.letter, this.moshaf); + + factory ReciterModel.fromJson(Map map) => + _ensureContainer.fromMap(map); + + factory ReciterModel.fromString(String json) => + _ensureContainer.fromJson(json); + + Map toJson() { + return _ensureContainer.toMap(this); + } + + @override + String toString() { + return _ensureContainer.toJson(this); + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (runtimeType == other.runtimeType && + _ensureContainer.isEqual(this, other)); + } + + @override + int get hashCode { + return _ensureContainer.hash(this); + } + + ReciterModelCopyWith + get copyWith { + return _ReciterModelCopyWithImpl(this, $identity, $identity); + } + + static final MapperContainer _ensureContainer = () { + ReciterModelMapper.ensureInitialized(); + return MapperContainer.globals; + }(); + + static ReciterModelMapper ensureInitialized() => + ReciterModelMapper.ensureInitialized(); +} diff --git a/lib/src/domain/model/quran/riwayat_model.dart b/lib/src/domain/model/quran/riwayat_model.dart new file mode 100644 index 000000000..886259dc7 --- /dev/null +++ b/lib/src/domain/model/quran/riwayat_model.dart @@ -0,0 +1,51 @@ +import 'package:dart_mappable/dart_mappable.dart'; + +part 'riwayat_model.mapper.dart'; + +@MappableClass() +class RiwayatModel { + final int id; + final String name; + + RiwayatModel(this.id, this.name); + + factory RiwayatModel.fromJson(Map map) => + _ensureContainer.fromMap(map); + + factory RiwayatModel.fromString(String json) => + _ensureContainer.fromJson(json); + + Map toJson() { + return _ensureContainer.toMap(this); + } + + @override + String toString() { + return _ensureContainer.toJson(this); + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (runtimeType == other.runtimeType && + _ensureContainer.isEqual(this, other)); + } + + @override + int get hashCode { + return _ensureContainer.hash(this); + } + + RiwayatModelCopyWith + get copyWith { + return _RiwayatModelCopyWithImpl(this, $identity, $identity); + } + + static final MapperContainer _ensureContainer = () { + RiwayatModelMapper.ensureInitialized(); + return MapperContainer.globals; + }(); + + static RiwayatModelMapper ensureInitialized() => + RiwayatModelMapper.ensureInitialized(); +} From 35754c8502232c3c236eefab9d09177efd73cbc4 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Wed, 1 May 2024 01:34:47 +0300 Subject: [PATCH 04/31] feat(model): add `surah` model --- lib/src/domain/model/quran/surah_model.dart | 58 +++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 lib/src/domain/model/quran/surah_model.dart diff --git a/lib/src/domain/model/quran/surah_model.dart b/lib/src/domain/model/quran/surah_model.dart new file mode 100644 index 000000000..c3bd23957 --- /dev/null +++ b/lib/src/domain/model/quran/surah_model.dart @@ -0,0 +1,58 @@ +import 'package:dart_mappable/dart_mappable.dart'; + +part 'surah_model.mapper.dart'; + +@MappableClass() +class SurahModel { + final int id; + final String name; + @MappableField(key: 'start_page') + final int startPage; + @MappableField(key: 'end_page') + final int endPage; + final int makkia; + final int type; + + SurahModel(this.id, this.name, this.startPage, this.endPage, + this.makkia, this.type); + + factory SurahModel.fromJson(Map map) => + _ensureContainer.fromMap(map); + + factory SurahModel.fromString(String json) => + _ensureContainer.fromJson(json); + + Map toJson() { + return _ensureContainer.toMap(this); + } + + @override + String toString() { + return _ensureContainer.toJson(this); + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (runtimeType == other.runtimeType && + _ensureContainer.isEqual(this, other)); + } + + @override + int get hashCode { + return _ensureContainer.hash(this); + } + + SurahModelCopyWith + get copyWith { + return _SurahModelCopyWithImpl(this, $identity, $identity); + } + + static final MapperContainer _ensureContainer = () { + SurahModelMapper.ensureInitialized(); + return MapperContainer.globals; + }(); + + static SurahModelMapper ensureInitialized() => + SurahModelMapper.ensureInitialized(); +} From 55801e7f563d0e568affbb0b04fb4961061d3631 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Wed, 1 May 2024 02:35:53 +0300 Subject: [PATCH 05/31] feat: add exception class for quran feature --- lib/src/domain/error/quran_exceptions.dart | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/src/domain/error/quran_exceptions.dart b/lib/src/domain/error/quran_exceptions.dart index 5184ff0d7..2e5c02b90 100644 --- a/lib/src/domain/error/quran_exceptions.dart +++ b/lib/src/domain/error/quran_exceptions.dart @@ -69,3 +69,32 @@ class ZipFileAlreadyExtractedException extends QuranException { class UnknownException extends QuranException { UnknownException(String message) : super('Unknown error: $message', 'UNKNOWN_ERROR'); } + +/// QuranRemoteDataSourceException exceptions + +class FetchLanguagesException extends QuranException { + FetchLanguagesException(String message) + : super('Error occurred while fetching languages: $message', 'FETCH_LANGUAGES_ERROR'); +} + +class FetchSuwarByLanguageException extends QuranException { + FetchSuwarByLanguageException(String message) + : super('Error occurred while fetching suwar by language: $message', 'FETCH_SUWAR_BY_LANGUAGE_ERROR'); +} + +/// QuranLocalDataSourceException + +class SaveSuwarByLanguageException extends QuranException { + SaveSuwarByLanguageException(String message) + : super('Error occurred while saving suwar by language: $message', 'SAVE_SUWAR_BY_LANGUAGE_ERROR'); +} + +class ClearSuwarByLanguageException extends QuranException { + ClearSuwarByLanguageException(String message) + : super('Error occurred while clearing suwar by language: $message', 'CLEAR_SUWAR_BY_LANGUAGE_ERROR'); +} + +class ClearAllSuwarException extends QuranException { + ClearAllSuwarException(String message) + : super('Error occurred while clearing all suwar: $message', 'CLEAR_ALL_SUWAR_ERROR'); +} From fd8633756d9138bfc8120c81873b052b7c94c414 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Wed, 1 May 2024 02:36:16 +0300 Subject: [PATCH 06/31] feat(const): add `kQuranBaseUrl` and `kSurahBox` --- lib/src/const/constants.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/src/const/constants.dart b/lib/src/const/constants.dart index 2d01f3447..88aae4f8e 100644 --- a/lib/src/const/constants.dart +++ b/lib/src/const/constants.dart @@ -41,4 +41,6 @@ abstract class MosqueManagerConstant { abstract class QuranConstant { static const String kQuranVersionLink = "'https://mawaqit.github.io/mawaqit-announcements/public/quran/config.json'"; static const String kQuranLocalVersion = 'quran_local_version'; + static const String kQuranBaseUrl = 'https://mp3quran.net/api/v3/'; + static const String kSurahBox = 'surah_box'; } From 9821e5ec51cc4f55e3023684f7203e0252cb15ca Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sat, 4 May 2024 02:41:00 +0300 Subject: [PATCH 07/31] feat(model): add hive caching helper in `SurahModel` --- lib/src/domain/model/quran/surah_model.dart | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/src/domain/model/quran/surah_model.dart b/lib/src/domain/model/quran/surah_model.dart index c3bd23957..1ec873075 100644 --- a/lib/src/domain/model/quran/surah_model.dart +++ b/lib/src/domain/model/quran/surah_model.dart @@ -1,16 +1,31 @@ import 'package:dart_mappable/dart_mappable.dart'; +import 'package:hive_flutter/adapters.dart'; part 'surah_model.mapper.dart'; +part 'surah_model.g.dart'; +@HiveType(typeId: 1) @MappableClass() class SurahModel { + + @HiveField(0) final int id; + + @HiveField(1) final String name; + + @HiveField(2) @MappableField(key: 'start_page') final int startPage; + + @HiveField(3) @MappableField(key: 'end_page') final int endPage; + + @HiveField(4) final int makkia; + + @HiveField(5) final int type; SurahModel(this.id, this.name, this.startPage, this.endPage, From 709d41c11b79d702619a10aabacc5e8cce97682d Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sat, 4 May 2024 02:41:26 +0300 Subject: [PATCH 08/31] feat(model): add `LanguageModel` for fetching model from remote --- .../domain/model/quran/language_model.dart | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 lib/src/domain/model/quran/language_model.dart diff --git a/lib/src/domain/model/quran/language_model.dart b/lib/src/domain/model/quran/language_model.dart new file mode 100644 index 000000000..9645c4503 --- /dev/null +++ b/lib/src/domain/model/quran/language_model.dart @@ -0,0 +1,52 @@ +import 'package:dart_mappable/dart_mappable.dart'; + +part 'language_model.mapper.dart'; + +@MappableClass() +class LanguageModel { + final String id; + final String language; + final String native; + final String locale; + final String surah; + final String rewayah; + final String reciters; + final String tafasir; + + LanguageModel( + this.id, this.language, this.native, this.locale, this.surah, this.rewayah, this.reciters, this.tafasir); + + factory LanguageModel.fromJson(Map map) => _ensureContainer.fromMap(map); + + factory LanguageModel.fromString(String json) => _ensureContainer.fromJson(json); + + Map toJson() { + return _ensureContainer.toMap(this); + } + + @override + String toString() { + return _ensureContainer.toJson(this); + } + + @override + bool operator ==(Object other) { + return identical(this, other) || (runtimeType == other.runtimeType && _ensureContainer.isEqual(this, other)); + } + + @override + int get hashCode { + return _ensureContainer.hash(this); + } + + LanguageModelCopyWith get copyWith { + return _LanguageModelCopyWithImpl(this, $identity, $identity); + } + + static final MapperContainer _ensureContainer = () { + LanguageModelMapper.ensureInitialized(); + return MapperContainer.globals; + }(); + + static LanguageModelMapper ensureInitialized() => LanguageModelMapper.ensureInitialized(); +} From 146e3e3da3de50ac1b0d801c30de493d5567c653 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sat, 4 May 2024 02:41:44 +0300 Subject: [PATCH 09/31] feat: register model in the main --- lib/main.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/main.dart b/lib/main.dart index a8aa4dec4..25208a31d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -9,6 +9,7 @@ import 'package:logger/logger.dart'; import 'package:mawaqit/i18n/AppLanguage.dart'; import 'package:mawaqit/i18n/l10n.dart'; import 'package:mawaqit/src/const/constants.dart'; +import 'package:mawaqit/src/domain/model/quran/surah_model.dart'; import 'package:mawaqit/src/enum/connectivity_status.dart'; import 'package:mawaqit/src/helpers/AnalyticsWrapper.dart'; import 'package:mawaqit/src/helpers/Api.dart'; @@ -35,6 +36,7 @@ Future main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); Hive.registerAdapter(AnnouncementAdapter()); + Hive.registerAdapter(SurahModelAdapter()); await Hive.initFlutter(); runApp( ProviderScope( From a1f4234b354e126493c1f77f073f8d7543580c52 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sat, 4 May 2024 02:42:07 +0300 Subject: [PATCH 10/31] feat: add language helper method --- lib/src/helpers/language_helper.dart | 84 ++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 lib/src/helpers/language_helper.dart diff --git a/lib/src/helpers/language_helper.dart b/lib/src/helpers/language_helper.dart new file mode 100644 index 000000000..124d24e9c --- /dev/null +++ b/lib/src/helpers/language_helper.dart @@ -0,0 +1,84 @@ +class LanguageHelper { + + /// [mapLocaleWithQuran] is a helper function that maps the locale to the Quran API locale. + /// + /// using this api `https://mp3quran.net/api/v3/languages` + static String mapLocaleWithQuran(String locale) { + switch (locale) { + case 'ar': + return 'ar'; + case 'ba': + return 'bs'; + case 'bg': + return 'bg'; + case 'bn': + return 'bn'; + case 'ca': + return 'ca'; + case 'cs': + return 'cs'; + case 'da': + return 'da'; + case 'de': + return 'de'; + case 'el': + return 'el'; + case 'en': + return 'eng'; + case 'es': + return 'es'; + case 'et': + return 'et'; + case 'fi': + return 'fi'; + case 'fr': + return 'fr'; + case 'he': + return 'he'; + case 'hr': + return 'hr'; + case 'hu': + return 'hu'; + case 'id': + return 'id'; + case 'it': + return 'it'; + case 'ja': + return 'ja'; + case 'ko': + return 'ko'; + case 'lt': + return 'lt'; + case 'lv': + return 'lv'; + case 'nl': + return 'nl'; + case 'no': + return 'no'; + case 'pl': + return 'pl'; + case 'pt': + return 'pt'; + case 'ro': + return 'ro'; + case 'ru': + return 'ru'; + case 'sl': + return 'sl'; + case 'sv': + return 'sv'; + case 'ta': + return 'ta'; + case 'tr': + return 'tr'; + case 'uk': + return 'uk'; + case 'ur': + return 'ur'; + case 'zh': + return 'cn'; + default: + return 'eng'; + } + } +} From 90a8d42c785f75baa5f335ea2bea2fe92ba00d6f Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sat, 4 May 2024 02:44:13 +0300 Subject: [PATCH 11/31] feat: adding `CannotFindSuwarByLanguageException` as exception for quran --- lib/src/domain/error/quran_exceptions.dart | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/src/domain/error/quran_exceptions.dart b/lib/src/domain/error/quran_exceptions.dart index 2e5c02b90..facb60b51 100644 --- a/lib/src/domain/error/quran_exceptions.dart +++ b/lib/src/domain/error/quran_exceptions.dart @@ -98,3 +98,8 @@ class ClearAllSuwarException extends QuranException { ClearAllSuwarException(String message) : super('Error occurred while clearing all suwar: $message', 'CLEAR_ALL_SUWAR_ERROR'); } + +class CannotFindSuwarByLanguageException extends QuranException { + CannotFindSuwarByLanguageException(String message) + : super('Error occurred while finding suwar by language: $message', 'FIND_SUWAR_BY_LANGUAGE_ERROR'); +} From 5f12812bcb83c6a1d199a2d809909c6f201b1425 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sat, 4 May 2024 02:45:04 +0300 Subject: [PATCH 12/31] feat(data): add `QuranLocalDataSource` to handle caching and local storage, add `QuranRemoteDataSource` to handle remote --- .../quran/quran_local_data_source.dart | 77 +++++++++++++++++++ .../quran/quran_remote_data_source.dart | 55 +++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 lib/src/data/data_source/quran/quran_local_data_source.dart create mode 100644 lib/src/data/data_source/quran/quran_remote_data_source.dart diff --git a/lib/src/data/data_source/quran/quran_local_data_source.dart b/lib/src/data/data_source/quran/quran_local_data_source.dart new file mode 100644 index 000000000..415cf93b1 --- /dev/null +++ b/lib/src/data/data_source/quran/quran_local_data_source.dart @@ -0,0 +1,77 @@ +import 'dart:developer'; + +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:hive_flutter/adapters.dart'; +import 'package:mawaqit/src/const/constants.dart'; +import 'package:mawaqit/src/domain/model/quran/surah_model.dart'; + +import 'package:mawaqit/src/domain/error/quran_exceptions.dart'; + +class QuranLocalDataSource { + final Box _surahBox; + + QuranLocalDataSource(this._surahBox); + + /// [saveSuwarByLanguage] save the list of surwars by language code + Future saveSuwarByLanguage(String languageCode, List suwar) async { + try { + log('quran: saveSuwarByLanguage: ${suwar[0]} len ${suwar.length}'); + await _surahBox.put(languageCode, suwar); + } catch (e) { + log('quran: saveSuwarByLanguage: ${e.toString()}'); + throw SaveSuwarByLanguageException(e.toString()); + } + } + + /// [getSuwarByLanguage] get the list of surwars by language code + Future> getSuwarByLanguage(String languageCode) async { + try { + final suwar = _surahBox.get(languageCode); + log('quran: getSuwarByLanguage: ${suwar[0]}'); + if (suwar != null) { + return List.from(suwar); + } else { + return []; + } + } catch (e) { + throw FetchSuwarByLanguageException(e.toString()); + } + } + + Future clearSuwarByLanguage(String languageCode) async { + try { + await _surahBox.delete(languageCode); + log('quran: clearSuwarByLanguage: $languageCode'); + } catch (e) { + throw ClearSuwarByLanguageException(e.toString()); + } + } + + Future clearAllSuwar() async { + try { + await _surahBox.clear(); + } catch (e) { + throw ClearAllSuwarException(e.toString()); + } + } + + /// [isSuwarByLanguageFound] + + bool isSuwarByLanguageFound(String languageCode) { + try { + if (_surahBox.keys.where((element) => element == languageCode).isNotEmpty) { + return true; + } else { + return false; + } + } catch (e) { + log('quran: cannotFindSuwarByLanguageException: ${e.toString()}'); + throw CannotFindSuwarByLanguageException(e.toString()); + } + } +} + +final quranLocalDataSourceProvider = FutureProvider((ref) async { + final surahBox = await Hive.openBox(QuranConstant.kSurahBox); + return QuranLocalDataSource(surahBox); +}); diff --git a/lib/src/data/data_source/quran/quran_remote_data_source.dart b/lib/src/data/data_source/quran/quran_remote_data_source.dart new file mode 100644 index 000000000..83fc0cf96 --- /dev/null +++ b/lib/src/data/data_source/quran/quran_remote_data_source.dart @@ -0,0 +1,55 @@ +import 'dart:developer'; + +import 'package:dio/dio.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:mawaqit/src/domain/model/quran/language_model.dart'; +import 'package:mawaqit/src/domain/model/quran/surah_model.dart'; + +import 'package:mawaqit/src/const/constants.dart'; +import 'package:mawaqit/src/module/dio_module.dart'; + +import 'package:mawaqit/src/domain/error/quran_exceptions.dart'; + +class QuranRemoteDataSource { + final Dio _dio; + + QuranRemoteDataSource(this._dio); + + /// [getLanguages] get the list of languages + /// + /// gets the list of languages from the api `https://mp3quran.net/api/v3/languages` + Future> getLanguages() async { + try{ + final response = await _dio.get('languages'); + // log('quran: QuranRemoteDataSource: getLanguages: ${response.data}'); + return (response.data['language'] as List).map((e) => LanguageModel.fromJson(e as Map)).toList(); + } catch (e) { + throw FetchLanguagesException(e.toString()); + } + } + + /// [getSuwarByLanguage] get the list of surwars by language code + /// + /// [languageCode] is the language code of the surwars using the api `https://mp3quran.net/api/v3/suwar` + Future> getSuwarByLanguage({String languageCode = 'eng'}) async { + try{ + final response = await _dio.get( + 'suwar', + queryParameters: {'language': languageCode}, + ); + // log('quran: QuranRemoteDataSource: getSuwarByLanguage: ${response.data}'); + return (response.data['suwar'] as List).map((e) => SurahModel.fromJson(e as Map)).toList(); + } catch (e) { + throw FetchSuwarByLanguageException(e.toString()); + } + } +} + +final quranRemoteDataSourceProvider = Provider((ref) { + final dio = ref.watch( + dioProvider( + DioProviderParameter(baseUrl: QuranConstant.kQuranBaseUrl), + ), + ); + return QuranRemoteDataSource(dio.dio); +}); From 845ad0b61ddec0117ab3222dda8dc4be4f1c69b2 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sat, 4 May 2024 02:45:36 +0300 Subject: [PATCH 13/31] feat(data): add `QuranImpl` and `QuranRepository` to handle repository --- lib/src/data/repository/quran/quran_impl.dart | 46 +++++++++++++++++++ .../repository/quran/quran_repository.dart | 8 ++++ 2 files changed, 54 insertions(+) create mode 100644 lib/src/data/repository/quran/quran_impl.dart create mode 100644 lib/src/domain/repository/quran/quran_repository.dart diff --git a/lib/src/data/repository/quran/quran_impl.dart b/lib/src/data/repository/quran/quran_impl.dart new file mode 100644 index 000000000..72faba872 --- /dev/null +++ b/lib/src/data/repository/quran/quran_impl.dart @@ -0,0 +1,46 @@ +import 'dart:developer'; + +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:mawaqit/src/domain/model/quran/language_model.dart'; +import 'package:mawaqit/src/domain/model/quran/surah_model.dart'; +import 'package:mawaqit/src/domain/repository/quran/quran_repository.dart'; +import 'package:mawaqit/src/data/data_source/quran/quran_local_data_source.dart'; +import 'package:mawaqit/src/data/data_source/quran/quran_remote_data_source.dart'; + +class QuranImpl extends QuranRepository { + final QuranRemoteDataSource _quranRemoteDataSource; + final QuranLocalDataSource _quranLocalDataSource; + + QuranImpl( + this._quranRemoteDataSource, + this._quranLocalDataSource, + ); + + @override + Future> getLanguages() async { + final languages = await _quranRemoteDataSource.getLanguages(); + log('quran: QuranImpl: getSuwarByLanguage: ${languages[0]}'); + return languages; + } + + @override + Future> getSuwarByLanguage({ + String languageCode = 'en', + }) async { + try { + final suwar = await _quranRemoteDataSource.getSuwarByLanguage(languageCode: languageCode); + log('quran: QuranImpl: getSuwarByLanguage: ${suwar[0]}'); + await _quranLocalDataSource.saveSuwarByLanguage(languageCode, suwar); + return suwar; + } on Exception catch (_){ + final suwar = await _quranLocalDataSource.getSuwarByLanguage(languageCode); + return suwar; + } + } +} + +final quranRepositoryProvider = FutureProvider((ref) async { + final quranRemoteDataSource = ref.read(quranRemoteDataSourceProvider); + final quranLocalDataSource = await ref.read(quranLocalDataSourceProvider.future); + return QuranImpl(quranRemoteDataSource, quranLocalDataSource); +}); diff --git a/lib/src/domain/repository/quran/quran_repository.dart b/lib/src/domain/repository/quran/quran_repository.dart new file mode 100644 index 000000000..070d93e1a --- /dev/null +++ b/lib/src/domain/repository/quran/quran_repository.dart @@ -0,0 +1,8 @@ +import 'package:mawaqit/src/domain/model/quran/language_model.dart'; +import 'package:mawaqit/src/domain/model/quran/surah_model.dart'; + +abstract class QuranRepository { + Future> getSuwarByLanguage({String languageCode = 'en'}); + + Future> getLanguages(); +} From 2deebd566f119014345a4adb25e1d109b36044b3 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sat, 4 May 2024 02:46:30 +0300 Subject: [PATCH 14/31] feat(state_management): add notifier and state for handling the state of the quran feature --- .../quran/quran/quran_notifier.dart | 36 +++++++++++++++++++ .../quran/quran/quran_state.dart | 30 ++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 lib/src/state_management/quran/quran/quran_notifier.dart create mode 100644 lib/src/state_management/quran/quran/quran_state.dart diff --git a/lib/src/state_management/quran/quran/quran_notifier.dart b/lib/src/state_management/quran/quran/quran_notifier.dart new file mode 100644 index 000000000..ef4a21df6 --- /dev/null +++ b/lib/src/state_management/quran/quran/quran_notifier.dart @@ -0,0 +1,36 @@ +import 'dart:developer'; + +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:mawaqit/src/state_management/quran/quran/quran_state.dart'; + +import 'package:mawaqit/src/data/repository/quran/quran_impl.dart'; + +import 'package:mawaqit/src/module/shared_preference_module.dart'; + +import 'package:mawaqit/src/helpers/language_helper.dart'; + +class QuranNotifier extends AsyncNotifier { + @override + build() => QuranState(); + + /// [getSuwarByLanguage] get the list of surwars by language + /// + /// [languageCode] is the language code of the surwars + Future getSuwarByLanguage({ + String languageCode = 'en', + }) async { + state = AsyncLoading(); + state = await AsyncValue.guard(() async { + final quranRepository = await ref.read(quranRepositoryProvider.future); + final sharedPreference = await ref.read(sharedPreferenceModule.future); + final languageCode = sharedPreference.getString('language_code') ?? 'en'; + // return boolean if the languages has locale + final mappedLanguage = LanguageHelper.mapLocaleWithQuran(languageCode); + log('quran: QuranNotifier: getSuwarByLanguage: languageCode: $languageCode'); + final suwar = await quranRepository.getSuwarByLanguage(languageCode: mappedLanguage); + return state.value!.copyWith(suwar: suwar); + }); + } +} + +final quranNotifierProvider = AsyncNotifierProvider(QuranNotifier.new); diff --git a/lib/src/state_management/quran/quran/quran_state.dart b/lib/src/state_management/quran/quran/quran_state.dart new file mode 100644 index 000000000..8fe9b0f78 --- /dev/null +++ b/lib/src/state_management/quran/quran/quran_state.dart @@ -0,0 +1,30 @@ +import 'package:equatable/equatable.dart'; +import 'package:mawaqit/src/domain/model/quran/language_model.dart'; +import 'package:mawaqit/src/domain/model/quran/surah_model.dart'; + +class QuranState extends Equatable{ + final List languages; + final List suwar; + + QuranState({ + this.languages = const [], + this.suwar = const [], + }); + + QuranState copyWith({ + List? languages, + List? suwar, + }) { + return QuranState( + languages: languages ?? this.languages, + suwar: suwar ?? this.suwar, + ); + } + + @override + String toString() { + return 'QuranState{languages: ${languages[0]}, suwar: ${suwar[0]}}'; + } + @override + List get props => [languages, suwar]; +} From 17dbb2ebee1fcabfa684a8072b5309203d5312a0 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sun, 5 May 2024 02:32:27 +0300 Subject: [PATCH 15/31] refactor(model): delete mistyped model (language_model) --- .../domain/model/quran/langauge_model.dart | 56 ------------------- 1 file changed, 56 deletions(-) delete mode 100644 lib/src/domain/model/quran/langauge_model.dart diff --git a/lib/src/domain/model/quran/langauge_model.dart b/lib/src/domain/model/quran/langauge_model.dart deleted file mode 100644 index e4cdff60c..000000000 --- a/lib/src/domain/model/quran/langauge_model.dart +++ /dev/null @@ -1,56 +0,0 @@ -import 'package:dart_mappable/dart_mappable.dart'; - -part 'langauge_model.mapper.dart'; - -@MappableClass() -class LangaugeModel { - final String id; - final String language; - final String surah; - final String rewayah; - final String reciters; - final String tafasir; - - LangaugeModel(this.id, this.language, this.surah, this.rewayah, - this.reciters, this.tafasir); - - factory LangaugeModel.fromJson(Map map) => - _ensureContainer.fromMap(map); - - factory LangaugeModel.fromString(String json) => - _ensureContainer.fromJson(json); - - Map toJson() { - return _ensureContainer.toMap(this); - } - - @override - String toString() { - return _ensureContainer.toJson(this); - } - - @override - bool operator ==(Object other) { - return identical(this, other) || - (runtimeType == other.runtimeType && - _ensureContainer.isEqual(this, other)); - } - - @override - int get hashCode { - return _ensureContainer.hash(this); - } - - LangaugeModelCopyWith - get copyWith { - return _LangaugeModelCopyWithImpl(this, $identity, $identity); - } - - static final MapperContainer _ensureContainer = () { - LangaugeModelMapper.ensureInitialized(); - return MapperContainer.globals; - }(); - - static LangaugeModelMapper ensureInitialized() => - LangaugeModelMapper.ensureInitialized(); -} From 740c6d2946f2f18e4457f2f11c4842dd69549454 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sun, 5 May 2024 02:33:16 +0300 Subject: [PATCH 16/31] feat: add listen to navigation in `mawaqitDrawer` --- lib/src/widgets/MawaqitDrawer.dart | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/lib/src/widgets/MawaqitDrawer.dart b/lib/src/widgets/MawaqitDrawer.dart index e8e5cc216..eba803bee 100644 --- a/lib/src/widgets/MawaqitDrawer.dart +++ b/lib/src/widgets/MawaqitDrawer.dart @@ -1,7 +1,7 @@ import 'dart:io'; import 'package:flutter/material.dart' hide Page; -import 'package:flutter_riverpod/flutter_riverpod.dart' show ConsumerWidget, WidgetRef, ProviderContainer; +import 'package:flutter_riverpod/flutter_riverpod.dart' show AsyncValueX, ConsumerWidget, ProviderContainer, WidgetRef; import 'package:flutter_svg/svg.dart'; import 'package:launch_review/launch_review.dart'; import 'package:mawaqit/const/resource.dart'; @@ -24,10 +24,11 @@ import 'package:mawaqit/src/widgets/InfoWidget.dart'; import 'package:provider/provider.dart'; import 'package:share_plus/share_plus.dart'; -import '../developer_mode/DrawerListTest.dart'; -import '../pages/SettingScreen.dart'; -import '../pages/quran/widget/download_quran_popup.dart'; -import '../state_management/quran/download_quran/download_quran_notifier.dart'; +import 'package:mawaqit/src/developer_mode/DrawerListTest.dart'; +import 'package:mawaqit/src/pages/SettingScreen.dart'; +import 'package:mawaqit/src/pages/quran/page/surah_selection_screen.dart'; +import 'package:mawaqit/src/pages/quran/widget/download_quran_popup.dart'; +import 'package:mawaqit/src/state_management/quran/quran/quran_notifier.dart'; class MawaqitDrawer extends ConsumerWidget { const MawaqitDrawer({Key? key, required this.goHome}) : super(key: key); @@ -40,8 +41,22 @@ class MawaqitDrawer extends ConsumerWidget { final mosqueManager = context.watch(); final userPrefs = context.watch(); - final theme = Theme.of(context); + bool _isNavigating = false; + final theme = Theme.of(context); + ref.listen(quranNotifierProvider, (previous, next) { + if (next.hasValue && next.value!.suwar.isNotEmpty && !next.isReloading && !_isNavigating) { + _isNavigating = true; + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => SurahSelectionScreen(), + ), + ).then((_) { + _isNavigating = false; + }); + } + }); return Drawer( child: Stack( children: [ @@ -148,7 +163,6 @@ class MawaqitDrawer extends ConsumerWidget { ), )), Divider(), - DrawerListTitle( autoFocus: true, icon: Icons.home, @@ -168,6 +182,7 @@ class MawaqitDrawer extends ConsumerWidget { text: S.of(context).quran, onTap: () async { await showDownloadQuranAlertDialog(context, ref); + ref.read(quranNotifierProvider.notifier).getSuwarByLanguage(); }, ), DrawerListTitle( From a7d5cfc209fcf54f3caa637670670b3409617704 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sun, 5 May 2024 02:34:58 +0300 Subject: [PATCH 17/31] feat(ui): add displaying the ui of the surah list --- .../quran/page/surah_selection_screen.dart | 205 ++++++++++++++++++ lib/src/pages/quran/widget/side_menu.dart | 52 +++++ lib/src/pages/quran/widget/surah_card.dart | 57 +++++ 3 files changed, 314 insertions(+) create mode 100644 lib/src/pages/quran/page/surah_selection_screen.dart create mode 100644 lib/src/pages/quran/widget/side_menu.dart create mode 100644 lib/src/pages/quran/widget/surah_card.dart diff --git a/lib/src/pages/quran/page/surah_selection_screen.dart b/lib/src/pages/quran/page/surah_selection_screen.dart new file mode 100644 index 000000000..d10c8d89f --- /dev/null +++ b/lib/src/pages/quran/page/surah_selection_screen.dart @@ -0,0 +1,205 @@ +import 'dart:developer'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:mawaqit/src/helpers/DateUtils.dart'; +import 'package:mawaqit/src/helpers/RelativeSizes.dart'; +import 'package:mawaqit/src/pages/quran/page/reciter_selection_screen.dart'; +import 'package:mawaqit/src/pages/quran/widget/surah_card.dart'; +import 'package:mawaqit/src/state_management/quran/quran/quran_notifier.dart'; +import 'package:provider/provider.dart'; +import 'package:mawaqit/src/services/mosque_manager.dart'; +import 'package:mawaqit/src/pages/quran/widget/side_menu.dart'; + +class SurahSelectionScreen extends ConsumerStatefulWidget { + @override + ConsumerState createState() => _SurahSelectionScreenState(); +} + +class _SurahSelectionScreenState extends ConsumerState { + int selectedIndex = 0; + final int _crossAxisCount = 4; + final ScrollController _scrollController = ScrollController(); + late FocusNode _searchFocusNode; + + @override + Widget build(BuildContext context) { + final timeNow = context.select((value) => value.mosqueDate()); + final mosqueCountryCode = context.select((value) => value.mosque?.countryCode ?? ''); + final lang = Localizations.localeOf(context).languageCode; + final georgianDate = timeNow.formatIntoMawaqitFormat(local: '${lang}_$mosqueCountryCode'); + final quranState = ref.watch(quranNotifierProvider); + + return Scaffold( + body: Container( + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [Color(0xFF181C3F), Color(0xFF490094)], + stops: [0.0, 1.0], + transform: GradientRotation(170.31 * 3.14159 / 180), + ), + ), + child: Row( + children: [ + Expanded( + child: Padding( + padding: EdgeInsets.all(32.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Directionality( + textDirection: TextDirection.ltr, + child: Text( + georgianDate, + style: TextStyle( + color: Colors.white, + fontSize: 2.7.vwr, + height: .8, + ), + ), + ), + SizedBox(height: 32), + Focus( + debugLabel: 'Search Surahs', + focusNode: _searchFocusNode, + child: TextField( + readOnly: true, + autofocus: false, + cursorColor: Colors.white, + decoration: InputDecoration( + hintText: 'Search surahs...', + hintStyle: TextStyle(color: Colors.white70), + filled: true, + fillColor: Colors.white.withOpacity(0.2), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(30), + borderSide: BorderSide.none, + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(30), + borderSide: BorderSide(color: Colors.white), + ), + ), + style: TextStyle(color: Colors.white), + ), + ), + SizedBox(height: 16), + Expanded( + child: quranState.when( + data: (data) { + return GridView.builder( + controller: _scrollController, + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: _crossAxisCount, + childAspectRatio: 1.5, + crossAxisSpacing: 16, + mainAxisSpacing: 16, + ), + itemCount: data.suwar.length, + itemBuilder: (context, index) { + return SurahCard( + surahName: data.suwar[index].name, + surahNumber: index + 1, + isSelected: index == selectedIndex, + onTap: () { + setState(() { + selectedIndex = index; + }); + _scrollToSelectedItem(); + }, + ); + }, + ); + }, + error: (error, stack) { + log('Error: $error\n$stack'); + return Center( + child: Text( + 'Error: $error', + ), + ); + }, + loading: () => Center( + child: CircularProgressIndicator(), + ), + ), + ), + ], + ), + ), + ), + SideMenu(), + ], + ), + ), + ); + } + + @override + void initState() { + super.initState(); + _searchFocusNode = FocusNode(); + RawKeyboard.instance.addListener(_handleKeyEvent); + } + + @override + void dispose() { + RawKeyboard.instance.removeListener(_handleKeyEvent); + _searchFocusNode = FocusNode(); + _scrollController.dispose(); + super.dispose(); + } + + void _handleKeyEvent(RawKeyEvent event) { + final surahs = ref.read(quranNotifierProvider).maybeWhen(orElse: () => [], data: (data) => data.suwar); + if (event is RawKeyDownEvent) { + log('Key pressed: ${event.logicalKey}'); + if (event.logicalKey == LogicalKeyboardKey.select) { + _searchFocusNode.requestFocus(); + } + if (event.logicalKey == LogicalKeyboardKey.arrowRight) { + setState(() { + selectedIndex = (selectedIndex + 1) % surahs.length; + }); + _scrollToSelectedItem(); + } else if (event.logicalKey == LogicalKeyboardKey.arrowLeft) { + setState(() { + selectedIndex = (selectedIndex - 1 + surahs.length) % surahs.length; + }); + _scrollToSelectedItem(); + } else if (event.logicalKey == LogicalKeyboardKey.arrowUp) { + if (selectedIndex < _crossAxisCount) { + // _searchFocusNode.requestFocus(); + } else { + setState(() { + selectedIndex = (selectedIndex - _crossAxisCount + surahs.length) % surahs.length; + }); + _scrollToSelectedItem(); + } + } else if (event.logicalKey == LogicalKeyboardKey.arrowDown) { + setState(() { + selectedIndex = (selectedIndex + _crossAxisCount) % surahs.length; + }); + _scrollToSelectedItem(); + } else if (event.logicalKey == LogicalKeyboardKey.select) { + + } + } + } + + void _scrollToSelectedItem() { + final surahs = ref.read(quranNotifierProvider).maybeWhen(orElse: () => [], data: (data) => data.suwar); + final int rowIndex = selectedIndex ~/ _crossAxisCount; + final double itemHeight = _scrollController.position.maxScrollExtent / ((surahs.length - 1) / _crossAxisCount); + final double targetOffset = rowIndex * itemHeight; + _scrollController.animateTo( + targetOffset, + duration: Duration(milliseconds: 200), + curve: Curves.easeInOut, + ); + } +} diff --git a/lib/src/pages/quran/widget/side_menu.dart b/lib/src/pages/quran/widget/side_menu.dart new file mode 100644 index 000000000..d9b90ca46 --- /dev/null +++ b/lib/src/pages/quran/widget/side_menu.dart @@ -0,0 +1,52 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import 'package:mawaqit/i18n/AppLanguage.dart'; +import 'package:mawaqit/i18n/l10n.dart'; + +class SideMenu extends StatelessWidget { + + const SideMenu({super.key}); + + @override + Widget build(BuildContext context) { + final tr = S.of(context); + final isArabic = context.select((value) => value.isArabic()); + return Directionality( + textDirection: TextDirection.ltr, + child: Container( + width: 100, + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.2), + borderRadius: BorderRadius.only( + topRight: isArabic ? Radius.circular(30) : Radius.zero, + bottomRight: isArabic ? Radius.circular(30) : Radius.zero, + topLeft: isArabic ? Radius.zero : Radius.circular(30), + bottomLeft: isArabic ? Radius.zero : Radius.circular(30), + ), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + IconButton( + icon: Icon(Icons.book, size: 48, color: Colors.white), + onPressed: () {}, + ), + IconButton( + icon: Icon(Icons.explore, size: 48, color: Colors.white), + onPressed: () {}, + ), + IconButton( + icon: Icon(Icons.mosque, size: 48, color: Colors.white), + onPressed: () {}, + ), + IconButton( + icon: Icon(Icons.play_arrow, size: 48, color: Colors.white), + onPressed: () {}, + ), + ], + ), + ), + ); + } +} diff --git a/lib/src/pages/quran/widget/surah_card.dart b/lib/src/pages/quran/widget/surah_card.dart new file mode 100644 index 000000000..ebce9a2f0 --- /dev/null +++ b/lib/src/pages/quran/widget/surah_card.dart @@ -0,0 +1,57 @@ +import 'package:flutter/material.dart'; +import 'package:mawaqit/src/helpers/RelativeSizes.dart'; + +class SurahCard extends StatelessWidget { + final String surahName; + final int surahNumber; + final int? verses; + final bool isSelected; + final VoidCallback onTap; + + const SurahCard({ + required this.surahName, + required this.surahNumber, + required this.isSelected, + required this.onTap, + this.verses, + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + child: Container( + decoration: BoxDecoration( + color: isSelected ? Colors.white.withOpacity(0.4) : Colors.white.withOpacity(0.2), + borderRadius: BorderRadius.circular(20), + ), + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + '$surahNumber. $surahName', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 2.2.vwr, + color: Colors.white, + fontWeight: FontWeight.w500, + ), + ), + SizedBox(height: 8), + verses == null + ? Container() + : Text( + '$verses verses', + style: TextStyle( + fontSize: 14, + color: Colors.white70, + ), + ), + ], + ), + ), + ), + ); + } +} From 7764e352893114c9eda78d6e9a90318b405cc315 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Tue, 14 May 2024 21:31:11 +0300 Subject: [PATCH 18/31] assets: add assets including icons and background --- assets/backgrounds/quran_background.png | Bin 0 -> 126578 bytes assets/icon/download.svg | 4 ++++ assets/icon/love.svg | 3 +++ assets/icon/repeat.svg | 4 ++++ assets/icon/shuffle.svg | 3 +++ assets/icon/skip_next.svg | 3 +++ assets/icon/skip_previous.svg | 3 +++ 7 files changed, 20 insertions(+) create mode 100644 assets/backgrounds/quran_background.png create mode 100644 assets/icon/download.svg create mode 100644 assets/icon/love.svg create mode 100644 assets/icon/repeat.svg create mode 100644 assets/icon/shuffle.svg create mode 100644 assets/icon/skip_next.svg create mode 100644 assets/icon/skip_previous.svg diff --git a/assets/backgrounds/quran_background.png b/assets/backgrounds/quran_background.png new file mode 100644 index 0000000000000000000000000000000000000000..53e0eeb4f5c8bc2aeddc64e31bf63ca9a962ae4a GIT binary patch literal 126578 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 + + + diff --git a/assets/icon/love.svg b/assets/icon/love.svg new file mode 100644 index 000000000..a8a1acf04 --- /dev/null +++ b/assets/icon/love.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icon/repeat.svg b/assets/icon/repeat.svg new file mode 100644 index 000000000..d705f03e7 --- /dev/null +++ b/assets/icon/repeat.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icon/shuffle.svg b/assets/icon/shuffle.svg new file mode 100644 index 000000000..fa1d5cd0e --- /dev/null +++ b/assets/icon/shuffle.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icon/skip_next.svg b/assets/icon/skip_next.svg new file mode 100644 index 000000000..75a3990b5 --- /dev/null +++ b/assets/icon/skip_next.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icon/skip_previous.svg b/assets/icon/skip_previous.svg new file mode 100644 index 000000000..c693b6c77 --- /dev/null +++ b/assets/icon/skip_previous.svg @@ -0,0 +1,3 @@ + + + From 4f5d4df45d565d9f50367af54b2055668c1bef63 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Thu, 16 May 2024 10:17:54 +0300 Subject: [PATCH 19/31] assets: default_avatar, pause --- assets/icon/pause.svg | 3 +++ assets/img/quran/default_avatar.png | Bin 0 -> 33613 bytes 2 files changed, 3 insertions(+) create mode 100644 assets/icon/pause.svg create mode 100644 assets/img/quran/default_avatar.png diff --git a/assets/icon/pause.svg b/assets/icon/pause.svg new file mode 100644 index 000000000..569238fa4 --- /dev/null +++ b/assets/icon/pause.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/quran/default_avatar.png b/assets/img/quran/default_avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..f88c73e84a16defc93ce665be997436fdc342898 GIT binary patch literal 33613 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