Browse Source

Add internal `isRepeating method`

Sebastián Katzer 11 năm trước cách đây
mục cha
commit
71228b66bd

+ 2 - 0
src/ios/APPLocalNotificationOptions.h

@@ -35,5 +35,7 @@
 
 // Encode the user info dict to JSON
 - (NSString*) encodeToJSON;
+// If it's a repeating notification
+- (BOOL) isRepeating;
 
 @end

+ 14 - 1
src/ios/APPLocalNotificationOptions.m

@@ -82,7 +82,7 @@
 - (BOOL) autoCancel
 {
     if (IsAtLeastiOSVersion(@"8.0")){
-        return self.repeatInterval == NSCalendarUnitEra;
+        return ![self isRepeating];
     } else {
         return [[dict objectForKey:@"autoCancel"] boolValue];
     }
@@ -201,6 +201,9 @@
     return NSCalendarUnitEra;
 }
 
+#pragma mark -
+#pragma mark Methods
+
 /**
  * The notification's user info dict.
  */
@@ -231,6 +234,16 @@
                                            withString:@""];
 }
 
+/**
+ * If it's a repeating notification.
+ */
+- (BOOL) isRepeating
+{
+    NSCalendarUnit interval = self.repeatInterval;
+
+    return !(interval == NSCalendarUnitEra || interval == 0);
+}
+
 #pragma mark -
 #pragma mark Helpers
 

+ 2 - 0
src/ios/UILocalNotification+APPLocalNotification.h

@@ -33,5 +33,7 @@
 - (BOOL) wasInThePast;
 // If the notification was already triggered
 - (BOOL) wasTriggered;
+// If it's a repeating notification
+- (BOOL) isRepeating;
 
 @end

+ 12 - 1
src/ios/UILocalNotification+APPLocalNotification.m

@@ -61,6 +61,9 @@ static char optionsKey;
     self.soundName = options.soundName;
 }
 
+#pragma mark -
+#pragma mark Methods
+
 /**
  * The options provided by the plug-in.
  */
@@ -128,7 +131,7 @@ static char optionsKey;
 
     int timespan     = [now timeIntervalSinceDate:fireDate];
 
-    if (self.repeatInterval != NSCalendarUnitEra) {
+    if ([self isRepeating]) {
         timespan = timespan % [self repeatIntervalInSeconds];
     }
 
@@ -156,4 +159,12 @@ static char optionsKey;
     return isLaterThanOrEqualTo;
 }
 
+/**
+ * If it's a repeating notification.
+ */
+- (BOOL) isRepeating
+{
+    return [self.options isRepeating];
+}
+
 @end