summaryrefslogtreecommitdiff
path: root/StoneIsland/plugins/cordova-plugin-firebase/src/ios/FirebasePlugin.m
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2017-09-26 01:35:13 +0200
committerJules Laplace <julescarbon@gmail.com>2017-09-26 01:35:13 +0200
commit597fa051833ca3df6eb185c0143ff82e02dacba1 (patch)
treecb25347477c57f82e955b054b70f4bb5359fb0d2 /StoneIsland/plugins/cordova-plugin-firebase/src/ios/FirebasePlugin.m
parent6a9186aea6b85beef28e3eb765fbf2322a1c7890 (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.m331
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