@@ -9,14 +9,17 @@ import 'package:flutter_volume_controller/flutter_volume_controller.dart';
9
9
10
10
import 'package:get/get.dart' ;
11
11
import 'package:ultimate_alarm_clock/app/data/models/alarm_model.dart' ;
12
+ import 'package:ultimate_alarm_clock/app/data/models/quote_model.dart' ;
12
13
13
14
import 'package:ultimate_alarm_clock/app/data/models/user_model.dart' ;
14
15
15
16
import 'package:ultimate_alarm_clock/app/data/providers/firestore_provider.dart' ;
16
17
import 'package:ultimate_alarm_clock/app/data/providers/isar_provider.dart' ;
17
18
import 'package:ultimate_alarm_clock/app/data/providers/secure_storage_provider.dart' ;
18
19
import 'package:ultimate_alarm_clock/app/modules/settings/controllers/settings_controller.dart' ;
20
+ import 'package:ultimate_alarm_clock/app/modules/settings/controllers/theme_controller.dart' ;
19
21
import 'package:ultimate_alarm_clock/app/utils/audio_utils.dart' ;
22
+ import 'package:ultimate_alarm_clock/app/utils/constants.dart' ;
20
23
21
24
import 'package:ultimate_alarm_clock/app/utils/utils.dart' ;
22
25
import 'package:vibration/vibration.dart' ;
@@ -36,6 +39,7 @@ class AlarmControlController extends GetxController {
36
39
RxBool showButton = false .obs;
37
40
StreamSubscription ? _sensorSubscription;
38
41
HomeController homeController = Get .find <HomeController >();
42
+ ThemeController themeController = Get .find <ThemeController >();
39
43
SettingsController settingsController = Get .find <SettingsController >();
40
44
RxBool get is24HourFormat => settingsController.is24HrsEnabled;
41
45
Rx <AlarmModel > currentlyRingingAlarm = Utils .alarmModelInit.obs;
@@ -50,9 +54,6 @@ class AlarmControlController extends GetxController {
50
54
RxInt guardianCoundown = 120. obs;
51
55
RxBool isPreviewMode = false .obs;
52
56
53
-
54
-
55
-
56
57
getNextAlarm () async {
57
58
UserModel ? _userModel = await SecureStorageProvider ().retrieveUserModel ();
58
59
AlarmModel _alarmRecord = homeController.genFakeAlarmModel ();
@@ -169,6 +170,68 @@ class AlarmControlController extends GetxController {
169
170
});
170
171
}
171
172
173
+ void showQuotePopup (Quote quote) {
174
+ Get .defaultDialog (
175
+ title: 'Motivational Quote' ,
176
+ titlePadding: const EdgeInsets .only (
177
+ top: 20 ,
178
+ bottom: 10 ,
179
+ ),
180
+ backgroundColor: themeController.secondaryBackgroundColor.value,
181
+ titleStyle: TextStyle (
182
+ color: themeController.primaryTextColor.value,
183
+ ),
184
+ contentPadding: const EdgeInsets .all (20 ),
185
+ content: Column (
186
+ children: [
187
+ Obx (
188
+ () => Text (
189
+ quote.getQuote (),
190
+ style: TextStyle (
191
+ color: themeController.primaryTextColor.value,
192
+ ),
193
+ ),
194
+ ),
195
+ const SizedBox (
196
+ height: 15 ,
197
+ ),
198
+ Align (
199
+ alignment: Alignment .centerRight,
200
+ child: Obx (
201
+ () => Text (
202
+ quote.getAuthor (),
203
+ style: TextStyle (
204
+ color: themeController.primaryTextColor.value,
205
+ fontWeight: FontWeight .w600,
206
+ fontStyle: FontStyle .italic,
207
+ ),
208
+ ),
209
+ ),
210
+ ),
211
+ const SizedBox (
212
+ height: 30 ,
213
+ ),
214
+ TextButton (
215
+ style: ButtonStyle (
216
+ backgroundColor: MaterialStateProperty .all (
217
+ kprimaryColor,
218
+ ),
219
+ ),
220
+ onPressed: () {
221
+ Get .back ();
222
+ },
223
+ child: Text (
224
+ 'Dismiss' ,
225
+ style: TextStyle (
226
+ color: themeController.secondaryTextColor.value,
227
+ ),
228
+ ),
229
+ ),
230
+ ],
231
+ ),
232
+ );
233
+ }
234
+
172
235
@override
173
236
void onInit () async {
174
237
super .onInit ();
@@ -200,8 +263,6 @@ class AlarmControlController extends GetxController {
200
263
});
201
264
}
202
265
203
-
204
-
205
266
showButton.value = true ;
206
267
initialVolume = await FlutterVolumeController .getVolume (
207
268
stream: AudioStream .alarm,
@@ -269,6 +330,12 @@ class AlarmControlController extends GetxController {
269
330
270
331
AudioUtils .playAlarm (alarmRecord: currentlyRingingAlarm.value);
271
332
333
+
334
+ if (currentlyRingingAlarm.value.showMotivationalQuote) {
335
+ Quote quote = Utils .getRandomQuote ();
336
+ showQuotePopup (quote);
337
+ }
338
+
272
339
// Setting snooze duration
273
340
minutes.value = currentlyRingingAlarm.value.snoozeDuration;
274
341
0 commit comments