From 3fef1b9d527c7103258904881f6baf54069a3529 Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Sun, 15 Nov 2020 19:30:26 +0300 Subject: [PATCH] theme and login issues fixed --- lib/config/localized_values.dart | 22 +- lib/config/shared_pref_kay.dart | 2 + lib/core/service/client/base_app_client.dart | 2 +- lib/main.dart | 39 +++- lib/pages/login/login-type.dart | 11 +- lib/pages/login/login.dart | 5 + lib/pages/login/register.dart | 48 ++++- lib/pages/settings/general_setting.dart | 171 ++++++++++++++- lib/theme/theme_notifier.dart | 4 +- lib/theme/theme_value.dart | 214 ++++++++++--------- lib/uitl/translations_delegate_base.dart | 2 + lib/widgets/buttons/defaultButton.dart | 2 +- lib/widgets/mobile-no/mobile_no.dart | 16 +- lib/widgets/otp/sms-popup.dart | 13 +- pubspec.yaml | 1 - 15 files changed, 404 insertions(+), 148 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 3d05f41b..7a265b13 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -111,10 +111,13 @@ const Map localizedValues = { 'login': {'en': 'Login', 'ar': 'تسجيل الدخول'}, 'loginregister': {'en': 'Login / Register', 'ar': 'تسجيل الدخول'}, 'poweredBy': {'en': 'Powered By', 'ar': 'مشغل بواسطة'}, - 'welcome': {'en': 'Welcome', 'ar': 'أهلا بك'}, - 'welcome_text': { - 'en': 'Dr. Sulaiman Al Habib Mobile Application ', - 'ar': 'الدكتور سليمان الحبيب لتطبيقات الهاتف المتحرك' + "welcome": { + "en": "Welcome", + "ar": "مرحبا" + }, + "welcome_text": { + "en": "Dr. Sulaiman Al Habib Mobile Application", + "ar": "الدكتور سليمان الحبيب لتطبيقات الهاتف المتحرك" }, 'welcome_text2': { 'en': 'Have you visited AlHabib Medical Group before? ', @@ -127,7 +130,12 @@ const Map localizedValues = { "ar": "اختر من الخيارات أدناه لتسجيل الدخول إلى ملفك الطبي." }, "registernow": {"en": "Register Now", "ar": "تسجيل الان"}, - "nationalID": {"en": "National ID", "ar": "رقم الهوية"}, + "nationalID": { "en": "Enter the Identification Number", + "ar": "أدخل رقم الهوية الوطنية او الاقامة"}, + "national-id": { + "en": "National ID", + "ar": "رقم الهوية" + }, "fileNo": {"en": "File Number", "ar": "رقم الملف"}, "forgotFileNo": {"en": "Forgot file Number?", "ar": "نسيت رقم الملف الطبي؟"}, "forgotFileNoTitle": { @@ -136,8 +144,8 @@ const Map localizedValues = { }, "enter-national-id": { - "en": "Please enter mobile number and national ID / Iqama", - "ar": "الرجاء إدخال رقم الجوال والهوية الوطنية / الاقامة" + "en": "Please enter mobile number and identification number", + "ar": "الرجاء إدخال رقم الجوال ورقم الهوية" }, "profile-info": { "en": "Please enter profile information", diff --git a/lib/config/shared_pref_kay.dart b/lib/config/shared_pref_kay.dart index 7422052d..84c6a36e 100644 --- a/lib/config/shared_pref_kay.dart +++ b/lib/config/shared_pref_kay.dart @@ -16,3 +16,5 @@ const USER_LONG = 'user-long'; const IS_GO_TO_PARKING = 'IS_GO_TO_PARKING'; const IS_SEARCH_APPO = 'is-search-appo'; const IS_LIVECARE_APPOINTMENT = 'is_livecare_appointment'; +const IS_VIBRATION = 'is_vibration'; +const THEME_VALUE = 'is_vibration'; \ No newline at end of file diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index da8b6ad6..d899ea5e 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -33,7 +33,7 @@ class BaseAppClient { //Map profile = await sharedPref.getObj(DOCTOR_PROFILE); String token = await sharedPref.getString(TOKEN); var languageID = - await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'en'); + await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); var user = await sharedPref.getObject(USER_PROFILE); if (body.containsKey('SetupID')) { body['SetupID'] = body.containsKey('SetupID') diff --git a/lib/main.dart b/lib/main.dart index 8678cd83..e6fc0bfa 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -17,12 +17,13 @@ import 'locator.dart'; void main() async { setupLocator(); runApp(ChangeNotifierProvider( - create: (_) => ThemeNotifier(defaultTheme), child: MyApp())); + create: (context) => ThemeNotifier(defaultTheme), child: MyApp() )); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { + final themeNotifier = Provider.of(context); return LayoutBuilder( builder: (context, constraints) { @@ -61,7 +62,41 @@ class MyApp extends StatelessWidget { const Locale('ar', ''), // Arabic const Locale('en', ''), // English ], - theme: themeNotifier.getTheme(), + theme: ThemeData( + fontFamily: projectProvider.isArabic? 'Cairo' : 'WorkSans', + primarySwatch: Colors.blue, + visualDensity: VisualDensity.adaptivePlatformDensity, + brightness: Brightness.light, + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: ZoomPageTransitionsBuilder(), + TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), + }, + ), + hintColor: Colors.grey[400], + disabledColor: Colors.grey[300], + errorColor: Color.fromRGBO(235, 80, 60, 1.0), + scaffoldBackgroundColor: Color(0xffEEEEEE), + textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), + textSelectionHandleColor: Colors.grey, + canvasColor: Colors.white, + backgroundColor: Colors.white, + highlightColor: Colors.grey[100].withOpacity(0.4), + splashColor: Colors.transparent, + primaryColor: Color(0xff40ACC9), + bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), + cursorColor: Colors.grey, + cardColor: Colors.white, + iconTheme: IconThemeData(), + appBarTheme: AppBarTheme( + color: Color(0xff40ACC9), + brightness: Brightness.dark, + elevation: 10.0, + actionsIconTheme: IconThemeData( + color: Color(0xff40ACC9), + ), + ), + ), initialRoute: SPLASH, routes: routes, debugShowCheckedModeBanner: false, diff --git a/lib/pages/login/login-type.dart b/lib/pages/login/login-type.dart index edd1bf3d..dcd58b9d 100644 --- a/lib/pages/login/login-type.dart +++ b/lib/pages/login/login-type.dart @@ -14,7 +14,7 @@ class LoginType extends StatelessWidget { @override Widget build(BuildContext context) { return AppScaffold( - appBarTitle: TranslationBase.of(context).welcome, + appBarTitle: TranslationBase.of(context).login, isShowAppBar: true, isShowDecPage: false, body: Padding( @@ -73,7 +73,7 @@ class LoginType extends StatelessWidget { ), AppText( TranslationBase.of(context) - .nationalID, + .idNo, fontSize: SizeConfig.textMultiplier * 2, @@ -122,6 +122,7 @@ class LoginType extends StatelessWidget { )))) ], ), + SizedBox(height: 25,), Divider( color: Colors.grey, height: 2, @@ -144,8 +145,14 @@ class LoginType extends StatelessWidget { child: Column( mainAxisAlignment: MainAxisAlignment.end, children: [ + Divider( + color: Colors.grey, + height: 2, + ), + SizedBox(height: 10,), Row( children: [ + Expanded( child: DefaultButton( TranslationBase.of(context).registerNow, diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index 8fdbb15e..7d6f24ee 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -117,6 +117,11 @@ class _Login extends State { child: Column( mainAxisAlignment: MainAxisAlignment.end, children: [ + Divider( + color: Colors.grey, + height: 2, + ), + SizedBox(height: 10,), Row( children: [ Expanded( diff --git a/lib/pages/login/register.dart b/lib/pages/login/register.dart index 03e7e1ca..eb88c598 100644 --- a/lib/pages/login/register.dart +++ b/lib/pages/login/register.dart @@ -8,11 +8,13 @@ import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; +import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart'; +import 'package:diplomaticquarterapp/widgets/dialogs/alert_dialog.dart'; import 'package:diplomaticquarterapp/widgets/input/text_field.dart'; import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; @@ -46,9 +48,7 @@ class _Register extends State { appBarTitle: TranslationBase.of(context).register, isShowAppBar: true, isShowDecPage: false, - body: isLoading == true - ? AppCircularProgressIndicator() - : SingleChildScrollView( + body: SingleChildScrollView( child: Container( padding: EdgeInsets.only(top: 10, left: 20, right: 20, bottom: 30), @@ -120,8 +120,12 @@ class _Register extends State { ), ], ), - Row(children: [ - Expanded( + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Container( + width: SizeConfig.realScreenWidth * .9, + height:60, child: isHijri == 1 ? TextFields( onChanged: (value) => {dob = value}, @@ -129,6 +133,11 @@ class _Register extends State { prefixIcon: Icon(Icons.date_range), ) : RaisedButton.icon( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15.0), + + ), + color:Colors.white, onPressed: () => { if (isHijri != null) _selectDate(context) @@ -147,6 +156,11 @@ class _Register extends State { child: Column( mainAxisAlignment: MainAxisAlignment.end, children: [ + Divider( + color: Colors.grey, + height: 2, + ), + SizedBox(height: 10,), Row( children: [ Expanded( @@ -196,7 +210,7 @@ class _Register extends State { } checkPatientForRegisteration(request) { - showLoader(true); + GifLoaderDialogUtils.showMyDialog(context); this .authService .checkPatientForRegisteration(request) @@ -219,12 +233,20 @@ class _Register extends State { } checkUserStatus(response, CheckPatientForRegistration request) async { - showLoader(false); + GifLoaderDialogUtils.hideDialog(context); if (response is Map) { var nRequest = request.toJson(); nRequest['LogInTokenID'] = response['LogInTokenID']; if (response['hasFile'] == true) { - AppToast.showErrorToast(message: response['ErrorEndUserMessage']); + // AppToast.showErrorToast(message: response['ErrorEndUserMessage']); + AlertDialogBox( + context: context, + confirmMessage: response['ErrorEndUserMessage'], + okText: TranslationBase.of(context).ok, + okFunction: () { + AlertDialogBox.closeAlertDialog(context); + Navigator.of(context).pop(); + }).showAlertDialog(context); } else { nRequest['forRegister'] = true; nRequest['isRegister'] = true; @@ -236,7 +258,15 @@ class _Register extends State { } } else { // if (response['ErrorCode'] == '-986') { - AppToast.showErrorToast(message: response); + //AppToast.showErrorToast(message: response); + AlertDialogBox( + context: context, + confirmMessage: response, + okText: TranslationBase.of(context).ok, + okFunction: () { + AlertDialogBox.closeAlertDialog(context); + Navigator.of(context).pop(); + }).showAlertDialog(context); //} } } diff --git a/lib/pages/settings/general_setting.dart b/lib/pages/settings/general_setting.dart index 275b8748..5e174fbc 100644 --- a/lib/pages/settings/general_setting.dart +++ b/lib/pages/settings/general_setting.dart @@ -1,5 +1,7 @@ +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/theme/theme_notifier.dart'; import 'package:diplomaticquarterapp/theme/theme_value.dart'; +import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; @@ -20,7 +22,16 @@ class _GeneralSettings extends State bool vibration =false; bool accessibility =false; bool camera =false; - bool location =false ; + bool location =false; + var sharedPref = new AppSharedPreferences(); + + @override + void initState() { + getValues(); + super.initState(); + } + + Widget build(BuildContext context) { themeNotifier = Provider.of(context); @@ -46,7 +57,9 @@ class _GeneralSettings extends State onChanged: (value) { setState(() { vibration = value; + }); + setVibration(value); }, activeTrackColor: Colors.lightGreenAccent, activeColor: Colors.green, @@ -212,28 +225,164 @@ class _GeneralSettings extends State ])); } - setTheme(value) { + setTheme(value) async{ switch (value) { case 0: - themeNotifier.setTheme(defaultTheme); - Screen.setBrightness(1.0); + { + themeNotifier.setTheme(await getTheme(value)); + Screen.setBrightness(1.0); + } break; case 1: - themeNotifier.setTheme(invertTheme); - Screen.setBrightness(1.0); + { + themeNotifier.setTheme(await getTheme(value)); + Screen.setBrightness(1.0); + } break; case 2: - //themeNotifier.setTheme(dimTheme); + themeNotifier.setTheme(await getTheme(value)); Screen.setBrightness(0.01); break; case 3: - themeNotifier.setTheme(bwTheme); - Screen.setBrightness(1.0); + { + themeNotifier.setTheme(await getTheme(value)); + Screen.setBrightness(1.0); + } break; default: - themeNotifier.setTheme(defaultTheme); - Screen.setBrightness(1.0); + { + themeNotifier.setTheme(await getTheme(value)); + Screen.setBrightness(1.0); + } break; } + sharedPref.setInt(THEME_VALUE, value); + + } + setVibration(value){ + sharedPref.setBool(IS_VIBRATION, value); + } + + getValues() async{ + blindValue= await sharedPref.getInt(THEME_VALUE) ?? 0; + vibration= await sharedPref.getBool(IS_VIBRATION) ?? false; + } + getTheme(value) async{ + if(value ==1){ + return ThemeData( + fontFamily: await sharedPref.getString(APP_LANGUAGE) == 'ar' ? 'Cairo' : 'WorkSans', + primarySwatch: Colors.grey, + visualDensity: VisualDensity.adaptivePlatformDensity, + brightness: Brightness.light, + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: ZoomPageTransitionsBuilder(), + TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), + }, + ), + hintColor: Colors.grey[400], + cardColor: Colors.black, + buttonColor: Colors.grey[400], + disabledColor: Colors.grey[300], + errorColor: Color.fromRGBO(235, 80, 60, 1.0), + scaffoldBackgroundColor: Colors.grey, + textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), + textSelectionHandleColor: Colors.grey, + canvasColor: Colors.white, + backgroundColor: Colors.grey, + highlightColor: Colors.grey[100].withOpacity(0.4), + splashColor: Colors.transparent, + primaryColor: Colors.grey, + bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), + cursorColor: Colors.grey, + + iconTheme: IconThemeData(), + appBarTheme: AppBarTheme( + color: Colors.grey, + brightness: Brightness.dark, + elevation: 10.0, + actionsIconTheme: IconThemeData( + color: Colors.grey, + ), + ), + ); + + }else if(value ==3){ + return ThemeData( + fontFamily: await sharedPref.getString(APP_LANGUAGE) == 'ar' ? 'Cairo' : 'WorkSans', + primarySwatch: Colors.grey, + visualDensity: VisualDensity.adaptivePlatformDensity, + brightness: Brightness.light, + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: ZoomPageTransitionsBuilder(), + TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), + }, + ), + hintColor: Colors.grey[400], + cardColor: Colors.black, + buttonColor: Colors.grey[400], + disabledColor: Colors.grey[300], + errorColor: Color.fromRGBO(235, 80, 60, 1.0), + scaffoldBackgroundColor: Colors.grey, + textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), + textSelectionHandleColor: Colors.grey, + canvasColor: Colors.white, + backgroundColor: Colors.grey, + highlightColor: Colors.grey[100].withOpacity(0.4), + splashColor: Colors.transparent, + primaryColor: Colors.grey, + bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), + cursorColor: Colors.grey, + + iconTheme: IconThemeData(), + appBarTheme: AppBarTheme( + color: Colors.black45, + brightness: Brightness.dark, + elevation: 10.0, + actionsIconTheme: IconThemeData( + color: Colors.grey, + ), + ), + ); + + }else { + return ThemeData( + fontFamily: await sharedPref.getString(APP_LANGUAGE) == 'ar' ? 'Cairo' : 'WorkSans', + primarySwatch: Colors.blue, + visualDensity: VisualDensity.adaptivePlatformDensity, + brightness: Brightness.light, + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: ZoomPageTransitionsBuilder(), + TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), + }, + ), + hintColor: Colors.grey[400], + disabledColor: Colors.grey[300], + errorColor: Color.fromRGBO(235, 80, 60, 1.0), + scaffoldBackgroundColor: Color(0xffEEEEEE), + textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), + textSelectionHandleColor: Colors.grey, + canvasColor: Colors.white, + backgroundColor: Colors.white, + highlightColor: Colors.grey[100].withOpacity(0.4), + splashColor: Colors.transparent, + primaryColor: Color(0xff40ACC9), + bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), + cursorColor: Colors.grey, + cardColor: Colors.white, + iconTheme: IconThemeData(), + appBarTheme: AppBarTheme( + color: Color(0xff40ACC9), + brightness: Brightness.dark, + elevation: 10.0, + actionsIconTheme: IconThemeData( + color: Color(0xff40ACC9), + ), + ), + ); + + } } } diff --git a/lib/theme/theme_notifier.dart b/lib/theme/theme_notifier.dart index 98e24cf5..e414d159 100644 --- a/lib/theme/theme_notifier.dart +++ b/lib/theme/theme_notifier.dart @@ -1,15 +1,15 @@ +import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:flutter/material.dart'; class ThemeNotifier with ChangeNotifier { ThemeData _themeData = defaultTheme; - ThemeNotifier(this._themeData); - getTheme() => _themeData; setTheme(ThemeData themeData) async { _themeData = themeData; + notifyListeners(); } } diff --git a/lib/theme/theme_value.dart b/lib/theme/theme_value.dart index 703ea8f4..d19e13b2 100644 --- a/lib/theme/theme_value.dart +++ b/lib/theme/theme_value.dart @@ -1,5 +1,8 @@ import 'dart:ui'; import 'package:diplomaticquarterapp/config/config.dart'; +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; +import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -10,114 +13,117 @@ import 'package:provider/provider.dart'; final bluePrimary = Color(0xFF3F51B5); final blueAccent = Color(0xFFFF9800); final blueBackground = Color(0xFFFFFFFF); -final defaultTheme = ThemeData( - // fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans', - primarySwatch: Colors.blue, - visualDensity: VisualDensity.adaptivePlatformDensity, - brightness: Brightness.light, - pageTransitionsTheme: const PageTransitionsTheme( - builders: { - TargetPlatform.android: ZoomPageTransitionsBuilder(), - TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), - }, - ), - hintColor: Colors.grey[400], - disabledColor: Colors.grey[300], - errorColor: Color.fromRGBO(235, 80, 60, 1.0), - scaffoldBackgroundColor: Color(0xffEEEEEE), - textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), - textSelectionHandleColor: Colors.grey, - canvasColor: Colors.white, - backgroundColor: Colors.white, - highlightColor: Colors.grey[100].withOpacity(0.4), - splashColor: Colors.transparent, - primaryColor: Color(0xff40ACC9), - bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), - cursorColor: Colors.grey, - cardColor: Colors.white, - iconTheme: IconThemeData(), - appBarTheme: AppBarTheme( - color: Color(0xff40ACC9), - brightness: Brightness.dark, - elevation: 10.0, - actionsIconTheme: IconThemeData( - color: Color(0xff40ACC9), + +// ProjectViewModel projectProvider = Provider.of(AppGlobal.context); + final bwTheme = ThemeData( + //fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans', + primarySwatch: Colors.grey, + visualDensity: VisualDensity.adaptivePlatformDensity, + brightness: Brightness.light, + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: ZoomPageTransitionsBuilder(), + TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), + }, ), - ), -); + hintColor: Colors.grey[400], + cardColor: Colors.black, + buttonColor: Colors.grey[400], + disabledColor: Colors.grey[300], + errorColor: Color.fromRGBO(235, 80, 60, 1.0), + scaffoldBackgroundColor: Colors.grey, + textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), + textSelectionHandleColor: Colors.grey, + canvasColor: Colors.white, + backgroundColor: Colors.grey, + highlightColor: Colors.grey[100].withOpacity(0.4), + splashColor: Colors.transparent, + primaryColor: Colors.grey, + bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), + cursorColor: Colors.grey, -final invertTheme = ThemeData( - // fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans', - primarySwatch: Colors.grey, - visualDensity: VisualDensity.adaptivePlatformDensity, - brightness: Brightness.light, - pageTransitionsTheme: const PageTransitionsTheme( - builders: { - TargetPlatform.android: ZoomPageTransitionsBuilder(), - TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), - }, - ), - hintColor: Colors.grey[400], - cardColor: Colors.black, - buttonColor: Colors.grey[400], - disabledColor: Colors.grey[300], - errorColor: Color.fromRGBO(235, 80, 60, 1.0), - scaffoldBackgroundColor: Colors.grey, - textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), - textSelectionHandleColor: Colors.grey, - canvasColor: Colors.white, - backgroundColor: Colors.grey, - highlightColor: Colors.grey[100].withOpacity(0.4), - splashColor: Colors.transparent, - primaryColor: Colors.grey, - bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), - cursorColor: Colors.grey, + iconTheme: IconThemeData(), + appBarTheme: AppBarTheme( + color: Colors.black45, + brightness: Brightness.dark, + elevation: 10.0, + actionsIconTheme: IconThemeData( + color: Colors.grey, + ), + ), + ); - iconTheme: IconThemeData(), - appBarTheme: AppBarTheme( - color: Colors.grey, - brightness: Brightness.dark, - elevation: 10.0, - actionsIconTheme: IconThemeData( - color: Colors.grey, + final defaultTheme = ThemeData( + //fontFamily: ProjectViewModel().isArabic? 'Cairo' : 'WorkSans', + primarySwatch: Colors.blue, + visualDensity: VisualDensity.adaptivePlatformDensity, + brightness: Brightness.light, + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: ZoomPageTransitionsBuilder(), + TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), + }, ), - ), -); + hintColor: Colors.grey[400], + disabledColor: Colors.grey[300], + errorColor: Color.fromRGBO(235, 80, 60, 1.0), + scaffoldBackgroundColor: Color(0xffEEEEEE), + textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), + textSelectionHandleColor: Colors.grey, + canvasColor: Colors.white, + backgroundColor: Colors.white, + highlightColor: Colors.grey[100].withOpacity(0.4), + splashColor: Colors.transparent, + primaryColor: Color(0xff40ACC9), + bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), + cursorColor: Colors.grey, + cardColor: Colors.white, + iconTheme: IconThemeData(), + appBarTheme: AppBarTheme( + color: Color(0xff40ACC9), + brightness: Brightness.dark, + elevation: 10.0, + actionsIconTheme: IconThemeData( + color: Color(0xff40ACC9), + ), + ), + ); -final bwTheme = ThemeData( - // fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans', - primarySwatch: Colors.black54, - visualDensity: VisualDensity.adaptivePlatformDensity, - brightness: Brightness.light, - pageTransitionsTheme: const PageTransitionsTheme( - builders: { - TargetPlatform.android: ZoomPageTransitionsBuilder(), - TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), - }, - ), - hintColor: Colors.black54, - cardColor:Colors.black54, - buttonColor: Colors.black54, - disabledColor: Colors.black54, - errorColor: Color.fromRGBO(235, 80, 60, 1.0), - scaffoldBackgroundColor: Colors.black54, - textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), - textSelectionHandleColor: Colors.black54, - canvasColor:Colors.black54, - backgroundColor: Colors.black54, - highlightColor: Colors.grey[100].withOpacity(0.4), - splashColor: Colors.transparent, - primaryColor: Colors.black54, - bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), - cursorColor: Colors.black54, + final invertTheme = ThemeData( + //fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans', + primarySwatch: Colors.grey, + visualDensity: VisualDensity.adaptivePlatformDensity, + brightness: Brightness.light, + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: ZoomPageTransitionsBuilder(), + TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), + }, + ), + hintColor: Colors.grey[400], + cardColor: Colors.black, + buttonColor: Colors.grey[400], + disabledColor: Colors.grey[300], + errorColor: Color.fromRGBO(235, 80, 60, 1.0), + scaffoldBackgroundColor: Colors.grey, + textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), + textSelectionHandleColor: Colors.grey, + canvasColor: Colors.white, + backgroundColor: Colors.grey, + highlightColor: Colors.grey[100].withOpacity(0.4), + splashColor: Colors.transparent, + primaryColor: Colors.grey, + bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), + cursorColor: Colors.grey, - iconTheme: IconThemeData(), - appBarTheme: AppBarTheme( - color: Colors.black54, - brightness: Brightness.dark, - elevation: 10.0, - actionsIconTheme: IconThemeData( - color: Colors.black54, + iconTheme: IconThemeData(), + appBarTheme: AppBarTheme( + color: Colors.grey, + brightness: Brightness.dark, + elevation: 10.0, + actionsIconTheme: IconThemeData( + color: Colors.grey, + ), ), - ), -); + ); + diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index a32f335f..078ce069 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -145,6 +145,8 @@ class TranslationBase { String get nationalID => localizedValues['nationalID'][locale.languageCode]; + String get idNo => localizedValues['national-id'][locale.languageCode]; + String get fileNo => localizedValues['fileNo'][locale.languageCode]; String get forgotPassword => diff --git a/lib/widgets/buttons/defaultButton.dart b/lib/widgets/buttons/defaultButton.dart index bc56f474..228fdce7 100644 --- a/lib/widgets/buttons/defaultButton.dart +++ b/lib/widgets/buttons/defaultButton.dart @@ -15,7 +15,7 @@ class DefaultButton extends StatelessWidget { child: RaisedButton( shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), - color: color != null ? color : Colors.grey[700], + color: color != null ? color : Colors.grey[900], textColor: color != null ? textColor : Colors.white, child: Text( this.text, diff --git a/lib/widgets/mobile-no/mobile_no.dart b/lib/widgets/mobile-no/mobile_no.dart index d3e62153..2bb12a68 100644 --- a/lib/widgets/mobile-no/mobile_no.dart +++ b/lib/widgets/mobile-no/mobile_no.dart @@ -1,5 +1,7 @@ +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; // OWNER : Ibrahim albitar // DATE : 12-04-2020 @@ -10,8 +12,10 @@ class MobileNo extends StatefulWidget { // final String data; final List countries = [ - new Countries(name: 'Saudi Arabia', code: '966'), - new Countries(name: 'Dubai', code: '971'), + new Countries( name: "Saudi Arabia", + name_ar:"المملكة العربية السعودية", code: '966' ), + new Countries(name: "United Arab Emirates", + name_ar:"الإمارات العربية المتحدة", code: '971'), ]; final double margin; final double marginTop; @@ -40,9 +44,10 @@ class MobileNo extends StatefulWidget { class _MobileNo extends State { var _selectedType = '966'; String countryCode = '966'; - + ProjectViewModel projectProvider; @override Widget build(BuildContext context) { + projectProvider = Provider.of(context); return Visibility( child: Column(children: [ Row( @@ -79,7 +84,7 @@ class _MobileNo extends State { .map>((Countries value) { return DropdownMenuItem( value: value.code, - child: Text(value.name), + child: Text(projectProvider.isArabic == true ? value.name_ar : value.name), ); }).toList())))), ], @@ -133,7 +138,8 @@ class _MobileNo extends State { class Countries { final String name; + final String name_ar; final String code; - Countries({this.name, this.code}); + Countries({this.name, this.name_ar, this.code}); } diff --git a/lib/widgets/otp/sms-popup.dart b/lib/widgets/otp/sms-popup.dart index 8400cca3..39e41a93 100644 --- a/lib/widgets/otp/sms-popup.dart +++ b/lib/widgets/otp/sms-popup.dart @@ -1,11 +1,14 @@ import 'dart:async'; import 'package:diplomaticquarterapp/config/size_config.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:flutter/material.dart'; import 'dart:math'; +import 'package:provider/provider.dart'; + class SMSOTP { final type; final mobileNo; @@ -47,13 +50,15 @@ class SMSOTP { final focusD3 = FocusNode(); final focusD4 = FocusNode(); String errorMsg; - + ProjectViewModel projectProvider; String displayTime = ''; displayDialog(BuildContext context) async { + return showDialog( context: context, builder: (context) { + projectProvider = Provider.of(context); return AlertDialog( title: Row( mainAxisAlignment: MainAxisAlignment.end, @@ -95,7 +100,9 @@ class SMSOTP { key: verifyAccountForm, child: Padding( padding: EdgeInsets.only(top: 20), - child: Row( + child: Directionality( + textDirection:TextDirection.ltr, + child:Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ Container( @@ -201,7 +208,7 @@ class SMSOTP { }, validator: validateCodeDigit)), ], - ), + )), ), ), Padding( diff --git a/pubspec.yaml b/pubspec.yaml index cef4f5b2..af3c6673 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -45,7 +45,6 @@ dependencies: shared_preferences: ^0.5.8 flutter_flexible_toast: ^0.1.4 firebase_messaging: ^7.0.0 - # Progress bar progress_hud_v2: ^2.0.0 percent_indicator: ^2.1.5