Commit fd8f4a4c authored by Libin Lu's avatar Libin Lu

add subscribe to topic feature and fix event typo

parent 48770b8f
......@@ -65,14 +65,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
......@@ -81,12 +73,21 @@
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.firebase/firebase-messaging/9.0.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
......@@ -101,7 +102,6 @@
</content>
<orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="react-native-0.17.1" level="project" />
<orderEntry type="library" exported="" name="fresco-0.8.1" level="project" />
<orderEntry type="library" exported="" name="imagepipeline-0.8.1" level="project" />
<orderEntry type="library" exported="" name="play-services-base-9.0.1" level="project" />
......@@ -122,10 +122,11 @@
<orderEntry type="library" exported="" name="firebase-analytics-9.0.1" level="project" />
<orderEntry type="library" exported="" name="firebase-core-9.0.1" level="project" />
<orderEntry type="library" exported="" name="jsr305-3.0.0" level="project" />
<orderEntry type="library" exported="" name="react-native-0.20.1" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-23.0.1" level="project" />
<orderEntry type="library" exported="" name="okhttp-2.5.0" level="project" />
<orderEntry type="library" exported="" name="android-jsc-r174650" level="project" />
<orderEntry type="library" exported="" name="drawee-0.8.1" level="project" />
<orderEntry type="library" exported="" name="android-jsc-r174650" level="project" />
<orderEntry type="library" exported="" name="firebase-analytics-impl-9.0.1" level="project" />
<orderEntry type="library" exported="" name="bolts-android-1.1.4" level="project" />
<orderEntry type="library" exported="" name="commons-cli-1.2" level="project" />
......
......@@ -13,6 +13,7 @@ import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.RemoteMessage;
import android.os.Bundle;
......@@ -71,6 +72,16 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
promise.resolve(FirebaseInstanceId.getInstance().getToken());
}
@ReactMethod
public void subscribeToTopic(String topic){
FirebaseMessaging.getInstance().subscribeToTopic(topic);
}
@ReactMethod
public void unsubscribeFromTopic(String topic){
FirebaseMessaging.getInstance().unsubscribeFromTopic(topic);
}
private void sendEvent(String eventName, Object params) {
getReactApplicationContext()
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
......
import {
NativeModules,
DeviceEventEmitter,
} from 'react-native';
import {NativeModules, DeviceEventEmitter} from 'react-native';
const eventsMap = {
refersh: 'FCMTokenRefreshed',
notification: 'FCMNotificationReceived',
refreshToken: 'FCMTokenRefreshed',
notification: 'FCMNotificationReceived'
};
const FIRMessaging = NativeModules.RNFIRMessaging;
const FCM = {};
FCM.getFCMToken = function getFCMToken() {
FCM.getFCMToken = () => {
return FIRMessaging.getFCMToken();
};
FCM.requestPermissions = function requestPermissions() {
FCM.requestPermissions = () => {
return FIRMessaging.requestPermissions();
};
FCM.on = function on(event, callback) {
FCM.on = (event, callback) => {
const nativeEvent = eventsMap[event];
const listener = DeviceEventEmitter.addListener(nativeEvent, (params) => {
callback(params);
});
const listener = DeviceEventEmitter.addListener(nativeEvent, callback);
return function remove() {
listener.remove();
};
};
FCM.subscribeToTopic = (topic) => {
FIRMessaging.subscribeToTopic(topic);
}
FCM.unsubscribeFromTopic = (topic) => {
FIRMessaging.unsubscribeFromTopic(topic);
}
FCM.initialData = FIRMessaging.initialData;
FCM.initialAction = FIRMessaging.initialAction;
......
......@@ -109,6 +109,16 @@ RCT_EXPORT_METHOD(requestPermissions)
}
}
RCT_EXPORT_METHOD(subscribeToTopic: (NSString*) topic)
{
[[FIRMessaging messaging] subscribeToTopic:topic];
}
RCT_EXPORT_METHOD(unsubscribeFromTopic: (NSString*) topic)
{
[[FIRMessaging messaging] unsubscribeFromTopic:topic];
}
- (void)handleRemoteNotificationReceived:(NSNotification *)notification
{
[_bridge.eventDispatcher sendDeviceEventWithName:FCMNotificationReceived
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment