diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2017-09-26 01:35:13 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2017-09-26 01:35:13 +0200 |
| commit | 597fa051833ca3df6eb185c0143ff82e02dacba1 (patch) | |
| tree | cb25347477c57f82e955b054b70f4bb5359fb0d2 /StoneIsland/plugins/cordova-plugin-firebase/src/ios/FirebasePlugin.m | |
| parent | 6a9186aea6b85beef28e3eb765fbf2322a1c7890 (diff) | |
push plugin ugh
Diffstat (limited to 'StoneIsland/plugins/cordova-plugin-firebase/src/ios/FirebasePlugin.m')
| -rw-r--r-- | StoneIsland/plugins/cordova-plugin-firebase/src/ios/FirebasePlugin.m | 331 |
1 files changed, 0 insertions, 331 deletions
diff --git a/StoneIsland/plugins/cordova-plugin-firebase/src/ios/FirebasePlugin.m b/StoneIsland/plugins/cordova-plugin-firebase/src/ios/FirebasePlugin.m deleted file mode 100644 index 580fb760..00000000 --- a/StoneIsland/plugins/cordova-plugin-firebase/src/ios/FirebasePlugin.m +++ /dev/null @@ -1,331 +0,0 @@ -#import "FirebasePlugin.h" -#import <Cordova/CDV.h> -#import "AppDelegate.h" -#import "Firebase.h" -@import FirebaseInstanceID; -@import FirebaseMessaging; -@import FirebaseAnalytics; -@import FirebaseRemoteConfig; - -#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 -@import UserNotifications; -#endif - -#ifndef NSFoundationVersionNumber_iOS_9_x_Max -#define NSFoundationVersionNumber_iOS_9_x_Max 1299 -#endif - -@implementation FirebasePlugin - -@synthesize notificationCallbackId; -@synthesize tokenRefreshCallbackId; -@synthesize notificationStack; - -static NSInteger const kNotificationStackSize = 10; -static FirebasePlugin *firebasePlugin; - -+ (FirebasePlugin *) firebasePlugin { - return firebasePlugin; -} - -- (void)pluginInitialize { - NSLog(@"Starting Firebase plugin"); - firebasePlugin = self; -} - -// DEPRECATED - alias of getToken -- (void)getInstanceId:(CDVInvokedUrlCommand *)command { - CDVPluginResult *pluginResult; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: - [[FIRInstanceID instanceID] token]]; - - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; -} - -- (void)getToken:(CDVInvokedUrlCommand *)command { - CDVPluginResult *pluginResult; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: - [[FIRInstanceID instanceID] token]]; - - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; -} -- (void)hasPermission:(CDVInvokedUrlCommand *)command -{ - BOOL enabled = NO; - UIApplication *application = [UIApplication sharedApplication]; - if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) { - enabled = application.currentUserNotificationSettings.types != UIUserNotificationTypeNone; - } else { -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - enabled = application.enabledRemoteNotificationTypes != UIRemoteNotificationTypeNone; -#pragma GCC diagnostic pop - } - - NSMutableDictionary* message = [NSMutableDictionary dictionaryWithCapacity:1]; - [message setObject:[NSNumber numberWithBool:enabled] forKey:@"isEnabled"]; - CDVPluginResult *commandResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:message]; - [self.commandDelegate sendPluginResult:commandResult callbackId:command.callbackId]; -} -- (void)grantPermission:(CDVInvokedUrlCommand *)command { - if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max) { - if ([[UIApplication sharedApplication]respondsToSelector:@selector(registerUserNotificationSettings:)]) { - UIUserNotificationType notificationTypes = - (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge); - UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:notificationTypes categories:nil]; - [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; - [[UIApplication sharedApplication] registerForRemoteNotifications]; - } else { - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wdeprecated-declarations" - [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)]; - #pragma GCC diagnostic pop - } - - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - - - #if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 - BOOL isIOS10 = TRUE; - #else - BOOL isIOS10 = FALSE; - #endif - - - if ( !isIOS10 ) { - [[UIApplication sharedApplication] registerForRemoteNotifications]; - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - - - // IOS 10 - UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert|UNAuthorizationOptionSound|UNAuthorizationOptionBadge; - [[UNUserNotificationCenter currentNotificationCenter] - requestAuthorizationWithOptions:authOptions - completionHandler:^(BOOL granted, NSError * _Nullable error) { - - if ( ![NSThread isMainThread] ) { - dispatch_sync(dispatch_get_main_queue(), ^{ - [[UNUserNotificationCenter currentNotificationCenter] setDelegate:self]; - [[FIRMessaging messaging] setRemoteMessageDelegate:self]; - [[UIApplication sharedApplication] registerForRemoteNotifications]; - - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus: granted ? CDVCommandStatus_OK : CDVCommandStatus_ERROR]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }); - } - else { - [[UNUserNotificationCenter currentNotificationCenter] setDelegate:self]; - [[FIRMessaging messaging] setRemoteMessageDelegate:self]; - [[UIApplication sharedApplication] registerForRemoteNotifications]; - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - } - } - ]; - - return; -} - -- (void)setBadgeNumber:(CDVInvokedUrlCommand *)command { - int number = [[command.arguments objectAtIndex:0] intValue]; - - [self.commandDelegate runInBackground:^{ - [[UIApplication sharedApplication] setApplicationIconBadgeNumber:number]; - - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void)getBadgeNumber:(CDVInvokedUrlCommand *)command { - [self.commandDelegate runInBackground:^{ - long badge = [[UIApplication sharedApplication] applicationIconBadgeNumber]; - - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble:badge]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void)subscribe:(CDVInvokedUrlCommand *)command { - NSString* topic = [NSString stringWithFormat:@"/topics/%@", [command.arguments objectAtIndex:0]]; - - [[FIRMessaging messaging] subscribeToTopic: topic]; - - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; -} - -- (void)unsubscribe:(CDVInvokedUrlCommand *)command { - NSString* topic = [NSString stringWithFormat:@"/topics/%@", [command.arguments objectAtIndex:0]]; - - [[FIRMessaging messaging] unsubscribeFromTopic: topic]; - - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; -} - -- (void)unregister:(CDVInvokedUrlCommand *)command { - [[FIRInstanceID instanceID] deleteIDWithHandler:^void(NSError *_Nullable error){ - if (error) { - NSLog(@"Unable to delete instance"); - } else { - NSString* currentToken = [[FIRInstanceID instanceID] token]; - if (currentToken != nil) { - [self sendToken:currentToken]; - } - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - } - }]; -} - -- (void)onNotificationOpen:(CDVInvokedUrlCommand *)command { - self.notificationCallbackId = command.callbackId; - - if (self.notificationStack != nil && [self.notificationStack count]) { - for (NSDictionary *userInfo in self.notificationStack) { - [self sendNotification:userInfo]; - } - [self.notificationStack removeAllObjects]; - } -} - -- (void)onTokenRefresh:(CDVInvokedUrlCommand *)command { - self.tokenRefreshCallbackId = command.callbackId; - NSString* currentToken = [[FIRInstanceID instanceID] token]; - if (currentToken != nil) { - [self sendToken:currentToken]; - } -} - -- (void)sendNotification:(NSDictionary *)userInfo { - if (self.notificationCallbackId != nil) { - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:userInfo]; - [pluginResult setKeepCallbackAsBool:YES]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:self.notificationCallbackId]; - } else { - if (!self.notificationStack) { - self.notificationStack = [[NSMutableArray alloc] init]; - } - - // stack notifications until a callback has been registered - [self.notificationStack addObject:userInfo]; - - if ([self.notificationStack count] >= kNotificationStackSize) { - [self.notificationStack removeLastObject]; - } - } -} - -- (void)sendToken:(NSString *)token { - if (self.tokenRefreshCallbackId != nil) { - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:token]; - [pluginResult setKeepCallbackAsBool:YES]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:self.tokenRefreshCallbackId]; - } -} - -- (void)logEvent:(CDVInvokedUrlCommand *)command { - [self.commandDelegate runInBackground:^{ - NSString* name = [command.arguments objectAtIndex:0]; - NSDictionary* parameters = [command.arguments objectAtIndex:1]; - - [FIRAnalytics logEventWithName:name parameters:parameters]; - - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void)setScreenName:(CDVInvokedUrlCommand *)command { - NSString* name = [command.arguments objectAtIndex:0]; - - [FIRAnalytics setScreenName:name screenClass:NULL]; - - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; -} - -- (void)setUserId:(CDVInvokedUrlCommand *)command { - [self.commandDelegate runInBackground:^{ - NSString* id = [command.arguments objectAtIndex:0]; - - [FIRAnalytics setUserID:id]; - - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void)setUserProperty:(CDVInvokedUrlCommand *)command { - [self.commandDelegate runInBackground:^{ - NSString* name = [command.arguments objectAtIndex:0]; - NSString* value = [command.arguments objectAtIndex:1]; - - [FIRAnalytics setUserPropertyString:value forName:name]; - - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void)fetch:(CDVInvokedUrlCommand *)command { - [self.commandDelegate runInBackground:^{ - FIRRemoteConfig* remoteConfig = [FIRRemoteConfig remoteConfig]; - - if ([command.arguments count] > 0){ - int expirationDuration = [[command.arguments objectAtIndex:0] intValue]; - - [remoteConfig fetchWithExpirationDuration:expirationDuration completionHandler:^(FIRRemoteConfigFetchStatus status, NSError * _Nullable error) { - if (status == FIRRemoteConfigFetchStatusSuccess) { - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - } - }]; - } else { - [remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError * _Nullable error) { - if (status == FIRRemoteConfigFetchStatusSuccess) { - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - } - }]; - } - }]; -} - -- (void)activateFetched:(CDVInvokedUrlCommand *)command { - [self.commandDelegate runInBackground:^{ - FIRRemoteConfig* remoteConfig = [FIRRemoteConfig remoteConfig]; - BOOL activated = [remoteConfig activateFetched]; - CDVPluginResult *pluginResult; - if (activated) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - } else { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR]; - } - - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void)getValue:(CDVInvokedUrlCommand *)command { - [self.commandDelegate runInBackground:^{ - NSString* key = [command.arguments objectAtIndex:0]; - FIRRemoteConfig* remoteConfig = [FIRRemoteConfig remoteConfig]; - NSString* value = remoteConfig[key].stringValue; - CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:value]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -@end |
