diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart new file mode 100644 index 00000000..20393d92 --- /dev/null +++ b/lib/config/localized_values.dart @@ -0,0 +1,7 @@ +const Map> localizedValues = { + 'dashboardScreenToolbarTitle': {'ar': 'الرئيسة', 'en': 'Home'}, + 'settings': {'en': 'Settings', 'ar': 'الاعدادات'}, + 'language': {'en': 'App Language', 'ar': 'لغة التطبيق'}, + 'lanEnglish': {'en': 'English', 'ar': 'English'}, + 'lanArabic': {'en': 'العربية', 'ar': 'العربية'} +}; diff --git a/lib/config/shared_pref_kay.dart b/lib/config/shared_pref_kay.dart index 75e39bb1..8a90edf6 100644 --- a/lib/config/shared_pref_kay.dart +++ b/lib/config/shared_pref_kay.dart @@ -1,4 +1,4 @@ final TOKEN = 'token'; final PROJECT_ID="projectID"; final SLECTED_PATIENT_TYPE="slectedPatientType"; -final APP_Language = "Language"; \ No newline at end of file +final APP_Language = "language"; \ No newline at end of file diff --git a/lib/i18n/ar.i18n.dart b/lib/i18n/ar.i18n.dart deleted file mode 100644 index 2b768d19..00000000 --- a/lib/i18n/ar.i18n.dart +++ /dev/null @@ -1,25 +0,0 @@ -// GENERATED FILE, do not edit! -import 'package:i18n/i18n.dart' as i18n; - -String get _languageCode => 'en'; -String get _localeName => 'en'; - -String _plural(int count, {String zero, String one, String two, String few, String many, String other}) => - i18n.plural(count, _languageCode, zero:zero, one:one, two:two, few:few, many:many, other:other); -String _ordinal(int count, {String zero, String one, String two, String few, String many, String other}) => - i18n.ordinal(count, _languageCode, zero:zero, one:one, two:two, few:few, many:many, other:other); -String _cardinal(int count, {String zero, String one, String two, String few, String many, String other}) => - i18n.cardinal(count, _languageCode, zero:zero, one:one, two:two, few:few, many:many, other:other); - -class Ar { - const Ar(); - ButtonAr get button => ButtonAr(this); -} - -class ButtonAr { - final Ar _parent; - const ButtonAr(this._parent); - String get save => "حفظ"; - String get load => "تحميل"; -} - diff --git a/lib/i18n/ar.i18n.yaml b/lib/i18n/ar.i18n.yaml deleted file mode 100644 index c59964df..00000000 --- a/lib/i18n/ar.i18n.yaml +++ /dev/null @@ -1,3 +0,0 @@ -button: - save: حفظ - load: تحميل \ No newline at end of file diff --git a/lib/i18n/en.i18n.dart b/lib/i18n/en.i18n.dart deleted file mode 100644 index 9f06a223..00000000 --- a/lib/i18n/en.i18n.dart +++ /dev/null @@ -1,25 +0,0 @@ -// GENERATED FILE, do not edit! -import 'package:i18n/i18n.dart' as i18n; - -String get _languageCode => 'en'; -String get _localeName => 'en'; - -String _plural(int count, {String zero, String one, String two, String few, String many, String other}) => - i18n.plural(count, _languageCode, zero:zero, one:one, two:two, few:few, many:many, other:other); -String _ordinal(int count, {String zero, String one, String two, String few, String many, String other}) => - i18n.ordinal(count, _languageCode, zero:zero, one:one, two:two, few:few, many:many, other:other); -String _cardinal(int count, {String zero, String one, String two, String few, String many, String other}) => - i18n.cardinal(count, _languageCode, zero:zero, one:one, two:two, few:few, many:many, other:other); - -class En { - const En(); - ButtonEn get button => ButtonEn(this); -} - -class ButtonEn { - final En _parent; - const ButtonEn(this._parent); - String get save => "Save"; - String get load => "Load"; -} - diff --git a/lib/i18n/en.i18n.yaml b/lib/i18n/en.i18n.yaml deleted file mode 100644 index a4c26572..00000000 --- a/lib/i18n/en.i18n.yaml +++ /dev/null @@ -1,4 +0,0 @@ -button: - save: Save - load: Load - diff --git a/lib/main.dart b/lib/main.dart index cc9900ce..7d191bce 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,4 @@ +import 'package:doctor_app_flutter/providers/Project_provider.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; @@ -7,7 +8,7 @@ import 'package:provider/provider.dart'; import './config/size_config.dart'; import './providers/auth_provider.dart'; import './providers/patients_provider.dart'; -import './providers/projects_provider.dart'; +import './providers/hospital_provider.dart'; import './routes.dart'; void main() => runApp(MyApp()); @@ -24,13 +25,14 @@ class MyApp extends StatelessWidget { providers: [ ChangeNotifierProvider(create: (context) => PatientsProvider()), ChangeNotifierProvider(create: (context) => AuthProvider()), - ChangeNotifierProvider(create: (context) => ProjectsProvider()), + ChangeNotifierProvider(create: (context) => HospitalProvider()), + ChangeNotifierProvider(create: (context) => ProjectProvider(),) ], - child: Consumer( - builder: (context,projectsProvider,child) => MaterialApp( + child: Consumer( + builder: (context,projectProvider,child) => MaterialApp( showSemanticsDebugger: false, title: 'Flutter Demo', - locale: projectsProvider.appLocal, + locale: projectProvider.appLocal, localizationsDelegates: [ TranslationBaseDelegate(), GlobalMaterialLocalizations.delegate, diff --git a/lib/providers/Project_provider.dart b/lib/providers/Project_provider.dart new file mode 100644 index 00000000..abf53ea3 --- /dev/null +++ b/lib/providers/Project_provider.dart @@ -0,0 +1,43 @@ +import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; +import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; +import 'package:flutter/cupertino.dart'; + +class ProjectProvider with ChangeNotifier{ + + DrAppSharedPreferances sharedPref = DrAppSharedPreferances(); + Locale _appLocale; + String currentLanguage = 'ar'; + bool _isArabic = false; + + Locale get appLocal => _appLocale; + + bool get isArabic => _isArabic; + + ProjectProvider(){ + loadSharedPrefLanguage (); + } + void loadSharedPrefLanguage() async { + currentLanguage = await sharedPref.getString(APP_Language); + _appLocale = Locale(currentLanguage ?? 'ar'); + _isArabic = currentLanguage != null + ? currentLanguage == 'ar' ? true : false + : false; + notifyListeners(); + } + + void changeLanguage(String lan) { + if (lan != "en" && currentLanguage != lan) { + _appLocale = Locale("ar"); + _isArabic = true; + currentLanguage = 'ar'; + sharedPref.setString(APP_Language, 'ar'); + } else if (lan != "ar" && currentLanguage != lan) { + _appLocale = Locale("en"); + _isArabic = false; + currentLanguage = 'en'; + sharedPref.setString(APP_Language, 'en'); + } + notifyListeners(); + } + +} \ No newline at end of file diff --git a/lib/providers/hospital_provider.dart b/lib/providers/hospital_provider.dart new file mode 100644 index 00000000..005a53ac --- /dev/null +++ b/lib/providers/hospital_provider.dart @@ -0,0 +1,41 @@ +import 'dart:convert'; + +import 'package:doctor_app_flutter/config/config.dart'; +import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; +import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; + +import '../interceptor/http_interceptor.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:http/http.dart'; +import 'package:http_interceptor/http_client_with_interceptor.dart'; + +const GET_PROJECTS = BASE_URL + 'Lists.svc/REST/GetProjectForDoctorAPP'; + +class HospitalProvider with ChangeNotifier { + + + + Client client = + HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]); + + Future getProjectsList() async { + const url = GET_PROJECTS; + var info = { + "LanguageID": 2, + "stamp": "2020-02-26T13:51:44.111Z", + "IPAdress": "11.11.11.11", + "VersionID": 1.2, + "Channel": 9, + "TokenID": "", + "SessionID": "i1UJwCTSqt", + "IsLoginForDoctorApp": true + }; + try { + final response = await client.post(url, body: json.encode(info)); + return Future.value(json.decode(response.body)); + } catch (error) { + throw error; + // print('error'); + } + } +} diff --git a/lib/providers/projects_provider.dart b/lib/providers/projects_provider.dart deleted file mode 100644 index 983b6351..00000000 --- a/lib/providers/projects_provider.dart +++ /dev/null @@ -1,77 +0,0 @@ -import 'dart:convert'; - -import 'package:doctor_app_flutter/config/config.dart'; -import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; -import 'package:doctor_app_flutter/providers/schedule_provider.dart'; -import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; -import 'package:provider/provider.dart'; - -import '../interceptor/http_interceptor.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:http/http.dart'; -import 'package:http_interceptor/http_client_with_interceptor.dart'; - -const GET_PROJECTS = BASE_URL + 'Lists.svc/REST/GetProjectForDoctorAPP'; - -class ProjectsProvider with ChangeNotifier { - DrAppSharedPreferances sharedPref = DrAppSharedPreferances(); - Locale _appLocale; - String currentLanguage = 'ar'; - bool _isArabic = false; - - Locale get appLocal => _appLocale; - - bool get isArabic => _isArabic; - - ProjectsProvider() { - loadSharedPrefLan(); - } - - void loadSharedPrefLan() async { - currentLanguage = await sharedPref.getString(APP_Language); - _appLocale = Locale(currentLanguage ?? 'ar'); - _isArabic = currentLanguage != null - ? currentLanguage == 'ar' ? true : false - : false; - notifyListeners(); - } - - void changeDirection(String lan) { - if (lan != "en" && currentLanguage != lan) { - _appLocale = Locale("ar"); - _isArabic = true; - currentLanguage = 'ar'; - sharedPref.setString(APP_Language, 'ar'); - } else if (lan != "ar" && currentLanguage != lan) { - _appLocale = Locale("en"); - _isArabic = false; - currentLanguage = 'en'; - sharedPref.setString(APP_Language, 'en'); - } - notifyListeners(); - } - - Client client = - HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]); - - Future getProjectsList() async { - const url = GET_PROJECTS; - var info = { - "LanguageID": 2, - "stamp": "2020-02-26T13:51:44.111Z", - "IPAdress": "11.11.11.11", - "VersionID": 1.2, - "Channel": 9, - "TokenID": "", - "SessionID": "i1UJwCTSqt", - "IsLoginForDoctorApp": true - }; - try { - final response = await client.post(url, body: json.encode(info)); - return Future.value(json.decode(response.body)); - } catch (error) { - throw error; - // print('error'); - } - } -} diff --git a/lib/screens/dashboard_screen.dart b/lib/screens/dashboard_screen.dart index b650c611..97e5158f 100644 --- a/lib/screens/dashboard_screen.dart +++ b/lib/screens/dashboard_screen.dart @@ -1,7 +1,7 @@ import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/providers/doctor_reply_provider.dart'; import 'package:doctor_app_flutter/providers/medicine_provider.dart'; -import 'package:doctor_app_flutter/providers/projects_provider.dart'; +import 'package:doctor_app_flutter/providers/hospital_provider.dart'; import 'package:doctor_app_flutter/screens/medicine/medicine_search_screen.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; @@ -28,7 +28,7 @@ class DashboardScreen extends StatefulWidget { class _DashboardScreenState extends State { - ProjectsProvider projectsProvider; + HospitalProvider projectsProvider; @override Widget build(BuildContext context) { projectsProvider = Provider.of(context); diff --git a/lib/screens/settings/settings_screen.dart b/lib/screens/settings/settings_screen.dart index 122ab4ab..b9ec86ce 100644 --- a/lib/screens/settings/settings_screen.dart +++ b/lib/screens/settings/settings_screen.dart @@ -1,4 +1,5 @@ -import 'package:doctor_app_flutter/providers/projects_provider.dart'; +import 'package:doctor_app_flutter/providers/Project_provider.dart'; +import 'package:doctor_app_flutter/providers/hospital_provider.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; @@ -7,7 +8,7 @@ import 'package:hexcolor/hexcolor.dart'; import 'package:provider/provider.dart'; class SettingsScreen extends StatelessWidget { - ProjectsProvider projectsProvider; + ProjectProvider projectsProvider; @override Widget build(BuildContext context) { projectsProvider = Provider.of(context); @@ -29,7 +30,7 @@ class SettingsScreen extends StatelessWidget { children: [ Expanded( child: InkWell( - onTap: () { projectsProvider.changeDirection('en'); }, + onTap: () { projectsProvider.changeLanguage('en'); }, child: AnimatedContainer( duration: Duration(milliseconds: 350), decoration: BoxDecoration( @@ -42,7 +43,7 @@ class SettingsScreen extends StatelessWidget { ), Expanded( child: InkWell( - onTap: (){projectsProvider.changeDirection('ar');}, + onTap: (){projectsProvider.changeLanguage('ar');}, child: AnimatedContainer( duration: Duration(milliseconds: 350), decoration: BoxDecoration( diff --git a/lib/util/translations_delegate_base.dart b/lib/util/translations_delegate_base.dart index 9966f051..1af735a1 100644 --- a/lib/util/translations_delegate_base.dart +++ b/lib/util/translations_delegate_base.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:doctor_app_flutter/config/localized_values.dart'; import 'package:flutter/foundation.dart' show SynchronousFuture; import 'package:flutter/material.dart'; @@ -12,23 +13,17 @@ class TranslationBase { return Localizations.of(context, TranslationBase); } - static Map> _localizedValues = { - 'dashboardScreenToolbarTitle': {'ar': 'الرئيسة', 'en': 'Home'}, - 'settings': {'en': 'Settings', 'ar': 'الاعدادات'}, - 'language': {'en': 'App Language', 'ar': 'لغة التطبيق'}, - 'lanEnglish': {'en': 'English', 'ar': 'English'}, - 'lanArabic': {'en': 'العربية', 'ar': 'العربية'} - }; - String get dashboardScreenToolbarTitle => _localizedValues['dashboardScreenToolbarTitle'][locale.languageCode]; - String get settings => _localizedValues['settings'][locale.languageCode]; + String get dashboardScreenToolbarTitle => localizedValues['dashboardScreenToolbarTitle'][locale.languageCode]; - String get language => _localizedValues['language'][locale.languageCode]; + String get settings => localizedValues['settings'][locale.languageCode]; - String get lanEnglish => _localizedValues['lanEnglish'][locale.languageCode]; + String get language => localizedValues['language'][locale.languageCode]; - String get lanArabic => _localizedValues['lanArabic'][locale.languageCode]; + String get lanEnglish => localizedValues['lanEnglish'][locale.languageCode]; + + String get lanArabic => localizedValues['lanArabic'][locale.languageCode]; } diff --git a/lib/widgets/auth/login_form.dart b/lib/widgets/auth/login_form.dart index f20cb0f3..43daa219 100644 --- a/lib/widgets/auth/login_form.dart +++ b/lib/widgets/auth/login_form.dart @@ -10,7 +10,7 @@ import '../../config/shared_pref_kay.dart'; import '../../config/size_config.dart'; import '../../models/user_model.dart'; import '../../providers/auth_provider.dart'; -import '../../providers/projects_provider.dart'; +import '../../providers/hospital_provider.dart'; import '../../routes.dart'; import '../../util/dr_app_shared_pref.dart'; import '../../util/dr_app_toast_msg.dart'; @@ -290,7 +290,7 @@ class _LoginFormState extends State { } getProjectsList() { - ProjectsProvider projectsProv = Provider.of(context); + HospitalProvider projectsProv = Provider.of(context); projectsProv.getProjectsList().then((res) { if (res['MessageStatus'] == 1) { setState(() { diff --git a/pubspec.lock b/pubspec.lock index bdaff9da..e5495a16 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -322,13 +322,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.1.4" - i18n: - dependency: "direct main" - description: - name: i18n - url: "https://pub.dartlang.org" - source: hosted - version: "0.9.10" imei_plugin: dependency: "direct main" description: @@ -504,13 +497,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.5" - quick_log: - dependency: transitive - description: - name: quick_log - url: "https://pub.dartlang.org" - source: hosted - version: "0.4.0" quiver: dependency: transitive description: @@ -518,13 +504,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.5" - rxdart: - dependency: transitive - description: - name: rxdart - url: "https://pub.dartlang.org" - source: hosted - version: "0.23.1" scratch_space: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 47f6590e..f4867698 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -26,7 +26,6 @@ dependencies: intl: ^0.16.1 http: ^0.12.0+4 provider: ^4.0.5+1 - i18n: any shared_preferences: ^0.5.6+3 imei_plugin: ^1.1.6 flutter_flexible_toast: ^0.1.4