theme and login issues fixed

merge-update-with-lab-changes
Sultan Khan 5 years ago
parent 58b1f648c1
commit 3fef1b9d52

@ -111,10 +111,13 @@ const Map localizedValues = {
'login': {'en': 'Login', 'ar': 'تسجيل الدخول'}, 'login': {'en': 'Login', 'ar': 'تسجيل الدخول'},
'loginregister': {'en': 'Login / Register', 'ar': 'تسجيل الدخول'}, 'loginregister': {'en': 'Login / Register', 'ar': 'تسجيل الدخول'},
'poweredBy': {'en': 'Powered By', 'ar': 'مشغل بواسطة'}, 'poweredBy': {'en': 'Powered By', 'ar': 'مشغل بواسطة'},
'welcome': {'en': 'Welcome', 'ar': 'أهلا بك'}, "welcome": {
'welcome_text': { "en": "Welcome",
'en': 'Dr. Sulaiman Al Habib Mobile Application ', "ar": "مرحبا"
'ar': 'الدكتور سليمان الحبيب لتطبيقات الهاتف المتحرك' },
"welcome_text": {
"en": "Dr. Sulaiman Al Habib Mobile Application",
"ar": "الدكتور سليمان الحبيب لتطبيقات الهاتف المتحرك"
}, },
'welcome_text2': { 'welcome_text2': {
'en': 'Have you visited AlHabib Medical Group before? ', 'en': 'Have you visited AlHabib Medical Group before? ',
@ -127,7 +130,12 @@ const Map localizedValues = {
"ar": "اختر من الخيارات أدناه لتسجيل الدخول إلى ملفك الطبي." "ar": "اختر من الخيارات أدناه لتسجيل الدخول إلى ملفك الطبي."
}, },
"registernow": {"en": "Register Now", "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": "رقم الملف"}, "fileNo": {"en": "File Number", "ar": "رقم الملف"},
"forgotFileNo": {"en": "Forgot file Number?", "ar": "نسيت رقم الملف الطبي؟"}, "forgotFileNo": {"en": "Forgot file Number?", "ar": "نسيت رقم الملف الطبي؟"},
"forgotFileNoTitle": { "forgotFileNoTitle": {
@ -136,8 +144,8 @@ const Map localizedValues = {
}, },
"enter-national-id": { "enter-national-id": {
"en": "Please enter mobile number and national ID / Iqama", "en": "Please enter mobile number and identification number",
"ar": "الرجاء إدخال رقم الجوال والهوية الوطنية / الاقامة" "ar": "الرجاء إدخال رقم الجوال ورقم الهوية"
}, },
"profile-info": { "profile-info": {
"en": "Please enter profile information", "en": "Please enter profile information",

@ -16,3 +16,5 @@ const USER_LONG = 'user-long';
const IS_GO_TO_PARKING = 'IS_GO_TO_PARKING'; const IS_GO_TO_PARKING = 'IS_GO_TO_PARKING';
const IS_SEARCH_APPO = 'is-search-appo'; const IS_SEARCH_APPO = 'is-search-appo';
const IS_LIVECARE_APPOINTMENT = 'is_livecare_appointment'; const IS_LIVECARE_APPOINTMENT = 'is_livecare_appointment';
const IS_VIBRATION = 'is_vibration';
const THEME_VALUE = 'is_vibration';

@ -33,7 +33,7 @@ class BaseAppClient {
//Map profile = await sharedPref.getObj(DOCTOR_PROFILE); //Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
String token = await sharedPref.getString(TOKEN); String token = await sharedPref.getString(TOKEN);
var languageID = var languageID =
await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'en'); await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
var user = await sharedPref.getObject(USER_PROFILE); var user = await sharedPref.getObject(USER_PROFILE);
if (body.containsKey('SetupID')) { if (body.containsKey('SetupID')) {
body['SetupID'] = body.containsKey('SetupID') body['SetupID'] = body.containsKey('SetupID')

@ -17,12 +17,13 @@ import 'locator.dart';
void main() async { void main() async {
setupLocator(); setupLocator();
runApp(ChangeNotifierProvider<ThemeNotifier>( runApp(ChangeNotifierProvider<ThemeNotifier>(
create: (_) => ThemeNotifier(defaultTheme), child: MyApp())); create: (context) => ThemeNotifier(defaultTheme), child: MyApp() ));
} }
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final themeNotifier = Provider.of<ThemeNotifier>(context); final themeNotifier = Provider.of<ThemeNotifier>(context);
return LayoutBuilder( return LayoutBuilder(
builder: (context, constraints) { builder: (context, constraints) {
@ -61,7 +62,41 @@ class MyApp extends StatelessWidget {
const Locale('ar', ''), // Arabic const Locale('ar', ''), // Arabic
const Locale('en', ''), // English 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, initialRoute: SPLASH,
routes: routes, routes: routes,
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,

@ -14,7 +14,7 @@ class LoginType extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( return AppScaffold(
appBarTitle: TranslationBase.of(context).welcome, appBarTitle: TranslationBase.of(context).login,
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
body: Padding( body: Padding(
@ -73,7 +73,7 @@ class LoginType extends StatelessWidget {
), ),
AppText( AppText(
TranslationBase.of(context) TranslationBase.of(context)
.nationalID, .idNo,
fontSize: fontSize:
SizeConfig.textMultiplier * SizeConfig.textMultiplier *
2, 2,
@ -122,6 +122,7 @@ class LoginType extends StatelessWidget {
)))) ))))
], ],
), ),
SizedBox(height: 25,),
Divider( Divider(
color: Colors.grey, color: Colors.grey,
height: 2, height: 2,
@ -144,8 +145,14 @@ class LoginType extends StatelessWidget {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[ children: <Widget>[
Divider(
color: Colors.grey,
height: 2,
),
SizedBox(height: 10,),
Row( Row(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
child: DefaultButton( child: DefaultButton(
TranslationBase.of(context).registerNow, TranslationBase.of(context).registerNow,

@ -117,6 +117,11 @@ class _Login extends State<Login> {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[ children: <Widget>[
Divider(
color: Colors.grey,
height: 2,
),
SizedBox(height: 10,),
Row( Row(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(

@ -8,11 +8,13 @@ import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.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/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/card/rounded_container.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/input/text_field.dart';
import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart'; import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@ -46,9 +48,7 @@ class _Register extends State<Register> {
appBarTitle: TranslationBase.of(context).register, appBarTitle: TranslationBase.of(context).register,
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
body: isLoading == true body: SingleChildScrollView(
? AppCircularProgressIndicator()
: SingleChildScrollView(
child: Container( child: Container(
padding: padding:
EdgeInsets.only(top: 10, left: 20, right: 20, bottom: 30), EdgeInsets.only(top: 10, left: 20, right: 20, bottom: 30),
@ -120,8 +120,12 @@ class _Register extends State<Register> {
), ),
], ],
), ),
Row(children: <Widget>[ Row(
Expanded( mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Container(
width: SizeConfig.realScreenWidth * .9,
height:60,
child: isHijri == 1 child: isHijri == 1
? TextFields( ? TextFields(
onChanged: (value) => {dob = value}, onChanged: (value) => {dob = value},
@ -129,6 +133,11 @@ class _Register extends State<Register> {
prefixIcon: Icon(Icons.date_range), prefixIcon: Icon(Icons.date_range),
) )
: RaisedButton.icon( : RaisedButton.icon(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0),
),
color:Colors.white,
onPressed: () => { onPressed: () => {
if (isHijri != null) if (isHijri != null)
_selectDate(context) _selectDate(context)
@ -147,6 +156,11 @@ class _Register extends State<Register> {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[ children: <Widget>[
Divider(
color: Colors.grey,
height: 2,
),
SizedBox(height: 10,),
Row( Row(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
@ -196,7 +210,7 @@ class _Register extends State<Register> {
} }
checkPatientForRegisteration(request) { checkPatientForRegisteration(request) {
showLoader(true); GifLoaderDialogUtils.showMyDialog(context);
this this
.authService .authService
.checkPatientForRegisteration(request) .checkPatientForRegisteration(request)
@ -219,12 +233,20 @@ class _Register extends State<Register> {
} }
checkUserStatus(response, CheckPatientForRegistration request) async { checkUserStatus(response, CheckPatientForRegistration request) async {
showLoader(false); GifLoaderDialogUtils.hideDialog(context);
if (response is Map) { if (response is Map) {
var nRequest = request.toJson(); var nRequest = request.toJson();
nRequest['LogInTokenID'] = response['LogInTokenID']; nRequest['LogInTokenID'] = response['LogInTokenID'];
if (response['hasFile'] == true) { 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 { } else {
nRequest['forRegister'] = true; nRequest['forRegister'] = true;
nRequest['isRegister'] = true; nRequest['isRegister'] = true;
@ -236,7 +258,15 @@ class _Register extends State<Register> {
} }
} else { } else {
// if (response['ErrorCode'] == '-986') { // 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);
//} //}
} }
} }

@ -1,5 +1,7 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/theme/theme_notifier.dart'; import 'package:diplomaticquarterapp/theme/theme_notifier.dart';
import 'package:diplomaticquarterapp/theme/theme_value.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/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
@ -20,7 +22,16 @@ class _GeneralSettings extends State<GeneralSettings>
bool vibration =false; bool vibration =false;
bool accessibility =false; bool accessibility =false;
bool camera =false; bool camera =false;
bool location =false ; bool location =false;
var sharedPref = new AppSharedPreferences();
@override
void initState() {
getValues();
super.initState();
}
Widget build(BuildContext context) { Widget build(BuildContext context) {
themeNotifier = Provider.of<ThemeNotifier>(context); themeNotifier = Provider.of<ThemeNotifier>(context);
@ -46,7 +57,9 @@ class _GeneralSettings extends State<GeneralSettings>
onChanged: (value) { onChanged: (value) {
setState(() { setState(() {
vibration = value; vibration = value;
}); });
setVibration(value);
}, },
activeTrackColor: Colors.lightGreenAccent, activeTrackColor: Colors.lightGreenAccent,
activeColor: Colors.green, activeColor: Colors.green,
@ -212,28 +225,164 @@ class _GeneralSettings extends State<GeneralSettings>
])); ]));
} }
setTheme(value) { setTheme(value) async{
switch (value) { switch (value) {
case 0: case 0:
themeNotifier.setTheme(defaultTheme); {
themeNotifier.setTheme(await getTheme(value));
Screen.setBrightness(1.0); Screen.setBrightness(1.0);
}
break; break;
case 1: case 1:
themeNotifier.setTheme(invertTheme); {
themeNotifier.setTheme(await getTheme(value));
Screen.setBrightness(1.0); Screen.setBrightness(1.0);
}
break; break;
case 2: case 2:
//themeNotifier.setTheme(dimTheme); themeNotifier.setTheme(await getTheme(value));
Screen.setBrightness(0.01); Screen.setBrightness(0.01);
break; break;
case 3: case 3:
themeNotifier.setTheme(bwTheme); {
themeNotifier.setTheme(await getTheme(value));
Screen.setBrightness(1.0); Screen.setBrightness(1.0);
}
break; break;
default: default:
themeNotifier.setTheme(defaultTheme); {
themeNotifier.setTheme(await getTheme(value));
Screen.setBrightness(1.0); Screen.setBrightness(1.0);
}
break; 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),
),
),
);
}
} }
} }

@ -1,15 +1,15 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/theme/theme_value.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class ThemeNotifier with ChangeNotifier { class ThemeNotifier with ChangeNotifier {
ThemeData _themeData = defaultTheme; ThemeData _themeData = defaultTheme;
ThemeNotifier(this._themeData); ThemeNotifier(this._themeData);
getTheme() => _themeData; getTheme() => _themeData;
setTheme(ThemeData themeData) async { setTheme(ThemeData themeData) async {
_themeData = themeData; _themeData = themeData;
notifyListeners(); notifyListeners();
} }
} }

@ -1,5 +1,8 @@
import 'dart:ui'; import 'dart:ui';
import 'package:diplomaticquarterapp/config/config.dart'; 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:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -10,9 +13,11 @@ import 'package:provider/provider.dart';
final bluePrimary = Color(0xFF3F51B5); final bluePrimary = Color(0xFF3F51B5);
final blueAccent = Color(0xFFFF9800); final blueAccent = Color(0xFFFF9800);
final blueBackground = Color(0xFFFFFFFF); final blueBackground = Color(0xFFFFFFFF);
final defaultTheme = ThemeData(
// fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans', // ProjectViewModel projectProvider = Provider.of(AppGlobal.context);
primarySwatch: Colors.blue, final bwTheme = ThemeData(
//fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans',
primarySwatch: Colors.grey,
visualDensity: VisualDensity.adaptivePlatformDensity, visualDensity: VisualDensity.adaptivePlatformDensity,
brightness: Brightness.light, brightness: Brightness.light,
pageTransitionsTheme: const PageTransitionsTheme( pageTransitionsTheme: const PageTransitionsTheme(
@ -22,33 +27,35 @@ final defaultTheme = ThemeData(
}, },
), ),
hintColor: Colors.grey[400], hintColor: Colors.grey[400],
cardColor: Colors.black,
buttonColor: Colors.grey[400],
disabledColor: Colors.grey[300], disabledColor: Colors.grey[300],
errorColor: Color.fromRGBO(235, 80, 60, 1.0), errorColor: Color.fromRGBO(235, 80, 60, 1.0),
scaffoldBackgroundColor: Color(0xffEEEEEE), scaffoldBackgroundColor: Colors.grey,
textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5),
textSelectionHandleColor: Colors.grey, textSelectionHandleColor: Colors.grey,
canvasColor: Colors.white, canvasColor: Colors.white,
backgroundColor: Colors.white, backgroundColor: Colors.grey,
highlightColor: Colors.grey[100].withOpacity(0.4), highlightColor: Colors.grey[100].withOpacity(0.4),
splashColor: Colors.transparent, splashColor: Colors.transparent,
primaryColor: Color(0xff40ACC9), primaryColor: Colors.grey,
bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)),
cursorColor: Colors.grey, cursorColor: Colors.grey,
cardColor: Colors.white,
iconTheme: IconThemeData(), iconTheme: IconThemeData(),
appBarTheme: AppBarTheme( appBarTheme: AppBarTheme(
color: Color(0xff40ACC9), color: Colors.black45,
brightness: Brightness.dark, brightness: Brightness.dark,
elevation: 10.0, elevation: 10.0,
actionsIconTheme: IconThemeData( actionsIconTheme: IconThemeData(
color: Color(0xff40ACC9), color: Colors.grey,
), ),
), ),
); );
final invertTheme = ThemeData( final defaultTheme = ThemeData(
// fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans', //fontFamily: ProjectViewModel().isArabic? 'Cairo' : 'WorkSans',
primarySwatch: Colors.grey, primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity, visualDensity: VisualDensity.adaptivePlatformDensity,
brightness: Brightness.light, brightness: Brightness.light,
pageTransitionsTheme: const PageTransitionsTheme( pageTransitionsTheme: const PageTransitionsTheme(
@ -58,35 +65,33 @@ final invertTheme = ThemeData(
}, },
), ),
hintColor: Colors.grey[400], hintColor: Colors.grey[400],
cardColor: Colors.black,
buttonColor: Colors.grey[400],
disabledColor: Colors.grey[300], disabledColor: Colors.grey[300],
errorColor: Color.fromRGBO(235, 80, 60, 1.0), errorColor: Color.fromRGBO(235, 80, 60, 1.0),
scaffoldBackgroundColor: Colors.grey, scaffoldBackgroundColor: Color(0xffEEEEEE),
textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5),
textSelectionHandleColor: Colors.grey, textSelectionHandleColor: Colors.grey,
canvasColor: Colors.white, canvasColor: Colors.white,
backgroundColor: Colors.grey, backgroundColor: Colors.white,
highlightColor: Colors.grey[100].withOpacity(0.4), highlightColor: Colors.grey[100].withOpacity(0.4),
splashColor: Colors.transparent, splashColor: Colors.transparent,
primaryColor: Colors.grey, primaryColor: Color(0xff40ACC9),
bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)),
cursorColor: Colors.grey, cursorColor: Colors.grey,
cardColor: Colors.white,
iconTheme: IconThemeData(), iconTheme: IconThemeData(),
appBarTheme: AppBarTheme( appBarTheme: AppBarTheme(
color: Colors.grey, color: Color(0xff40ACC9),
brightness: Brightness.dark, brightness: Brightness.dark,
elevation: 10.0, elevation: 10.0,
actionsIconTheme: IconThemeData( actionsIconTheme: IconThemeData(
color: Colors.grey, color: Color(0xff40ACC9),
), ),
), ),
); );
final bwTheme = ThemeData( final invertTheme = ThemeData(
// fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans', //fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans',
primarySwatch: Colors.black54, primarySwatch: Colors.grey,
visualDensity: VisualDensity.adaptivePlatformDensity, visualDensity: VisualDensity.adaptivePlatformDensity,
brightness: Brightness.light, brightness: Brightness.light,
pageTransitionsTheme: const PageTransitionsTheme( pageTransitionsTheme: const PageTransitionsTheme(
@ -95,29 +100,30 @@ final bwTheme = ThemeData(
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
}, },
), ),
hintColor: Colors.black54, hintColor: Colors.grey[400],
cardColor:Colors.black54, cardColor: Colors.black,
buttonColor: Colors.black54, buttonColor: Colors.grey[400],
disabledColor: Colors.black54, disabledColor: Colors.grey[300],
errorColor: Color.fromRGBO(235, 80, 60, 1.0), errorColor: Color.fromRGBO(235, 80, 60, 1.0),
scaffoldBackgroundColor: Colors.black54, scaffoldBackgroundColor: Colors.grey,
textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5),
textSelectionHandleColor: Colors.black54, textSelectionHandleColor: Colors.grey,
canvasColor:Colors.black54, canvasColor: Colors.white,
backgroundColor: Colors.black54, backgroundColor: Colors.grey,
highlightColor: Colors.grey[100].withOpacity(0.4), highlightColor: Colors.grey[100].withOpacity(0.4),
splashColor: Colors.transparent, splashColor: Colors.transparent,
primaryColor: Colors.black54, primaryColor: Colors.grey,
bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)), bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)),
cursorColor: Colors.black54, cursorColor: Colors.grey,
iconTheme: IconThemeData(), iconTheme: IconThemeData(),
appBarTheme: AppBarTheme( appBarTheme: AppBarTheme(
color: Colors.black54, color: Colors.grey,
brightness: Brightness.dark, brightness: Brightness.dark,
elevation: 10.0, elevation: 10.0,
actionsIconTheme: IconThemeData( actionsIconTheme: IconThemeData(
color: Colors.black54, color: Colors.grey,
), ),
), ),
); );

@ -145,6 +145,8 @@ class TranslationBase {
String get nationalID => localizedValues['nationalID'][locale.languageCode]; String get nationalID => localizedValues['nationalID'][locale.languageCode];
String get idNo => localizedValues['national-id'][locale.languageCode];
String get fileNo => localizedValues['fileNo'][locale.languageCode]; String get fileNo => localizedValues['fileNo'][locale.languageCode];
String get forgotPassword => String get forgotPassword =>

@ -15,7 +15,7 @@ class DefaultButton extends StatelessWidget {
child: RaisedButton( child: RaisedButton(
shape: shape:
RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), 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, textColor: color != null ? textColor : Colors.white,
child: Text( child: Text(
this.text, this.text,

@ -1,5 +1,7 @@
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
// OWNER : Ibrahim albitar // OWNER : Ibrahim albitar
// DATE : 12-04-2020 // DATE : 12-04-2020
@ -10,8 +12,10 @@ class MobileNo extends StatefulWidget {
// final String data; // final String data;
final List<Countries> countries = [ final List<Countries> countries = [
new Countries(name: 'Saudi Arabia', code: '966'), new Countries( name: "Saudi Arabia",
new Countries(name: 'Dubai', code: '971'), name_ar:"المملكة العربية السعودية", code: '966' ),
new Countries(name: "United Arab Emirates",
name_ar:"الإمارات العربية المتحدة", code: '971'),
]; ];
final double margin; final double margin;
final double marginTop; final double marginTop;
@ -40,9 +44,10 @@ class MobileNo extends StatefulWidget {
class _MobileNo extends State<MobileNo> { class _MobileNo extends State<MobileNo> {
var _selectedType = '966'; var _selectedType = '966';
String countryCode = '966'; String countryCode = '966';
ProjectViewModel projectProvider;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
projectProvider = Provider.of(context);
return Visibility( return Visibility(
child: Column(children: <Widget>[ child: Column(children: <Widget>[
Row( Row(
@ -79,7 +84,7 @@ class _MobileNo extends State<MobileNo> {
.map<DropdownMenuItem<String>>((Countries value) { .map<DropdownMenuItem<String>>((Countries value) {
return DropdownMenuItem<String>( return DropdownMenuItem<String>(
value: value.code, value: value.code,
child: Text(value.name), child: Text(projectProvider.isArabic == true ? value.name_ar : value.name),
); );
}).toList())))), }).toList())))),
], ],
@ -133,7 +138,8 @@ class _MobileNo extends State<MobileNo> {
class Countries { class Countries {
final String name; final String name;
final String name_ar;
final String code; final String code;
Countries({this.name, this.code}); Countries({this.name, this.name_ar, this.code});
} }

@ -1,11 +1,14 @@
import 'dart:async'; import 'dart:async';
import 'package:diplomaticquarterapp/config/size_config.dart'; 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/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:math'; import 'dart:math';
import 'package:provider/provider.dart';
class SMSOTP { class SMSOTP {
final type; final type;
final mobileNo; final mobileNo;
@ -47,13 +50,15 @@ class SMSOTP {
final focusD3 = FocusNode(); final focusD3 = FocusNode();
final focusD4 = FocusNode(); final focusD4 = FocusNode();
String errorMsg; String errorMsg;
ProjectViewModel projectProvider;
String displayTime = ''; String displayTime = '';
displayDialog(BuildContext context) async { displayDialog(BuildContext context) async {
return showDialog( return showDialog(
context: context, context: context,
builder: (context) { builder: (context) {
projectProvider = Provider.of(context);
return AlertDialog( return AlertDialog(
title: Row( title: Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
@ -95,7 +100,9 @@ class SMSOTP {
key: verifyAccountForm, key: verifyAccountForm,
child: Padding( child: Padding(
padding: EdgeInsets.only(top: 20), padding: EdgeInsets.only(top: 20),
child: Row( child: Directionality(
textDirection:TextDirection.ltr,
child:Row(
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[ children: <Widget>[
Container( Container(
@ -201,7 +208,7 @@ class SMSOTP {
}, },
validator: validateCodeDigit)), validator: validateCodeDigit)),
], ],
), )),
), ),
), ),
Padding( Padding(

@ -45,7 +45,6 @@ dependencies:
shared_preferences: ^0.5.8 shared_preferences: ^0.5.8
flutter_flexible_toast: ^0.1.4 flutter_flexible_toast: ^0.1.4
firebase_messaging: ^7.0.0 firebase_messaging: ^7.0.0
# Progress bar # Progress bar
progress_hud_v2: ^2.0.0 progress_hud_v2: ^2.0.0
percent_indicator: ^2.1.5 percent_indicator: ^2.1.5

Loading…
Cancel
Save