@@ -3,22 +3,26 @@ import 'package:on_time_front/domain/entities/schedule_entity.dart';
33import 'package:on_time_front/domain/entities/schedule_with_preparation_entity.dart' ;
44
55const alarmDefaultOffset = Duration (minutes: 5 );
6- const alarmLaunchPayloadVersion = '7 ' ;
6+ const alarmLaunchPayloadVersion = '8 ' ;
77
8- enum AlarmProvider {
9- androidAlarmManager,
10- iosAlarmKit,
11- localNotification,
12- none,
13- }
8+ enum AlarmProvider { androidAlarmManager, iosAlarmKit, localNotification, none }
149
15- enum AlarmPermissionState {
16- granted,
17- denied,
18- notDetermined,
19- unsupported,
10+ const androidFullScreenAlarmPolicyApproved = false ;
11+
12+ bool nativeAlarmProviderAllowedByReleasePolicy (AlarmProvider provider) {
13+ switch (provider) {
14+ case AlarmProvider .iosAlarmKit:
15+ return true ;
16+ case AlarmProvider .androidAlarmManager:
17+ return androidFullScreenAlarmPolicyApproved;
18+ case AlarmProvider .localNotification:
19+ case AlarmProvider .none:
20+ return false ;
21+ }
2022}
2123
24+ enum AlarmPermissionState { granted, denied, notDetermined, unsupported }
25+
2226enum AlarmPermissionIssue {
2327 nativePermissionDenied,
2428 notificationPermissionDenied,
@@ -222,10 +226,10 @@ class AlarmSettings extends Equatable {
222226
223227 @override
224228 List <Object ?> get props => [
225- alarmsEnabled,
226- defaultAlarmOffsetMinutes,
227- updatedAt,
228- ];
229+ alarmsEnabled,
230+ defaultAlarmOffsetMinutes,
231+ updatedAt,
232+ ];
229233}
230234
231235class AlarmDeviceInfo extends Equatable {
@@ -249,14 +253,14 @@ class AlarmDeviceInfo extends Equatable {
249253
250254 @override
251255 List <Object ?> get props => [
252- deviceId,
253- platform,
254- appVersion,
255- osVersion,
256- supportsNativeAlarm,
257- nativeAlarmProvider,
258- fallbackProvider,
259- ];
256+ deviceId,
257+ platform,
258+ appVersion,
259+ osVersion,
260+ supportsNativeAlarm,
261+ nativeAlarmProvider,
262+ fallbackProvider,
263+ ];
260264}
261265
262266class AlarmSchedulerCapabilities extends Equatable {
@@ -278,10 +282,10 @@ class AlarmSchedulerCapabilities extends Equatable {
278282
279283 @override
280284 List <Object ?> get props => [
281- supportsNativeAlarm,
282- nativeAlarmProvider,
283- fallbackProvider,
284- ];
285+ supportsNativeAlarm,
286+ nativeAlarmProvider,
287+ fallbackProvider,
288+ ];
285289}
286290
287291class ScheduledAlarmRecord extends Equatable {
@@ -333,28 +337,24 @@ class ScheduledAlarmRecord extends Equatable {
333337
334338 @override
335339 List <Object ?> get props => [
336- scheduleId,
337- alarmTime,
338- preparationStartTime,
339- scheduleFingerprint,
340- nativeAlarmId,
341- fallbackNotificationId,
342- provider,
343- scheduleTitle,
344- payload,
345- ];
340+ scheduleId,
341+ alarmTime,
342+ preparationStartTime,
343+ scheduleFingerprint,
344+ nativeAlarmId,
345+ fallbackNotificationId,
346+ provider,
347+ scheduleTitle,
348+ payload,
349+ ];
346350}
347351
348352class AlarmFailure extends Equatable {
349353 final String ? scheduleId;
350354 final AlarmFailureReason reason;
351355 final String ? message;
352356
353- const AlarmFailure ({
354- required this .reason,
355- this .scheduleId,
356- this .message,
357- });
357+ const AlarmFailure ({required this .reason, this .scheduleId, this .message});
358358
359359 @override
360360 List <Object ?> get props => [scheduleId, reason, message];
@@ -391,18 +391,18 @@ class AlarmReconciliationResult extends Equatable {
391391
392392 @override
393393 List <Object ?> get props => [
394- status,
395- permissionIssue,
396- nativeAlarmProvider,
397- fallbackProvider,
398- armedScheduleIds,
399- skippedScheduleCount,
400- failures,
401- scheduleWindowStart,
402- scheduleWindowEnd,
403- alarmCoverageStart,
404- alarmCoverageEnd,
405- ];
394+ status,
395+ permissionIssue,
396+ nativeAlarmProvider,
397+ fallbackProvider,
398+ armedScheduleIds,
399+ skippedScheduleCount,
400+ failures,
401+ scheduleWindowStart,
402+ scheduleWindowEnd,
403+ alarmCoverageStart,
404+ alarmCoverageEnd,
405+ ];
406406}
407407
408408class AlarmStatusReport extends Equatable {
@@ -440,21 +440,21 @@ class AlarmStatusReport extends Equatable {
440440
441441 @override
442442 List <Object ?> get props => [
443- deviceId,
444- reconciledAt,
445- scheduleWindowStart,
446- scheduleWindowEnd,
447- alarmCoverageStart,
448- alarmCoverageEnd,
449- status,
450- permissionIssue,
451- nativeAlarmProvider,
452- fallbackProvider,
453- armedScheduleCount,
454- armedScheduleIds,
455- skippedScheduleCount,
456- failures,
457- ];
443+ deviceId,
444+ reconciledAt,
445+ scheduleWindowStart,
446+ scheduleWindowEnd,
447+ alarmCoverageStart,
448+ alarmCoverageEnd,
449+ status,
450+ permissionIssue,
451+ nativeAlarmProvider,
452+ fallbackProvider,
453+ armedScheduleCount,
454+ armedScheduleIds,
455+ skippedScheduleCount,
456+ failures,
457+ ];
458458}
459459
460460bool isAlarmEligibleSchedule (ScheduleWithPreparationEntity schedule) {
@@ -501,14 +501,14 @@ ScheduledAlarmRecord buildScheduledAlarmRecord(
501501 provider: provider,
502502 scheduleTitle: schedule.scheduleName,
503503 payload: {
504- 'type' : 'schedule_alarm ' ,
504+ 'type' : 'schedule_notification ' ,
505505 'alarmLaunchPayloadVersion' : alarmLaunchPayloadVersion,
506506 'scheduleId' : schedule.id,
507507 'alarmTime' : alarmTime.toIso8601String (),
508508 'preparationStartTime' : preparationStartTime.toIso8601String (),
509509 'scheduleFingerprint' : buildAlarmScheduleFingerprint (schedule),
510510 'placeName' : schedule.place.placeName,
511- 'promptVariant' : 'alarm ' ,
511+ 'promptVariant' : 'notification ' ,
512512 },
513513 );
514514}
0 commit comments