Skip to content

Commit

Permalink
[ios] add backwards compatibility to RN imports - fixed #80
Browse files Browse the repository at this point in the history
  • Loading branch information
Salakar committed May 5, 2017
1 parent 8b8077c commit da556ae
Show file tree
Hide file tree
Showing 9 changed files with 90 additions and 17 deletions.
14 changes: 13 additions & 1 deletion ios/RNFirebase/RNFirebase.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,21 @@
#define RNFirebase_h

#import <UIKit/UIKit.h>
#import "RCTBridgeModule.h"
#if __has_include(<React/RCTEventDispatcher.h>)
#import <React/RCTEventDispatcher.h>
#else // Compatibility for RN version < 0.40
#import "RCTEventDispatcher.h"
#endif
#if __has_include(<React/RCTEventEmitter.h>)
#import <React/RCTEventEmitter.h>
#else // Compatibility for RN version < 0.40
#import "RCTEventEmitter.h"
#endif
#if __has_include(<React/RCTBridgeModule.h>)
#import <React/RCTBridgeModule.h>
#else // Compatibility for RN version < 0.40
#import "RCTBridgeModule.h"
#endif

@interface RNFirebase : RCTEventEmitter <RCTBridgeModule> {
}
Expand Down
4 changes: 4 additions & 0 deletions ios/RNFirebase/RNFirebaseAnalytics.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
#ifndef RNFirebaseAnalytics_h
#define RNFirebaseAnalytics_h

#if __has_include(<React/RCTBridgeModule.h>)
#import <React/RCTBridgeModule.h>
#else // Compatibility for RN version < 0.40
#import "RCTBridgeModule.h"
#endif

@interface RNFirebaseAnalytics : NSObject <RCTBridgeModule> {

Expand Down
8 changes: 8 additions & 0 deletions ios/RNFirebase/RNFirebaseAuth.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,16 @@
#define RNFirebaseAuth_h

#import "Firebase.h"
#if __has_include(<React/RCTEventEmitter.h>)
#import <React/RCTEventEmitter.h>
#else // Compatibility for RN version < 0.40
#import "RCTEventEmitter.h"
#endif
#if __has_include(<React/RCTBridgeModule.h>)
#import <React/RCTBridgeModule.h>
#else // Compatibility for RN version < 0.40
#import "RCTBridgeModule.h"
#endif

@interface RNFirebaseAuth : RCTEventEmitter <RCTBridgeModule> {
FIRAuthStateDidChangeListenerHandle authListenerHandle;
Expand Down
4 changes: 4 additions & 0 deletions ios/RNFirebase/RNFirebaseCrash.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
#ifndef RNFirebaseCrash_h
#define RNFirebaseCrash_h

#if __has_include(<React/RCTBridgeModule.h>)
#import <React/RCTBridgeModule.h>
#else // Compatibility for RN version < 0.40
#import "RCTBridgeModule.h"
#endif

@interface RNFirebaseCrash : NSObject <RCTBridgeModule> {

Expand Down
8 changes: 8 additions & 0 deletions ios/RNFirebase/RNFirebaseDatabase.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,16 @@
#define RNFirebaseDatabase_h

#import "Firebase.h"
#if __has_include(<React/RCTEventEmitter.h>)
#import <React/RCTEventEmitter.h>
#else // Compatibility for RN version < 0.40
#import "RCTEventEmitter.h"
#endif
#if __has_include(<React/RCTBridgeModule.h>)
#import <React/RCTBridgeModule.h>
#else // Compatibility for RN version < 0.40
#import "RCTBridgeModule.h"
#endif

@interface RNFirebaseDatabase : RCTEventEmitter <RCTBridgeModule> {

Expand Down
4 changes: 4 additions & 0 deletions ios/RNFirebase/RNFirebaseErrors.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
#ifndef RNFirebaseErrors_h
#define RNFirebaseErrors_h

#if __has_include(<React/RCTBridgeModule.h>)
#import <React/RCTBridgeModule.h>
#else // Compatibility for RN version < 0.40
#import "RCTBridgeModule.h"
#endif
#import "Firebase.h"

@interface RNFirebaseErrors : NSObject <RCTBridgeModule> {
Expand Down
13 changes: 13 additions & 0 deletions ios/RNFirebase/RNFirebaseMessaging.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,22 @@
#import <UIKit/UIKit.h>

#import "Firebase.h"

#if __has_include(<React/RCTEventEmitter.h>)
#import <React/RCTEventEmitter.h>
#else // Compatibility for RN version < 0.40
#import "RCTEventEmitter.h"
#endif
#if __has_include(<React/RCTBridgeModule.h>)
#import <React/RCTBridgeModule.h>
#else // Compatibility for RN version < 0.40
#import "RCTBridgeModule.h"
#endif
#if __has_include(<React/RCTUtils.h>)
#import <React/RCTUtils.h>
#else // Compatibility for RN version < 0.40
#import "RCTUtils.h"
#endif

@import UserNotifications;

Expand Down
42 changes: 27 additions & 15 deletions ios/RNFirebase/RNFirebaseMessaging.m
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
#import "RNFirebaseMessaging.h"

#import <React/RCTConvert.h>
#if __has_include(<React/RCTEventDispatcher.h>)
#import <React/RCTEventDispatcher.h>
#else // Compatibility for RN version < 0.40
#import "RCTEventDispatcher.h"
#endif
#if __has_include(<React/RCTConvert.h>)
#import <React/RCTConvert.h>
#else // Compatibility for RN version < 0.40
#import "RCTConvert.h"
#endif
#if __has_include(<React/RCTUtils.h>)
#import <React/RCTUtils.h>
#else // Compatibility for RN version < 0.40
#import "RCTUtils.h"
#endif

@import UserNotifications;
#import <FirebaseMessaging/FirebaseMessaging.h>
Expand Down Expand Up @@ -53,13 +65,13 @@ + (UNNotificationRequest *)UNNotificationRequest:(id)json
content.categoryIdentifier = [RCTConvert NSString:details[@"click_action"]];
content.userInfo = details;
content.badge = [RCTConvert NSNumber:details[@"badge"]];

NSDate *fireDate = [RCTConvert NSDate:details[@"fire_date"]];

if(fireDate == nil){
return [UNNotificationRequest requestWithIdentifier:[RCTConvert NSString:details[@"id"]] content:content trigger:nil];
}

NSCalendarUnit interval = [RCTConvert NSCalendarUnit:details[@"repeat_interval"]];
NSCalendarUnit unitFlags;
switch (interval) {
Expand Down Expand Up @@ -177,12 +189,12 @@ - (void)dealloc
- (void)setBridge:(RCTBridge *)bridge
{
_bridge = bridge;

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleNotificationReceived:)
name:FCMNotificationReceived
object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(disconnectFCM)
name:UIApplicationDidEnterBackgroundNotification
Expand All @@ -191,19 +203,19 @@ - (void)setBridge:(RCTBridge *)bridge
selector:@selector(connectToFCM)
name:UIApplicationDidBecomeActiveNotification
object:nil];

[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(onTokenRefresh)
name:kFIRInstanceIDTokenRefreshNotification object:nil];

[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(sendDataMessageFailure:)
name:FIRMessagingSendErrorNotification object:nil];

[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(sendDataMessageSuccess:)
name:FIRMessagingSendSuccessNotification object:nil];

// For iOS 10 data message (sent via FCM)
dispatch_async(dispatch_get_main_queue(), ^{
[[FIRMessaging messaging] setRemoteMessageDelegate:self];
Expand Down Expand Up @@ -283,7 +295,7 @@ - (void) onTokenRefresh
];
#endif
}

[[UIApplication sharedApplication] registerForRemoteNotifications];
}

Expand Down Expand Up @@ -459,22 +471,22 @@ - (void)handleNotificationReceived:(NSNotification *)notification
self.notificationCallbacks[completionHandlerId] = completionHandler;
data[@"_completionHandlerId"] = completionHandlerId;
}

[_bridge.eventDispatcher sendDeviceEventWithName:FCMNotificationReceived body:data];

}

- (void)sendDataMessageFailure:(NSNotification *)notification
{
NSString *messageID = (NSString *)notification.userInfo[@"messageID"];

NSLog(@"sendDataMessageFailure: %@", messageID);
}

- (void)sendDataMessageSuccess:(NSNotification *)notification
{
NSString *messageID = (NSString *)notification.userInfo[@"messageID"];

NSLog(@"sendDataMessageSuccess: %@", messageID);
}

Expand Down
10 changes: 9 additions & 1 deletion ios/RNFirebase/RNFirebaseStorage.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,16 @@
#define RNFirebaseStorage_h

#import "Firebase.h"
#import "RCTBridgeModule.h"
#if __has_include(<React/RCTEventEmitter.h>)
#import <React/RCTEventEmitter.h>
#else // Compatibility for RN version < 0.40
#import "RCTEventEmitter.h"
#endif
#if __has_include(<React/RCTBridgeModule.h>)
#import <React/RCTBridgeModule.h>
#else // Compatibility for RN version < 0.40
#import "RCTBridgeModule.h"
#endif

@interface RNFirebaseStorage : RCTEventEmitter <RCTBridgeModule> {

Expand Down

0 comments on commit da556ae

Please sign in to comment.