diff --git a/lib/core/utils/secure/secure_storage_service.dart b/lib/core/utils/secure/secure_storage_service.dart index e0dc670..e00540a 100644 --- a/lib/core/utils/secure/secure_storage_service.dart +++ b/lib/core/utils/secure/secure_storage_service.dart @@ -1,4 +1,5 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:shared_preferences/shared_preferences.dart'; class SecureStorageService { final FlutterSecureStorage _storage = const FlutterSecureStorage( @@ -19,3 +20,21 @@ class SecureStorageService { await _storage.delete(key: key); } } + +class SharedPreferenceLocalData { + Future write(String key, String value) async { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + + await prefs.setString(key, value); + } + + Future read(String key) async { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + + return prefs.getString(key); + } + + // Future delete(String key) async { + // await _storage.delete(key: key); + // } +} diff --git a/lib/features/biometric/bloc/biometric_bloc.dart b/lib/features/biometric/bloc/biometric_bloc.dart index bd03792..0ef2eda 100644 --- a/lib/features/biometric/bloc/biometric_bloc.dart +++ b/lib/features/biometric/bloc/biometric_bloc.dart @@ -13,7 +13,7 @@ import 'biometric_state.dart'; class BiometricBloc extends Bloc { final LocalAuthentication localAuthentication; - final SecureStorageService secureStorageService; + final SharedPreferenceLocalData secureStorageService; BiometricBloc(this.localAuthentication, this.secureStorageService) : super(BiometricInitial()) { diff --git a/lib/features/biometric/presentation/pages/biometric_layout.dart b/lib/features/biometric/presentation/pages/biometric_layout.dart index bc623ee..a388522 100644 --- a/lib/features/biometric/presentation/pages/biometric_layout.dart +++ b/lib/features/biometric/presentation/pages/biometric_layout.dart @@ -19,7 +19,8 @@ class BiometricLayout extends StatelessWidget { @override Widget build(BuildContext context) { - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); String biometricImage = ""; if (Platform.isIOS) { biometricImage = AppImages.biometricFace; diff --git a/lib/features/changePassword/bloc/change_password_bloc.dart b/lib/features/changePassword/bloc/change_password_bloc.dart index 4e4a9ad..92dc543 100644 --- a/lib/features/changePassword/bloc/change_password_bloc.dart +++ b/lib/features/changePassword/bloc/change_password_bloc.dart @@ -31,8 +31,8 @@ class ChangePasswordBloc emit(ChangePasswordLoading()); try { Map dataForm = { - "oldPassword": event.currentPassword, - "newPassword": event.password, + "oldPassword": event.password, + "newPassword": event.currentPassword, "confirmNewPassword": event.repeatPassword, }; ResponseData response = diff --git a/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_bloc.dart b/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_bloc.dart index f26425b..4d68dda 100644 --- a/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_bloc.dart +++ b/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_bloc.dart @@ -11,7 +11,7 @@ import 'restore_password_phone_verification_state.dart'; class RestorePasswordPhoneVerificationBloc extends Bloc< RestorePasswordPhoneVerificationEvent, RestorePasswordPhoneVerificationState> { - final SecureStorageService secureStorageService; + final SharedPreferenceLocalData secureStorageService; String isdcode = ""; String countryId = ""; @@ -33,16 +33,16 @@ class RestorePasswordPhoneVerificationBloc extends Bloc< emit(RestorePasswordPhoneVerificationLoading()); try { Map dataForm = { - "countryId": event.id, - "phoneNumber": event.phoneNumber + "ISDcode": event.countryISDCode, + "mobileNumber": event.phoneNumber }; ResponseData response = await ForgotPasswordApi().forgotPasswordApi(dataForm); if (response.status == ResponseStatus.SUCCESS) { var data = response.data["data"]; - await secureStorageService.write('temp_token', data["token"]); - Globalconst.token = data["token"]; + await secureStorageService.write('temp_token', data); + Globalconst.token = data; emit(RestorePasswordPhoneVerificationSuccess()); } else { emit(RestorePasswordPhoneVerificationFailure(response.message)); diff --git a/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_event.dart b/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_event.dart index 6045c2d..49d048b 100644 --- a/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_event.dart +++ b/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_event.dart @@ -12,11 +12,13 @@ class RestorePasswordPhoneVerificationSubmitted final String phoneNumber; final String countryResidence; final String id; + final String countryISDCode; const RestorePasswordPhoneVerificationSubmitted( this.phoneNumber, this.countryResidence, this.id, + this.countryISDCode, ); @override diff --git a/lib/features/forgotPassword/presentation/pages/restore_password_phone_verification_screen.dart b/lib/features/forgotPassword/presentation/pages/restore_password_phone_verification_screen.dart index ceac93f..0b33712 100644 --- a/lib/features/forgotPassword/presentation/pages/restore_password_phone_verification_screen.dart +++ b/lib/features/forgotPassword/presentation/pages/restore_password_phone_verification_screen.dart @@ -12,7 +12,8 @@ class RestorePasswordPhoneVerificationScreen extends StatelessWidget { @override Widget build(BuildContext context) { - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); final radioBloc = context.read(); return WillPopScope( onWillPop: () async { diff --git a/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_bottom_section.dart b/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_bottom_section.dart index ba1f62d..2474ba3 100644 --- a/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_bottom_section.dart +++ b/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_bottom_section.dart @@ -80,7 +80,8 @@ class RestorePasswordPhoneVerificationBottomSection extends StatelessWidget { .phoneNumberTextField .text, "", - restorePasswordBloc.countryId), + restorePasswordBloc.countryId, + restorePasswordBloc.isdcode), ) : null; }, diff --git a/lib/features/languageChange/presentation/widgets/bottom_section.dart b/lib/features/languageChange/presentation/widgets/bottom_section.dart index 1782018..e00ddae 100644 --- a/lib/features/languageChange/presentation/widgets/bottom_section.dart +++ b/lib/features/languageChange/presentation/widgets/bottom_section.dart @@ -22,7 +22,8 @@ import '../bloc/text_bloc/text_event.dart'; Widget bottomSection(BuildContext context) { var localizations = AppLocalizations.of(context); final radioBloc = context.read(); - SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); return Column( mainAxisSize: MainAxisSize.min, children: [ diff --git a/lib/features/languageChange/presentation/widgets/language_change_list.dart b/lib/features/languageChange/presentation/widgets/language_change_list.dart index ff75707..23d7785 100644 --- a/lib/features/languageChange/presentation/widgets/language_change_list.dart +++ b/lib/features/languageChange/presentation/widgets/language_change_list.dart @@ -14,7 +14,8 @@ class CountrySelectionList extends StatelessWidget { @override Widget build(BuildContext context) { - SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); final radioBloc = context.read(); _initializeLanguageSelection(radioBloc, secureStorageService); @@ -51,9 +52,9 @@ class CountrySelectionList extends StatelessWidget { } void _initializeLanguageSelection(ChooseLanguageBloc radioBloc, - SecureStorageService secureStorageService) async { + SharedPreferenceLocalData secureStorageService) async { String languageSelected = - (await secureStorageService.read("languageSelected")) ?? ""; + await (secureStorageService.read("languageSelected")) ?? ""; if (languageSelected.isEmpty) { radioBloc.add(const ChooseLanguageSelected(0)); diff --git a/lib/features/login/presentation/bloc/login_bloc.dart b/lib/features/login/presentation/bloc/login_bloc.dart index 7b812f4..d00a610 100644 --- a/lib/features/login/presentation/bloc/login_bloc.dart +++ b/lib/features/login/presentation/bloc/login_bloc.dart @@ -9,7 +9,7 @@ import 'login_event.dart'; import 'login_state.dart'; class LoginBloc extends Bloc { - final SecureStorageService secureStorageService; + final SharedPreferenceLocalData secureStorageService; final GlobalKey formKey = GlobalKey(); final TextEditingController countrySelectionTextField = TextEditingController(); diff --git a/lib/features/login/presentation/pages/login_screen.dart b/lib/features/login/presentation/pages/login_screen.dart index 381f5ad..96370c7 100644 --- a/lib/features/login/presentation/pages/login_screen.dart +++ b/lib/features/login/presentation/pages/login_screen.dart @@ -14,7 +14,8 @@ class LoginScreen extends StatelessWidget { @override Widget build(BuildContext context) { - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); final radioBloc = context.read(); return WillPopScope( diff --git a/lib/features/login/presentation/widgets/bottom_section.dart b/lib/features/login/presentation/widgets/bottom_section.dart index c2368cc..c4cd89b 100644 --- a/lib/features/login/presentation/widgets/bottom_section.dart +++ b/lib/features/login/presentation/widgets/bottom_section.dart @@ -28,7 +28,8 @@ class BottomSection extends StatelessWidget { @override Widget build(BuildContext context) { var localizations = AppLocalizations.of(context); - SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); final radioBloc = context.read(); var loginbloc = context.read(); return Column( diff --git a/lib/features/otpVerification/presentation/bloc/otp_bloc.dart b/lib/features/otpVerification/presentation/bloc/otp_bloc.dart index 58c78d3..8806890 100644 --- a/lib/features/otpVerification/presentation/bloc/otp_bloc.dart +++ b/lib/features/otpVerification/presentation/bloc/otp_bloc.dart @@ -10,7 +10,7 @@ import 'otp_event.dart'; import 'otp_state.dart'; class OtpBloc extends Bloc { - final SecureStorageService secureStorageService; + final SharedPreferenceLocalData secureStorageService; final TextEditingController otpController = TextEditingController(); OtpBloc({required this.secureStorageService}) : super(OtpInitial()) { on(_onStartListeningForOtp); diff --git a/lib/features/otpVerification/presentation/pages/otp_screen.dart b/lib/features/otpVerification/presentation/pages/otp_screen.dart index 416ed16..a1a26c9 100644 --- a/lib/features/otpVerification/presentation/pages/otp_screen.dart +++ b/lib/features/otpVerification/presentation/pages/otp_screen.dart @@ -20,7 +20,8 @@ class OtpScreen extends StatelessWidget { @override Widget build(BuildContext context) { - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); return Scaffold( backgroundColor: AppColor.plainWhite, resizeToAvoidBottomInset: true, diff --git a/lib/features/otpVerification/presentation/widgets/resend_otp_section.dart b/lib/features/otpVerification/presentation/widgets/resend_otp_section.dart index 33deb12..27c884e 100644 --- a/lib/features/otpVerification/presentation/widgets/resend_otp_section.dart +++ b/lib/features/otpVerification/presentation/widgets/resend_otp_section.dart @@ -24,7 +24,8 @@ class ResendOtpSection extends StatelessWidget { Widget build(BuildContext context) { String token = ""; getToken() async { - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); token = await secureStorageService.read('temp_token') ?? ""; } diff --git a/lib/features/register/presentation/bloc/register_bloc.dart b/lib/features/register/presentation/bloc/register_bloc.dart index baefc63..e204887 100644 --- a/lib/features/register/presentation/bloc/register_bloc.dart +++ b/lib/features/register/presentation/bloc/register_bloc.dart @@ -8,7 +8,7 @@ import 'register_event.dart'; import 'register_state.dart'; class RegisterBloc extends Bloc { - final SecureStorageService secureStorageService; + final SharedPreferenceLocalData secureStorageService; final GlobalKey formKey = GlobalKey(); final TextEditingController countrySelectionTextField = TextEditingController(); diff --git a/lib/features/register/presentation/bloc/register_user_bloc.dart b/lib/features/register/presentation/bloc/register_user_bloc.dart index 0044e8d..031a71d 100644 --- a/lib/features/register/presentation/bloc/register_user_bloc.dart +++ b/lib/features/register/presentation/bloc/register_user_bloc.dart @@ -8,7 +8,7 @@ import 'register_user_event.dart'; import 'register_user_state.dart'; class RegisterUserBloc extends Bloc { - final SecureStorageService secureStorageService; + final SharedPreferenceLocalData secureStorageService; final GlobalKey formKey = GlobalKey(); final TextEditingController firstNameTextField = TextEditingController(); final TextEditingController lastNameTextField = TextEditingController(); @@ -47,7 +47,7 @@ class RegisterUserBloc extends Bloc { await RegisterAPIService().RegisterRequest(registerdata); if (response.status == ResponseStatus.SUCCESS) { var data = response.data["data"]; - secureStorageService.write("temp_token", data["token"].toString()); + secureStorageService.write("temp_token", data.toString()); emit(RegisterUserSuccess()); } else { emit(RegisterUserFailure(response.message)); diff --git a/lib/features/register/presentation/pages/register_screen.dart b/lib/features/register/presentation/pages/register_screen.dart index ad504a1..fbfc1de 100644 --- a/lib/features/register/presentation/pages/register_screen.dart +++ b/lib/features/register/presentation/pages/register_screen.dart @@ -12,7 +12,8 @@ class RegisterScreen extends StatelessWidget { @override Widget build(BuildContext context) { - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); final radioBloc = context.read(); return WillPopScope( onWillPop: () async { diff --git a/lib/features/register/presentation/pages/register_user_details_screen.dart b/lib/features/register/presentation/pages/register_user_details_screen.dart index a00307b..85d1043 100644 --- a/lib/features/register/presentation/pages/register_user_details_screen.dart +++ b/lib/features/register/presentation/pages/register_user_details_screen.dart @@ -14,7 +14,8 @@ class RegisterUserDetailsScreen extends StatelessWidget { @override Widget build(BuildContext context) { - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); return Scaffold( backgroundColor: AppColor.plainWhite, resizeToAvoidBottomInset: true, diff --git a/lib/features/register/presentation/widgets/register_user_bottom_section.dart b/lib/features/register/presentation/widgets/register_user_bottom_section.dart index 5015719..98de02b 100644 --- a/lib/features/register/presentation/widgets/register_user_bottom_section.dart +++ b/lib/features/register/presentation/widgets/register_user_bottom_section.dart @@ -33,7 +33,8 @@ class RegisterUserBottomSection extends StatelessWidget { Widget build(BuildContext context) { String token = ""; getToken() async { - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); token = await secureStorageService.read("temp_token") ?? ""; } diff --git a/lib/features/securePin/presentation/bloc/pin_bloc.dart b/lib/features/securePin/presentation/bloc/pin_bloc.dart index a1e1fa1..2f8512e 100644 --- a/lib/features/securePin/presentation/bloc/pin_bloc.dart +++ b/lib/features/securePin/presentation/bloc/pin_bloc.dart @@ -11,8 +11,7 @@ part 'pin_event.dart'; part 'pin_state.dart'; class PinBloc extends Bloc { - final SecureStorageService secureStorageService; - + final SharedPreferenceLocalData secureStorageService; PinBloc({required this.secureStorageService}) : super(const PinState( pin: '', diff --git a/lib/features/securePin/presentation/pages/confirm_pin_screen.dart b/lib/features/securePin/presentation/pages/confirm_pin_screen.dart index 2d0386f..0edad74 100644 --- a/lib/features/securePin/presentation/pages/confirm_pin_screen.dart +++ b/lib/features/securePin/presentation/pages/confirm_pin_screen.dart @@ -15,7 +15,8 @@ class ConfirmPinScreen extends StatelessWidget { @override Widget build(BuildContext context) { var localizations = AppLocalizations.of(context); - final secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); return Scaffold( backgroundColor: AppColor.plainWhite, appBar: AppBarWidget( diff --git a/lib/features/securePin/presentation/pages/pin_screen.dart b/lib/features/securePin/presentation/pages/pin_screen.dart index 580f196..87c6d54 100644 --- a/lib/features/securePin/presentation/pages/pin_screen.dart +++ b/lib/features/securePin/presentation/pages/pin_screen.dart @@ -17,7 +17,8 @@ class PinScreen extends StatelessWidget { @override Widget build(BuildContext context) { var localizations = AppLocalizations.of(context); - final secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); return WillPopScope( onWillPop: () async { if (fromScreen == "login" || diff --git a/lib/features/securePin/presentation/widgets/confirm_pin_keypad_section.dart b/lib/features/securePin/presentation/widgets/confirm_pin_keypad_section.dart index fbf0fc7..9281629 100644 --- a/lib/features/securePin/presentation/widgets/confirm_pin_keypad_section.dart +++ b/lib/features/securePin/presentation/widgets/confirm_pin_keypad_section.dart @@ -19,7 +19,8 @@ class ConfirmPinKey extends StatelessWidget { @override Widget build(BuildContext context) { var localizations = AppLocalizations.of(context); - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); return Column( children: [ const Gap(20), diff --git a/lib/features/splash/presentation/pages/splash_screen.dart b/lib/features/splash/presentation/pages/splash_screen.dart index 12a3ea1..53d8cbf 100644 --- a/lib/features/splash/presentation/pages/splash_screen.dart +++ b/lib/features/splash/presentation/pages/splash_screen.dart @@ -20,7 +20,8 @@ class SplashScreen extends StatelessWidget { @override Widget build(BuildContext context) { - SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); return Scaffold( backgroundColor: AppColor.plainWhite, diff --git a/lib/main.dart b/lib/main.dart index e88ccad..118c07c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -63,7 +63,8 @@ class MyApp extends StatefulWidget { } class _MyAppState extends State with WidgetsBindingObserver { - SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); final NetworkConnectivity _networkConnectivity = NetworkConnectivity(onStatusChange: (_) {}); String languageSelected = ""; diff --git a/lib/shared/api/network_api_services.dart b/lib/shared/api/network_api_services.dart index 830b1a0..004bc38 100644 --- a/lib/shared/api/network_api_services.dart +++ b/lib/shared/api/network_api_services.dart @@ -9,7 +9,8 @@ import '../../Api_Helper/base_manager.dart'; import '../../core/utils/secure/secure_storage_service.dart'; class NetworkApiService { - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); final Dio _dio = Dio(BaseOptions( validateStatus: (status) { diff --git a/lib/shared/components/bloc/toggle/toggle_bloc.dart b/lib/shared/components/bloc/toggle/toggle_bloc.dart index 5c22f5e..521a3f2 100644 --- a/lib/shared/components/bloc/toggle/toggle_bloc.dart +++ b/lib/shared/components/bloc/toggle/toggle_bloc.dart @@ -13,7 +13,8 @@ import 'toggle_state.dart'; class ToggleBloc extends Bloc { final String type; - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); ToggleBloc(this.type) : super(ToggleInitial()) { on(_onToggleSwitch); diff --git a/lib/shared/components/device_locked_dialog.dart b/lib/shared/components/device_locked_dialog.dart index 9e4bdfc..a36adcc 100644 --- a/lib/shared/components/device_locked_dialog.dart +++ b/lib/shared/components/device_locked_dialog.dart @@ -19,7 +19,8 @@ deviceLockedDialog( context, ) { var localizations = AppLocalizations.of(context); - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); return showDialog( barrierDismissible: false, context: context, diff --git a/lib/shared/components/forgot_password_log_out_dialog.dart b/lib/shared/components/forgot_password_log_out_dialog.dart index 400beb9..a99350d 100644 --- a/lib/shared/components/forgot_password_log_out_dialog.dart +++ b/lib/shared/components/forgot_password_log_out_dialog.dart @@ -15,7 +15,8 @@ import 'text_widget.dart'; forgotPasswordlogoutdialog(context) { var localizations = AppLocalizations.of(context); - SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); return showDialog( context: context, builder: (context) => Column( diff --git a/lib/shared/components/language_change_bottom_sheet.dart b/lib/shared/components/language_change_bottom_sheet.dart index 990b262..cc9866a 100644 --- a/lib/shared/components/language_change_bottom_sheet.dart +++ b/lib/shared/components/language_change_bottom_sheet.dart @@ -13,7 +13,8 @@ import 'bloc/language/lng_bloc.dart'; import 'bloc/language/lng_event.dart'; void showLanguageBottomSheet(BuildContext context) { - final SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); showModalBottomSheet( backgroundColor: Colors.transparent, context: context, diff --git a/lib/shared/components/log_out_dialog.dart b/lib/shared/components/log_out_dialog.dart index 1502f9e..fab2d85 100644 --- a/lib/shared/components/log_out_dialog.dart +++ b/lib/shared/components/log_out_dialog.dart @@ -15,7 +15,8 @@ import 'text_widget.dart'; buildprofilelogoutdialog(context) { var localizations = AppLocalizations.of(context); - SecureStorageService secureStorageService = SecureStorageService(); + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); return showDialog( context: context, builder: (context) => Column( diff --git a/lib/shared/components/permission_dialog.dart b/lib/shared/components/permission_dialog.dart index 57380c4..f54419c 100644 --- a/lib/shared/components/permission_dialog.dart +++ b/lib/shared/components/permission_dialog.dart @@ -21,8 +21,8 @@ permissionDialog( context, ) { var localizations = AppLocalizations.of(context); - final SecureStorageService secureStorageService = SecureStorageService(); - + final SharedPreferenceLocalData secureStorageService = + SharedPreferenceLocalData(); return showDialog( barrierDismissible: true, context: context,