You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Dart
		
	
		
		
			
		
	
	
			88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Dart
		
	
| 
								 
											2 months ago
										 
									 | 
							
								import 'package:easy_localization/easy_localization.dart';
							 | 
						||
| 
								 | 
							
								import 'package:flutter/material.dart';
							 | 
						||
| 
								 | 
							
								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/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';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class AppLanguageChange extends StatefulWidget {
							 | 
						||
| 
								 | 
							
								  AppLanguageChange({Key? key}) : super(key: key);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  @override
							 | 
						||
| 
								 | 
							
								  _AppLanguageChangeState createState() {
							 | 
						||
| 
								 | 
							
								    return _AppLanguageChangeState();
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class _AppLanguageChangeState extends State<AppLanguageChange> {
							 | 
						||
| 
								 | 
							
								  String? selectedValue;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  @override
							 | 
						||
| 
								 | 
							
								  void initState() {
							 | 
						||
| 
								 | 
							
								    super.initState();
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  @override
							 | 
						||
| 
								 | 
							
								  void dispose() {
							 | 
						||
| 
								 | 
							
								    super.dispose();
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  @override
							 | 
						||
| 
								 | 
							
								  Widget build(BuildContext context) {
							 | 
						||
| 
								 | 
							
								    selectedValue ??= context.locale.languageCode;
							 | 
						||
| 
								 | 
							
								    return Column(
							 | 
						||
| 
								 | 
							
								      spacing: 24.h,
							 | 
						||
| 
								 | 
							
								      children: [
							 | 
						||
| 
								 | 
							
								        Container(
							 | 
						||
| 
								 | 
							
								          padding: EdgeInsets.only(top: 4, bottom: 4),
							 | 
						||
| 
								 | 
							
								          decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 24.h, hasShadow: true),
							 | 
						||
| 
								 | 
							
								          child: Column(
							 | 
						||
| 
								 | 
							
								            children: [
							 | 
						||
| 
								 | 
							
								              languageItem("English".needTranslation, "en"),
							 | 
						||
| 
								 | 
							
								              1.divider,
							 | 
						||
| 
								 | 
							
								              languageItem("العربية".needTranslation, "ar"),
							 | 
						||
| 
								 | 
							
								            ],
							 | 
						||
| 
								 | 
							
								          ),
							 | 
						||
| 
								 | 
							
								        ),
							 | 
						||
| 
								 | 
							
								        CustomButton(
							 | 
						||
| 
								 | 
							
								            text: LocaleKeys.save.tr(),
							 | 
						||
| 
								 | 
							
								            onPressed: () {
							 | 
						||
| 
								 | 
							
								              context.setLocale(selectedValue == 'en' ? Locale('en', 'US') : Locale('ar', 'SA')).then((val) {
							 | 
						||
| 
								 | 
							
								                Navigator.pop(context);
							 | 
						||
| 
								 | 
							
								              });
							 | 
						||
| 
								 | 
							
								            }),
							 | 
						||
| 
								 | 
							
								      ],
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Widget languageItem(String title, String _value) {
							 | 
						||
| 
								 | 
							
								    return SizedBox(
							 | 
						||
| 
								 | 
							
								      height: 72,
							 | 
						||
| 
								 | 
							
								      child: Row(
							 | 
						||
| 
								 | 
							
								        spacing: 8.h,
							 | 
						||
| 
								 | 
							
								        children: [
							 | 
						||
| 
								 | 
							
								          Radio(
							 | 
						||
| 
								 | 
							
								            value: _value,
							 | 
						||
| 
								 | 
							
								            groupValue: selectedValue,
							 | 
						||
| 
								 | 
							
								            activeColor: AppColors.errorColor,
							 | 
						||
| 
								 | 
							
								            onChanged: (value) {
							 | 
						||
| 
								 | 
							
								              setState(() {
							 | 
						||
| 
								 | 
							
								                selectedValue = _value;
							 | 
						||
| 
								 | 
							
								              });
							 | 
						||
| 
								 | 
							
								            },
							 | 
						||
| 
								 | 
							
								            materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
							 | 
						||
| 
								 | 
							
								          ),
							 | 
						||
| 
								 | 
							
								          title.toText16(weight: FontWeight.w500, textOverflow: TextOverflow.ellipsis, maxlines: 1).expanded,
							 | 
						||
| 
								 | 
							
								        ],
							 | 
						||
| 
								 | 
							
								      ).paddingOnly(left: 16, right: 16).onPress(() {
							 | 
						||
| 
								 | 
							
								        setState(() {
							 | 
						||
| 
								 | 
							
								          selectedValue = _value;
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								      }),
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |