Skip to content

Commit d737f85

Browse files
Time Selection Issue #731 Resolved (#810)
1 parent 9759cc8 commit d737f85

File tree

2 files changed

+30
-21
lines changed

2 files changed

+30
-21
lines changed

lib/app/modules/addOrUpdateAlarm/controllers/input_time_controller.dart

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,21 @@ class InputTimeController extends GetxController {
4040
super.onInit();
4141
}
4242

43+
void initTimeTextField() {
44+
AddOrUpdateAlarmController addOrUpdateAlarmController = Get.find<AddOrUpdateAlarmController>();
45+
selectedDateTime.value = addOrUpdateAlarmController.selectedTime.value;
46+
47+
isAM.value = addOrUpdateAlarmController.selectedTime.value.hour < 12;
48+
inputHrsController.text = settingsController.is24HrsEnabled.value
49+
? selectedDateTime.value.hour.toString()
50+
: (selectedDateTime.value.hour == 0
51+
? '12'
52+
: (selectedDateTime.value.hour > 12
53+
? (selectedDateTime.value.hour - 12).toString()
54+
: selectedDateTime.value.hour.toString()));
55+
inputMinutesController.text = selectedDateTime.value.minute.toString().padLeft(2, '0');
56+
}
57+
4358

4459
final isAM = true.obs;
4560

@@ -51,6 +66,10 @@ class InputTimeController extends GetxController {
5166

5267
void changeDatePicker() {
5368
isTimePicker.value = !isTimePicker.value;
69+
70+
if (isTimePicker.value) {
71+
initTimeTextField();
72+
}
5473
}
5574

5675

@@ -108,18 +127,6 @@ class InputTimeController extends GetxController {
108127
AddOrUpdateAlarmController addOrUpdateAlarmController = Get.find<AddOrUpdateAlarmController>();
109128
selectedDateTime.value = addOrUpdateAlarmController.selectedTime.value;
110129

111-
112-
isAM.value = addOrUpdateAlarmController.selectedTime.value.hour < 12;
113-
inputHrsController.text = settingsController.is24HrsEnabled.value
114-
? selectedDateTime.value.hour.toString()
115-
: (selectedDateTime.value.hour == 0
116-
? '12'
117-
: (selectedDateTime.value.hour > 12
118-
? (selectedDateTime.value.hour - 12).toString()
119-
: selectedDateTime.value.hour.toString()));
120-
inputMinutesController.text = selectedDateTime.value.minute.toString();
121-
122-
123130
toggleIfAtBoundary();
124131

125132
try {
@@ -135,7 +142,7 @@ class InputTimeController extends GetxController {
135142
int minute = int.parse(inputMinutesController.text);
136143
final time = TimeOfDay(hour: hour, minute: minute);
137144
DateTime today = DateTime.now();
138-
DateTime tomorrow = today.add(Duration(days: 1));
145+
DateTime tomorrow = today.add(const Duration(days: 1));
139146

140147
bool isNextDay = (time.hour == today.hour && time.minute < today.minute) || (time.hour < today.hour);
141148
bool isNextMonth = isNextDay && (today.day > tomorrow.day);
@@ -210,6 +217,9 @@ class LimitRange extends TextInputFormatter {
210217
@override
211218
TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
212219
try {
220+
if (newValue.text.isEmpty) {
221+
return newValue;
222+
}
213223
int value = int.parse(newValue.text);
214224
if (value < minRange) return TextEditingValue(text: minRange.toString());
215225
else if (value > maxRange) return TextEditingValue(text: maxRange.toString());

lib/app/modules/addOrUpdateAlarm/views/add_or_update_alarm_view.dart

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ import 'alarm_date_tile.dart';
3636
import 'guardian_angel.dart';
3737

3838
class AddOrUpdateAlarmView extends GetView<AddOrUpdateAlarmController> {
39-
AddOrUpdateAlarmView({Key? key}) : super(key: key);
39+
AddOrUpdateAlarmView({super.key}) {
40+
inputTimeController.initTimeTextField();
41+
}
4042

4143
final ThemeController themeController = Get.find<ThemeController>();
4244
final InputTimeController inputTimeController =
@@ -620,16 +622,13 @@ class AddOrUpdateAlarmView extends GetView<AddOrUpdateAlarmController> {
620622
inputFormatters: [
621623
FilteringTextInputFormatter
622624
.allow(RegExp(
623-
'[1,2,3,4,5,6,7,8,9,0]')),
625+
'[0-9]')),
624626
LengthLimitingTextInputFormatter(
625627
2),
626628
LimitRange(
627-
0,
628-
settingsController
629-
.is24HrsEnabled
630-
.value
631-
? 23
632-
: 12),
629+
settingsController.is24HrsEnabled.value ? 0 : 1,
630+
settingsController.is24HrsEnabled.value ? 23 : 12,
631+
),
633632
],
634633
),
635634
),

0 commit comments

Comments
 (0)