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