1+ import 'package:app/errors/flutter_alert_error_presenter.dart' ;
12import 'package:app/errors/flutter_snack_bar_error_presenter.dart' ;
3+ import 'package:app/model/alert_texts.dart' ;
24import 'package:data/data.dart' ;
5+ import 'package:flutter/cupertino.dart' ;
36import 'package:flutter_errors/flutter_errors.dart' ;
47import 'package:injectable/injectable.dart' ;
58
@@ -17,24 +20,54 @@ abstract class ErrorsModule {
1720 return FlutterSnackBarErrorPresenter ();
1821 }
1922
23+ @singleton
24+ FlutterAlertErrorPresenter providesFlutterAlertErrorPresenter () {
25+ return FlutterAlertErrorPresenter ();
26+ }
27+
28+ @singleton
29+ SelectorErrorPresenter providesSelectorErrorPresenter (
30+ FlutterToastErrorPresenter toastErrorPresenter,
31+ FlutterSnackBarErrorPresenter snackBarErrorPresenter,
32+ FlutterAlertErrorPresenter alertErrorPresenter) {
33+ return SelectorErrorPresenter ((e) {
34+ switch (e.runtimeType) {
35+ case FormatException :
36+ return toastErrorPresenter;
37+
38+ case NetworkError :
39+ return alertErrorPresenter;
40+
41+ default :
42+ return snackBarErrorPresenter;
43+ }
44+ });
45+ }
46+
2047 @lazySingleton
21- ExceptionMappers providersGlobalErrors () {
22- return ExceptionMappers ()
23- /*.condition<String>((e) => e is NetworkError && e.error.code == 1,
24- (e) => "My custom error from mapper")*/
48+ ExceptionMapperStorage providersGlobalErrors () {
49+ return ExceptionMapperStorage .instance
2550 .register <NetworkError , String >((e) => "NetworkError registered error" )
2651 .register <FormatException , String >(
27- (e) => "Format Exception registered error" );
52+ (e) => "Format Exception registered error" )
53+ .condition <AlertTexts >(
54+ (e) => (e is NetworkError ) && e.error.code == 1 ,
55+ (e) => AlertTexts (
56+ title: 'NetworkError code error 1' , message: 'error 1 message' ))
57+ .setFallBackValue (AlertTexts (
58+ title: 'Alert default title' , message: 'Alert Default Message' ));
2859 }
2960
3061 @singleton
3162 FlutterExceptionHandlerBinder providerDefaultExceptionHandler (
32- FlutterToastErrorPresenter errorPresenter,
33- ExceptionMappers exceptionMappersStorage) {
34- return FlutterExceptionHandlerBinderImpl <String >(
35- exceptionMappersStorage.throwableMapper (),
36- errorPresenter,
37- FlutterEventsDispatcher (),
38- (Exception e) {});
63+ SelectorErrorPresenter errorPresenter,
64+ ExceptionMapperStorage exceptionMappersStorage) {
65+ return FlutterExceptionHandlerBinderImpl (
66+ exceptionMapperStorage: exceptionMappersStorage.throwableMapper (),
67+ flutterErrorPresenter: errorPresenter,
68+ flutterEventsDispatcher: FlutterEventsDispatcher (),
69+ onCatch: (Exception e) {
70+ debugPrint ("Exception found $e " );
71+ });
3972 }
4073}
0 commit comments