@ -4,9 +4,14 @@ import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import ' package:hmg_patient_app_new/extensions/int_extensions.dart ' ;
import ' package:hmg_patient_app_new/extensions/string_extensions.dart ' ;
import ' package:hmg_patient_app_new/extensions/widget_extensions.dart ' ;
import ' package:hmg_patient_app_new/features/emergency_services/emergency_services_view_model.dart ' ;
import ' package:hmg_patient_app_new/features/immediate_livecare/immediate_livecare_view_model.dart ' ;
import ' package:hmg_patient_app_new/features/my_appointments/my_appointments_view_model.dart ' ;
import ' package:hmg_patient_app_new/features/todo_section/todo_section_view_model.dart ' ;
import ' package:hmg_patient_app_new/generated/locale_keys.g.dart ' ;
import ' package:hmg_patient_app_new/theme/colors.dart ' ;
import ' package:hmg_patient_app_new/widgets/buttons/custom_button.dart ' ;
import ' package:provider/provider.dart ' ;
class AppLanguageChange extends StatefulWidget {
AppLanguageChange ( { Key ? key } ) : super ( key: key ) ;
@ -20,6 +25,11 @@ class AppLanguageChange extends StatefulWidget {
class _AppLanguageChangeState extends State < AppLanguageChange > {
String ? selectedValue ;
late MyAppointmentsViewModel myAppointmentsViewModel ;
late ImmediateLiveCareViewModel immediateLiveCareViewModel ;
late EmergencyServicesViewModel emergencyServicesViewModel ;
late TodoSectionViewModel todoSectionViewModel ;
@ override
void initState ( ) {
super . initState ( ) ;
@ -33,6 +43,12 @@ class _AppLanguageChangeState extends State<AppLanguageChange> {
@ override
Widget build ( BuildContext context ) {
selectedValue ? ? = context . locale . languageCode ;
myAppointmentsViewModel = Provider . of < MyAppointmentsViewModel > ( context , listen: false ) ;
immediateLiveCareViewModel = Provider . of < ImmediateLiveCareViewModel > ( context , listen: false ) ;
emergencyServicesViewModel = Provider . of < EmergencyServicesViewModel > ( context , listen: false ) ;
todoSectionViewModel = Provider . of < TodoSectionViewModel > ( context , listen: false ) ;
return Column (
spacing: 24. h ,
children: [
@ -51,6 +67,18 @@ class _AppLanguageChangeState extends State<AppLanguageChange> {
text: LocaleKeys . save . tr ( context: context ) ,
onPressed: ( ) {
context . setLocale ( selectedValue = = ' en ' ? Locale ( ' en ' , ' US ' ) : Locale ( ' ar ' , ' SA ' ) ) . then ( ( val ) {
/ / Reload My Appointments Data
myAppointmentsViewModel . setIsAppointmentDataToBeLoaded ( true ) ;
myAppointmentsViewModel . initAppointmentsViewModel ( ) ;
myAppointmentsViewModel . getPatientAppointments ( true , false ) ;
/ / Reload Immediate LiveCare Data
immediateLiveCareViewModel . initImmediateLiveCare ( ) ;
immediateLiveCareViewModel . getPatientLiveCareHistory ( ) ;
/ / Reload Emergency Services Data
emergencyServicesViewModel . checkPatientERAdvanceBalance ( ) ;
Navigator . pop ( context ) ;
} ) ;
} ) ,