remove i18n package, change the location localized values,

change provider name and create new provider
merge-requests/53/head
her_username 6 years ago
parent cc929ba4a5
commit 3fbc2dabef

@ -0,0 +1,7 @@
const Map<String, Map<String, String>> localizedValues = {
'dashboardScreenToolbarTitle': {'ar': 'الرئيسة', 'en': 'Home'},
'settings': {'en': 'Settings', 'ar': 'الاعدادات'},
'language': {'en': 'App Language', 'ar': 'لغة التطبيق'},
'lanEnglish': {'en': 'English', 'ar': 'English'},
'lanArabic': {'en': 'العربية', 'ar': 'العربية'}
};

@ -1,4 +1,4 @@
final TOKEN = 'token';
final PROJECT_ID="projectID";
final SLECTED_PATIENT_TYPE="slectedPatientType";
final APP_Language = "Language";
final APP_Language = "language";

@ -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 => "تحميل";
}

@ -1,3 +0,0 @@
button:
save: حفظ
load: تحميل

@ -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";
}

@ -1,4 +0,0 @@
button:
save: Save
load: Load

@ -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<PatientsProvider>(create: (context) => PatientsProvider()),
ChangeNotifierProvider<AuthProvider>(create: (context) => AuthProvider()),
ChangeNotifierProvider<ProjectsProvider>(create: (context) => ProjectsProvider()),
ChangeNotifierProvider<HospitalProvider>(create: (context) => HospitalProvider()),
ChangeNotifierProvider<ProjectProvider>(create: (context) => ProjectProvider(),)
],
child: Consumer<ProjectsProvider>(
builder: (context,projectsProvider,child) => MaterialApp(
child: Consumer<ProjectProvider>(
builder: (context,projectProvider,child) => MaterialApp(
showSemanticsDebugger: false,
title: 'Flutter Demo',
locale: projectsProvider.appLocal,
locale: projectProvider.appLocal,
localizationsDelegates: [
TranslationBaseDelegate(),
GlobalMaterialLocalizations.delegate,

@ -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();
}
}

@ -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<Map> 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');
}
}
}

@ -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<Map> 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');
}
}
}

@ -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<DashboardScreen> {
ProjectsProvider projectsProvider;
HospitalProvider projectsProvider;
@override
Widget build(BuildContext context) {
projectsProvider = Provider.of(context);

@ -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(

@ -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<TranslationBase>(context, TranslationBase);
}
static Map<String, Map<String, String>> _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];
}

@ -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<LoginForm> {
}
getProjectsList() {
ProjectsProvider projectsProv = Provider.of<ProjectsProvider>(context);
HospitalProvider projectsProv = Provider.of<HospitalProvider>(context);
projectsProv.getProjectsList().then((res) {
if (res['MessageStatus'] == 1) {
setState(() {

@ -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:

@ -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

Loading…
Cancel
Save