From 8719a3a03ab3ce02f7fcc6035300cc61ba20ae4f Mon Sep 17 00:00:00 2001 From: MOKTADIR Date: Thu, 6 Apr 2023 02:38:02 +0600 Subject: [PATCH] exception bug fix --- assets/images/email.png | Bin 0 -> 26632 bytes ios/Podfile.lock | 52 ++++++------ lib/app/components/custom_snackbar.dart | 75 ++++++++++++++++++ lib/app/data/local/my_shared_pref.dart | 1 + lib/app/routes/app_pages.dart | 2 +- lib/app/service/api_exceptions.dart | 5 +- lib/app/service/base_controller.dart | 3 +- lib/app/service/helper/api_header.dart | 2 +- lib/main.dart | 2 +- lib/utils/constants.dart | 1 + pubspec.lock | 100 +++++++++++++----------- pubspec.yaml | 2 + 12 files changed, 165 insertions(+), 80 deletions(-) create mode 100644 assets/images/email.png create mode 100644 lib/app/components/custom_snackbar.dart diff --git a/assets/images/email.png b/assets/images/email.png new file mode 100644 index 0000000000000000000000000000000000000000..177209b64e100dbe470262293317e6963ef2c2d6 GIT binary patch literal 26632 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 literal 0 HcmV?d00001 diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 476d86e..0ee7c7d 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -36,30 +36,30 @@ PODS: - file_picker (0.0.1): - DKImagePickerController/PhotoGallery - Flutter - - Firebase/CoreOnly (10.3.0): - - FirebaseCore (= 10.3.0) - - Firebase/Messaging (10.3.0): + - Firebase/CoreOnly (10.7.0): + - FirebaseCore (= 10.7.0) + - Firebase/Messaging (10.7.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 10.3.0) - - firebase_core (2.7.1): - - Firebase/CoreOnly (= 10.3.0) + - FirebaseMessaging (~> 10.7.0) + - firebase_core (2.9.0): + - Firebase/CoreOnly (= 10.7.0) - Flutter - - firebase_messaging (14.2.6): - - Firebase/Messaging (= 10.3.0) + - firebase_messaging (14.4.0): + - Firebase/Messaging (= 10.7.0) - firebase_core - Flutter - - FirebaseCore (10.3.0): + - FirebaseCore (10.7.0): - FirebaseCoreInternal (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Logger (~> 7.8) - - FirebaseCoreInternal (10.4.0): + - FirebaseCoreInternal (10.7.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseInstallations (10.4.0): + - FirebaseInstallations (10.7.0): - FirebaseCore (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - PromisesObjC (~> 2.1) - - FirebaseMessaging (10.3.0): + - FirebaseMessaging (10.7.0): - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleDataTransport (~> 9.2) @@ -103,10 +103,10 @@ PODS: - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS - - PromisesObjC (2.1.1) - - SDWebImage (5.15.0): - - SDWebImage/Core (= 5.15.0) - - SDWebImage/Core (5.15.0) + - PromisesObjC (2.2.0) + - SDWebImage (5.15.5): + - SDWebImage/Core (= 5.15.5) + - SDWebImage/Core (5.15.5) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS @@ -165,13 +165,13 @@ SPEC CHECKSUMS: DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 file_picker: ce3938a0df3cc1ef404671531facef740d03f920 - Firebase: f92fc551ead69c94168d36c2b26188263860acd9 - firebase_core: 1ae9f9aa76e6e1edc14fb181637ad466fd6c6fa4 - firebase_messaging: f8c01f8b540feb4196e8dbe45ae17534747d779d - FirebaseCore: 988754646ab3bd4bdcb740f1bfe26b9f6c0d5f2a - FirebaseCoreInternal: e301297f4c15a17489e48ed722d733b1578e0c02 - FirebaseInstallations: 36b38c733fd37e50857e5e8d74138648f466f18c - FirebaseMessaging: e345b219fd15d325f0cf2fef28cb8ce00d851b3f + Firebase: 0219acf760880eeec8ce479895bd7767466d9f81 + firebase_core: d85432877e814811e040e7659f9c82faeab66e04 + firebase_messaging: 45c0514ca78426630338a42fb7b55af962c7ccd2 + FirebaseCore: e317665b9d744727a97e623edbbed009320afdd7 + FirebaseCoreInternal: 8845798510aae74703467480f71ac613788d0696 + FirebaseInstallations: 59c0e4c7a816a0f76710d83f77e5369b3e45eb96 + FirebaseMessaging: ac9062bcc35ed56e15a0241d8fd317022499baf8 Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef GoogleDataTransport: ea169759df570f4e37bdee1623ec32a7e64e67c4 @@ -180,11 +180,11 @@ SPEC CHECKSUMS: IosAwnCore: 6494e0e174d49f04f513e8a002187be226889a37 nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9 - PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb - SDWebImage: 9bec4c5cdd9579e1f57104735ee0c37df274d593 + PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef + SDWebImage: fd7e1a22f00303e058058278639bf6196ee431fe shared_preferences_foundation: 986fc17f3d3251412d18b0265f9c64113a8c2472 SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3 -COCOAPODS: 1.11.3 +COCOAPODS: 1.12.0 diff --git a/lib/app/components/custom_snackbar.dart b/lib/app/components/custom_snackbar.dart new file mode 100644 index 0000000..d2d06a8 --- /dev/null +++ b/lib/app/components/custom_snackbar.dart @@ -0,0 +1,75 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +class CustomSnackBar { + static showCustomSnackBar( + {required String title, required String message, Duration? duration}) { + Get.snackbar( + title, + message, + duration: duration ?? const Duration(milliseconds: 1500), + margin: const EdgeInsets.only(top: 10, left: 10, right: 10), + colorText: Colors.white, + backgroundColor: Colors.green, + icon: const Icon( + Icons.check_circle, + color: Colors.white, + ), + ); + } + + static showCustomErrorSnackBar( + {required String title, + required String message, + Color? color, + Duration? duration}) { + Get.snackbar( + title, + message, + duration: duration ?? const Duration(milliseconds: 1500), + margin: const EdgeInsets.only(top: 10, left: 10, right: 10), + colorText: Colors.white, + backgroundColor: color ?? Colors.redAccent, + icon: const Icon( + Icons.error, + color: Colors.white, + ), + ); + } + + static showCustomToast( + {String? title, + required String message, + Color? color, + Duration? duration}) { + Get.rawSnackbar( + title: title, + duration: duration ?? const Duration(milliseconds: 1500), + snackStyle: SnackStyle.GROUNDED, + backgroundColor: color ?? Colors.green, + onTap: (snack) { + Get.closeAllSnackbars(); + }, + //overlayBlur: 0.8, + message: message, + ); + } + + static showCustomErrorToast( + {String? title, + required String message, + Color? color, + Duration? duration}) { + Get.rawSnackbar( + title: title, + duration: duration ?? const Duration(milliseconds: 1500), + snackStyle: SnackStyle.GROUNDED, + backgroundColor: color ?? Colors.redAccent, + onTap: (snack) { + Get.closeAllSnackbars(); + }, + // overlayBlur: 0.8, + message: message, + ); + } +} diff --git a/lib/app/data/local/my_shared_pref.dart b/lib/app/data/local/my_shared_pref.dart index 997796a..a6a8b2e 100644 --- a/lib/app/data/local/my_shared_pref.dart +++ b/lib/app/data/local/my_shared_pref.dart @@ -14,6 +14,7 @@ class MySharedPref { // STORING KEYS static const String _fcmTokenKey = 'fcm_token'; + static const String _currentLocalKey = 'current_local'; static const String _lightThemeKey = 'is_theme_light'; diff --git a/lib/app/routes/app_pages.dart b/lib/app/routes/app_pages.dart index a01ab81..04dc812 100644 --- a/lib/app/routes/app_pages.dart +++ b/lib/app/routes/app_pages.dart @@ -20,7 +20,7 @@ part 'app_routes.dart'; class AppPages { AppPages._(); - static const INITIAL = Routes.NAV; + static const NAV = Routes.NAV; static const HOME = Routes.HOME; static final routes = [ diff --git a/lib/app/service/api_exceptions.dart b/lib/app/service/api_exceptions.dart index 8866f05..922f5d4 100644 --- a/lib/app/service/api_exceptions.dart +++ b/lib/app/service/api_exceptions.dart @@ -12,9 +12,6 @@ class DioExceptions implements Exception { case DioErrorType.connectionTimeout: message = Strings.connectionTimeout.tr; break; - case DioErrorType.connectionError: - message = Strings.connectionProblem.tr; - break; case DioErrorType.receiveTimeout: message = Strings.receiveTimeout.tr; break; @@ -26,7 +23,7 @@ class DioExceptions implements Exception { message = Strings.sendTimeout.tr; break; case DioErrorType.unknown: - message = Strings.somethingWrong.tr; + message = Strings.connectionProblem.tr; break; default: message = Strings.somethingWrong.tr; diff --git a/lib/app/service/base_controller.dart b/lib/app/service/base_controller.dart index 4e9307c..aed6b82 100644 --- a/lib/app/service/base_controller.dart +++ b/lib/app/service/base_controller.dart @@ -7,10 +7,11 @@ import 'helper/dialog_helper.dart'; class BaseController { RxBool isError = false.obs; + void handleError(error) { isError.value = true; hideLoading(); - +/**/ var errorText = DioExceptions.fromDioError(error).toString(); showErrorDialog(Strings.oops.tr, errorText); diff --git a/lib/app/service/helper/api_header.dart b/lib/app/service/helper/api_header.dart index fbe6b1a..8baedc7 100644 --- a/lib/app/service/helper/api_header.dart +++ b/lib/app/service/helper/api_header.dart @@ -17,7 +17,7 @@ class Header { 'Content-Type': 'multipart/form-data', }; - // SECURE HEADER + // SECURE MULTIPART HEADER static Map secureMultipartHeader = { "Authorization": "Bearer 'token'", 'Accept': 'application/json', diff --git a/lib/main.dart b/lib/main.dart index 0f28337..8b82e5d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -40,7 +40,7 @@ Future main() async { }, initialRoute: - AppPages.INITIAL, // first screen to show when app is running + AppPages.NAV, // first screen to show when app is running getPages: AppPages.routes, // app screens locale: MySharedPref.getCurrentLocal(), // app language translations: diff --git a/lib/utils/constants.dart b/lib/utils/constants.dart index 260239d..9bda30c 100644 --- a/lib/utils/constants.dart +++ b/lib/utils/constants.dart @@ -1,3 +1,4 @@ class AppImages { static String get kAppIcon => 'assets/images/app_icon.png'; + static String get kEmail => 'assets/images/email.png'; } diff --git a/pubspec.lock b/pubspec.lock index d0663c3..ab82832 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,26 +5,26 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "98d1d33ed129b372846e862de23a0fc365745f4d7b5e786ce667fcbbb7ac5c07" + sha256: a36ec4843dc30ea6bf652bf25e3448db6c5e8bcf4aa55f063a5d1dad216d8214 url: "https://pub.dev" source: hosted - version: "55.0.0" + version: "58.0.0" _flutterfire_internals: dependency: transitive description: name: _flutterfire_internals - sha256: cb3a948a1eebbf8efd987c43f95418269930e912a88bc7b6a5a7658423133635 + sha256: f175bc1414e4edf8c5b83372c98eeabecf8353f39c9da423c2cfdf1f1f508788 url: "https://pub.dev" source: hosted - version: "1.0.17" + version: "1.1.0" analyzer: dependency: transitive description: name: analyzer - sha256: "881348aed9b0b425882c97732629a6a31093c8ff20fc4b3b03fb9d3d50a3a126" + sha256: cc4242565347e98424ce9945c819c192ec0838cb9d1f6aa4a97cc96becbc5b27 url: "https://pub.dev" source: hosted - version: "5.7.1" + version: "5.10.0" archive: dependency: transitive description: @@ -213,18 +213,18 @@ packages: dependency: transitive description: name: dart_style - sha256: "5be16bf1707658e4c03078d4a9b90208ded217fb02c163e207d334082412f2fb" + sha256: "6d691edde054969f0e0f26abb1b30834b5138b963793e56f69d3a9a4435e6352" url: "https://pub.dev" source: hosted - version: "2.2.5" + version: "2.3.0" dio: dependency: "direct main" description: name: dio - sha256: "2644a9e0965a7aa3deb09cb8ce4081db4450c178f472818c8cd34216a3070d7b" + sha256: "0894a098594263fe1caaba3520e3016d8a855caeb010a882273189cca10f11e9" url: "https://pub.dev" source: hosted - version: "5.0.2" + version: "5.1.1" expandable_text: dependency: "direct main" description: @@ -261,58 +261,58 @@ packages: dependency: "direct main" description: name: file_picker - sha256: d090ae03df98b0247b82e5928f44d1b959867049d18d73635e2e0bc3f49542b9 + sha256: "0d923fb610d0abf67f2149c3a50ef85f78bebecfc4d645719ca70bcf4abc788f" url: "https://pub.dev" source: hosted - version: "5.2.5" + version: "5.2.7" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "1c121a478af23755b0b93fd4aa70d3bd32a587dd51ef0a3979091ac0d2317d32" + sha256: ed611fb8e67e43ecc7956f242cecca383d87cf71aace27287aa5dd4bdba4ac07 url: "https://pub.dev" source: hosted - version: "2.7.1" + version: "2.9.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: "5615b30c36f55b2777d0533771deda7e5730e769e5d3cb7fda79e9bed86cfa55" + sha256: "0df0a064ab0cad7f8836291ca6f3272edd7b83ad5b3540478ee46a0849d8022b" url: "https://pub.dev" source: hosted - version: "4.5.3" + version: "4.6.0" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: "0c1cf1f1022d2245ac117443bb95207952ca770281524d2908e323bc063fb8ff" + sha256: "347351a8f0518f3343d79a9a0690fa67ad232fc32e2ea270677791949eac792b" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.3.0" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: f9618051d56256ce9bf1d620bdb0920c37ce43ecc7d587a888f9116506f8a21b + sha256: e4a5eb079aa9e7bd6b5fb2681f2bb8a6c78f87aacbf1c732c6ce91ad71e595ba url: "https://pub.dev" source: hosted - version: "14.2.6" + version: "14.4.0" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: c093ecf902ba4e073307b52f0d5ae87e72725daf467b94b4058b181fc21bbdd1 + sha256: "3a007c888e3414c9e4f7c35ea6fa59eafc623c62ee36155710563a1ebc160063" url: "https://pub.dev" source: hosted - version: "4.2.15" + version: "4.3.0" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "8d084efb76d3c6a7f0e56ce5145f88963db1b49674a9b27cdf3daa237cd8468c" + sha256: a3239662b91b652cea4ce3b3ecac6cccbaebc1b4ac3101224bef805de4195fbf url: "https://pub.dev" source: hosted - version: "3.2.16" + version: "3.3.0" fixnum: dependency: transitive description: @@ -355,6 +355,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.0+1" + flutter_otp_text_field: + dependency: "direct main" + description: + name: flutter_otp_text_field + sha256: c9164ba391071fb9783698256ddbb9efc960cfed056d843db164711c65b1b114 + url: "https://pub.dev" + source: hosted + version: "1.1.1" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -571,10 +579,10 @@ packages: dependency: "direct main" description: name: lottie - sha256: "49bbc544e44bf0c734ccda29b182e3516a12f5021ea98b206cf31a168b0f97da" + sha256: "14b489bf93af84727a07c87c73580a9413f9cbffa4ea2342f3f71447a674a3fb" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.1" matcher: dependency: transitive description: @@ -611,10 +619,10 @@ packages: dependency: "direct dev" description: name: mockito - sha256: "2a8a17b82b1bde04d514e75d90d634a0ac23f6cb4991f6098009dd56836aeafe" + sha256: dd61809f04da1838a680926de50a9e87385c1de91c6579629c3d1723946e8059 url: "https://pub.dev" source: hosted - version: "5.3.2" + version: "5.4.0" package_config: dependency: transitive description: @@ -635,10 +643,10 @@ packages: dependency: transitive description: name: path_provider - sha256: "04890b994ee89bfa80bf3080bfec40d5a92c5c7a785ebb02c13084a099d2b6f9" + sha256: c7edf82217d4b2952b2129a61d3ad60f1075b9299e629e149a8d2e39c2e6aad4 url: "https://pub.dev" source: hosted - version: "2.0.13" + version: "2.0.14" path_provider_android: dependency: transitive description: @@ -651,10 +659,10 @@ packages: dependency: transitive description: name: path_provider_foundation - sha256: "026b97a6c29da75181a37aae2eba9227f5fe13cb2838c6b975ce209328b8ab4e" + sha256: "818b2dc38b0f178e0ea3f7cf3b28146faab11375985d815942a68eee11c2d0f7" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.2.1" path_provider_linux: dependency: transitive description: @@ -747,58 +755,58 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: ee6257848f822b8481691f20c3e6d2bfee2e9eccb2a3d249907fcfb198c55b41 + sha256: "858aaa72d8f61637d64e776aca82e1c67e6d9ee07979123c5d17115031c1b13b" url: "https://pub.dev" source: hosted - version: "2.0.18" + version: "2.1.0" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: ad423a80fe7b4e48b50d6111b3ea1027af0e959e49d485712e134863d9c1c521 + sha256: "8304d8a1f7d21a429f91dee552792249362b68a331ac5c3c1caf370f658873f6" url: "https://pub.dev" source: hosted - version: "2.0.17" + version: "2.1.0" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "1e755f8583229f185cfca61b1d80fb2344c9d660e1c69ede5450d8f478fa5310" + sha256: cf2a42fb20148502022861f71698db12d937c7459345a1bdaa88fc91a91b3603 url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.2.0" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: "3a59ed10890a8409ad0faad7bb2957dab4b92b8fbe553257b05d30ed8af2c707" + sha256: "9d387433ca65717bbf1be88f4d5bb18f10508917a8fa2fb02e0fd0d7479a9afa" url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.2.0" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: "824bfd02713e37603b2bdade0842e47d56e7db32b1dcdd1cae533fb88e2913fc" + sha256: fb5cf25c0235df2d0640ac1b1174f6466bd311f621574997ac59018a6664548d url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.2.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: "0dc2633f215a3d4aa3184c9b2c5766f4711e4e5a6b256e62aafee41f89f1bfb8" + sha256: "74083203a8eae241e0de4a0d597dbedab3b8fef5563f33cf3c12d7e93c655ca5" url: "https://pub.dev" source: hosted - version: "2.0.6" + version: "2.1.0" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: "71bcd669bb9cdb6b39f22c4a7728b6d49e934f6cba73157ffa5a54f1eed67436" + sha256: "5e588e2efef56916a3b229c3bfe81e6a525665a454519ca51dbcc4236a274173" url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.2.0" shelf: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 54c9cc3..ab7ca87 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -28,6 +28,7 @@ dependencies: file_picker: ^5.2.2 lottie: ^2.0.0 ionicons: ^0.2.2 + flutter_otp_text_field: ^1.1.0 flutter: sdk: flutter @@ -36,6 +37,7 @@ dependencies: + dev_dependencies: mockito: flutter_lints: