@ -1,3 +1,4 @@
import ' package:easy_localization/easy_localization.dart ' ;
import ' package:flutter/material.dart ' ;
import ' package:flutter/material.dart ' ;
import ' package:hmg_patient_app_new/core/app_assets.dart ' ;
import ' package:hmg_patient_app_new/core/app_assets.dart ' ;
import ' package:hmg_patient_app_new/core/app_export.dart ' ;
import ' package:hmg_patient_app_new/core/app_export.dart ' ;
@ -6,6 +7,7 @@ import 'package:hmg_patient_app_new/core/utils/utils.dart';
import ' package:hmg_patient_app_new/extensions/string_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/extensions/widget_extensions.dart ' ;
import ' package:hmg_patient_app_new/features/water_monitor/water_monitor_view_model.dart ' ;
import ' package:hmg_patient_app_new/features/water_monitor/water_monitor_view_model.dart ' ;
import ' package:hmg_patient_app_new/generated/locale_keys.g.dart ' ;
import ' package:hmg_patient_app_new/services/dialog_service.dart ' ;
import ' package:hmg_patient_app_new/services/dialog_service.dart ' ;
import ' package:hmg_patient_app_new/theme/colors.dart ' ;
import ' package:hmg_patient_app_new/theme/colors.dart ' ;
import ' package:hmg_patient_app_new/widgets/appbar/collapsing_list_view.dart ' ;
import ' package:hmg_patient_app_new/widgets/appbar/collapsing_list_view.dart ' ;
@ -69,7 +71,7 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
bool useUpperCase = false ,
bool useUpperCase = false ,
} ) {
} ) {
dialogService . showFamilyBottomSheetWithoutHWithChild (
dialogService . showFamilyBottomSheetWithoutHWithChild (
label: title .needTranslation ,
label: title ,
message: " " ,
message: " " ,
child: Container (
child: Container (
padding: EdgeInsets . only ( left: 16. w , right: 16. w , top: 4. h , bottom: 4. h ) ,
padding: EdgeInsets . only ( left: 16. w , right: 16. w , top: 4. h , bottom: 4. h ) ,
@ -99,7 +101,7 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
void _showGenderSelectionBottomsheet ( BuildContext context , WaterMonitorViewModel viewModel ) {
void _showGenderSelectionBottomsheet ( BuildContext context , WaterMonitorViewModel viewModel ) {
_showSelectionBottomSheet (
_showSelectionBottomSheet (
context: context ,
context: context ,
title: " Select Gender " . needTranslation ,
title: LocaleKeys . selectGender . tr ( context: context ) ,
items: viewModel . genderOptions ,
items: viewModel . genderOptions ,
selectedValue: viewModel . selectedGender ,
selectedValue: viewModel . selectedGender ,
onSelected: viewModel . setGender ,
onSelected: viewModel . setGender ,
@ -109,7 +111,7 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
void _showHeightUnitSelectionBottomSheet ( BuildContext context , WaterMonitorViewModel viewModel ) {
void _showHeightUnitSelectionBottomSheet ( BuildContext context , WaterMonitorViewModel viewModel ) {
_showSelectionBottomSheet (
_showSelectionBottomSheet (
context: context ,
context: context ,
title: " Select Unit " . needTranslation ,
title: LocaleKeys . selectUnit . tr ( context: context ) ,
items: viewModel . heightUnits ,
items: viewModel . heightUnits ,
selectedValue: viewModel . selectedHeightUnit ,
selectedValue: viewModel . selectedHeightUnit ,
onSelected: viewModel . setHeightUnit ,
onSelected: viewModel . setHeightUnit ,
@ -120,7 +122,7 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
void _showWeightUnitSelectionBottomsheet ( BuildContext context , WaterMonitorViewModel viewModel ) {
void _showWeightUnitSelectionBottomsheet ( BuildContext context , WaterMonitorViewModel viewModel ) {
_showSelectionBottomSheet (
_showSelectionBottomSheet (
context: context ,
context: context ,
title: " Select Unit " . needTranslation ,
title: LocaleKeys . selectUnit . tr ( context: context ) ,
items: viewModel . weightUnits ,
items: viewModel . weightUnits ,
selectedValue: viewModel . selectedWeightUnit ,
selectedValue: viewModel . selectedWeightUnit ,
onSelected: viewModel . setWeightUnit ,
onSelected: viewModel . setWeightUnit ,
@ -131,7 +133,7 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
void _showActivityLevelSelectionBottomsheet ( BuildContext context , WaterMonitorViewModel viewModel ) {
void _showActivityLevelSelectionBottomsheet ( BuildContext context , WaterMonitorViewModel viewModel ) {
_showSelectionBottomSheet (
_showSelectionBottomSheet (
context: context ,
context: context ,
title: " Select Activity Level " . needTranslation ,
title: LocaleKeys . selectActivityLevel . tr ( context: context ) ,
items: viewModel . activityLevels ,
items: viewModel . activityLevels ,
selectedValue: viewModel . selectedActivityLevel ,
selectedValue: viewModel . selectedActivityLevel ,
onSelected: viewModel . setActivityLevel ,
onSelected: viewModel . setActivityLevel ,
@ -141,7 +143,7 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
void _showNumberOfRemindersSelectionBottomsheet ( BuildContext context , WaterMonitorViewModel viewModel ) {
void _showNumberOfRemindersSelectionBottomsheet ( BuildContext context , WaterMonitorViewModel viewModel ) {
_showSelectionBottomSheet (
_showSelectionBottomSheet (
context: context ,
context: context ,
title: " Select Number of Reminders " . needTranslation ,
title: LocaleKeys . selectNumberOfReminders . tr ( context: context ) ,
items: viewModel . reminderOptions ,
items: viewModel . reminderOptions ,
selectedValue: viewModel . selectedNumberOfReminders ,
selectedValue: viewModel . selectedNumberOfReminders ,
onSelected: viewModel . setNumberOfReminders ,
onSelected: viewModel . setNumberOfReminders ,
@ -256,7 +258,7 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
return Scaffold (
return Scaffold (
backgroundColor: AppColors . bgScaffoldColor ,
backgroundColor: AppColors . bgScaffoldColor ,
body: CollapsingListView (
body: CollapsingListView (
title: " H20 Settings " . needTranslation ,
title: LocaleKeys . h2oSettings . tr ( context: context ) ,
bottomChild: Container (
bottomChild: Container (
decoration: RoundedRectangleBorder ( ) . toSmoothCornerDecoration (
decoration: RoundedRectangleBorder ( ) . toSmoothCornerDecoration (
color: AppColors . whiteColor ,
color: AppColors . whiteColor ,
@ -266,7 +268,7 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
child: Padding (
child: Padding (
padding: EdgeInsets . all ( 24. w ) ,
padding: EdgeInsets . all ( 24. w ) ,
child: CustomButton (
child: CustomButton (
text: " Save " . needTranslation ,
text: LocaleKeys . save . tr ( context: context ) ,
onPressed: ( ) async {
onPressed: ( ) async {
final success = await viewModel . saveSettings ( ) ;
final success = await viewModel . saveSettings ( ) ;
if ( ! success & & viewModel . validationError ! = null ) {
if ( ! success & & viewModel . validationError ! = null ) {
@ -277,7 +279,7 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
showCommonBottomSheetWithoutHeight (
showCommonBottomSheetWithoutHeight (
context ,
context ,
child: Utils . getSuccessWidget (
child: Utils . getSuccessWidget (
loadingText: " Settings saved successfully " . needTranslation ,
loadingText: LocaleKeys . settingsSavedSuccessfully . tr ( context: context ) ,
) ,
) ,
callBackFunc: ( ) { } ,
callBackFunc: ( ) { } ,
isCloseButtonVisible: false ,
isCloseButtonVisible: false ,
@ -299,18 +301,18 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
children: [
children: [
_buildSettingsRow (
_buildSettingsRow (
icon: AppAssets . profileIcon ,
icon: AppAssets . profileIcon ,
label: " Your Name " . needTranslation ,
label: LocaleKeys . yourName . tr ( context: context ) ,
inputField: _buildTextField ( viewModel . nameController , ' Guest ' ) ,
inputField: _buildTextField ( viewModel . nameController , ' Guest ' ) ,
) ,
) ,
_buildSettingsRow (
_buildSettingsRow (
icon: AppAssets . genderIcon ,
icon: AppAssets . genderIcon ,
label: " Select Gender " . needTranslation ,
label: LocaleKeys . selectGender . tr ( context: context ) ,
value: viewModel . selectedGender ,
value: viewModel . selectedGender ,
onRowTap: ( ) = > _showGenderSelectionBottomsheet ( context , viewModel ) ,
onRowTap: ( ) = > _showGenderSelectionBottomsheet ( context , viewModel ) ,
) ,
) ,
_buildSettingsRow (
_buildSettingsRow (
icon: AppAssets . calendarGrey ,
icon: AppAssets . calendarGrey ,
label: " Age (11-120) yrs " . needTranslation ,
label: LocaleKeys . ageYears . tr ( context: context ) ,
inputField: _buildTextField (
inputField: _buildTextField (
viewModel . ageController ,
viewModel . ageController ,
' 20 ' ,
' 20 ' ,
@ -319,7 +321,7 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
) ,
) ,
_buildSettingsRow (
_buildSettingsRow (
icon: AppAssets . heightIcon ,
icon: AppAssets . heightIcon ,
label: " Height " . needTranslation ,
label: LocaleKeys . height . tr ( context: context ) ,
inputField: _buildTextField (
inputField: _buildTextField (
viewModel . heightController ,
viewModel . heightController ,
' 175 ' ,
' 175 ' ,
@ -330,7 +332,7 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
) ,
) ,
_buildSettingsRow (
_buildSettingsRow (
icon: AppAssets . weightScaleIcon ,
icon: AppAssets . weightScaleIcon ,
label: " Weight " . needTranslation ,
label: LocaleKeys . weight . tr ( context: context ) ,
inputField: _buildTextField (
inputField: _buildTextField (
viewModel . weightController ,
viewModel . weightController ,
' 75 ' ,
' 75 ' ,
@ -341,13 +343,13 @@ class _WaterMonitorSettingsPageState extends State<WaterMonitorSettingsPage> {
) ,
) ,
_buildSettingsRow (
_buildSettingsRow (
icon: AppAssets . dumbellIcon ,
icon: AppAssets . dumbellIcon ,
label: " Activity Level " . needTranslation ,
label: LocaleKeys . activityLevel . tr ( context: context ) ,
value: viewModel . selectedActivityLevel ,
value: viewModel . selectedActivityLevel ,
onRowTap: ( ) = > _showActivityLevelSelectionBottomsheet ( context , viewModel ) ,
onRowTap: ( ) = > _showActivityLevelSelectionBottomsheet ( context , viewModel ) ,
) ,
) ,
_buildSettingsRow (
_buildSettingsRow (
icon: AppAssets . notificationIconGrey ,
icon: AppAssets . notificationIconGrey ,
label: " Number of reminders in a day " . needTranslation ,
label: LocaleKeys . numberOfRemindersInADay . tr ( context: context ) ,
value: viewModel . selectedNumberOfReminders ,
value: viewModel . selectedNumberOfReminders ,
onRowTap: ( ) = > _showNumberOfRemindersSelectionBottomsheet ( context , viewModel ) ,
onRowTap: ( ) = > _showNumberOfRemindersSelectionBottomsheet ( context , viewModel ) ,
showDivider: false ,
showDivider: false ,