Commit 2ba058ab authored by Libin Lu's avatar Libin Lu

use onNewIntent from RN 0.30.0

parent ae8d695e
......@@ -71,7 +71,7 @@ Notes:
- replace `"fcm.ACTION.HELLO"` by the `click_action` you want to match
And pass intent into package, edit `MainActivity.java`:
If you are using RN<0.30.0 and react-native-fcm < 1.0.15, pass intent into package, edit `MainActivity.java`:
- RN 0.28+:
......
......@@ -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,6 +73,14 @@
<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" />
......@@ -103,31 +103,31 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="support-v4-23.2.1" level="project" />
<orderEntry type="library" exported="" name="imagepipeline-okhttp3-0.11.0" level="project" />
<orderEntry type="library" exported="" name="firebase-iid-9.2.0" level="project" />
<orderEntry type="library" exported="" name="firebase-iid-9.2.1" level="project" />
<orderEntry type="library" exported="" name="okhttp-3.2.0" level="project" />
<orderEntry type="library" exported="" name="firebase-common-9.2.0" level="project" />
<orderEntry type="library" exported="" name="okio-1.8.0" level="project" />
<orderEntry type="library" exported="" name="fbcore-0.11.0" level="project" />
<orderEntry type="library" exported="" name="firebase-common-9.2.1" level="project" />
<orderEntry type="library" exported="" name="jackson-core-2.2.3" level="project" />
<orderEntry type="library" exported="" name="firebase-analytics-impl-9.2.0" level="project" />
<orderEntry type="library" exported="" name="drawee-0.11.0" level="project" />
<orderEntry type="library" exported="" name="support-annotations-23.2.1" level="project" />
<orderEntry type="library" exported="" name="firebase-core-9.2.0" level="project" />
<orderEntry type="library" exported="" name="okhttp-urlconnection-3.2.0" level="project" />
<orderEntry type="library" exported="" name="firebase-core-9.2.1" level="project" />
<orderEntry type="library" exported="" name="library-2.4.0" level="project" />
<orderEntry type="library" exported="" name="imagepipeline-base-0.11.0" level="project" />
<orderEntry type="library" exported="" name="fresco-0.11.0" level="project" />
<orderEntry type="library" exported="" name="react-native-0.29.0" level="project" />
<orderEntry type="library" exported="" name="okhttp-ws-3.2.0" level="project" />
<orderEntry type="library" exported="" name="jsr305-3.0.0" level="project" />
<orderEntry type="library" exported="" name="okhttp-ws-3.2.0" level="project" />
<orderEntry type="library" exported="" name="bolts-tasks-1.4.0" level="project" />
<orderEntry type="library" exported="" name="firebase-analytics-9.2.0" level="project" />
<orderEntry type="library" exported="" name="firebase-analytics-9.2.1" level="project" />
<orderEntry type="library" exported="" name="firebase-analytics-impl-9.2.1" level="project" />
<orderEntry type="library" exported="" name="play-services-basement-9.2.1" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-23.0.1" level="project" />
<orderEntry type="library" exported="" name="android-jsc-r174650" level="project" />
<orderEntry type="library" exported="" name="imagepipeline-0.11.0" level="project" />
<orderEntry type="library" exported="" name="play-services-basement-9.2.0" level="project" />
<orderEntry type="library" exported="" name="firebase-messaging-9.2.0" level="project" />
<orderEntry type="library" exported="" name="react-native-0.30.0" level="project" />
<orderEntry type="library" exported="" name="recyclerview-v7-23.0.1" level="project" />
<orderEntry type="library" exported="" name="play-services-tasks-9.2.0" level="project" />
<orderEntry type="library" exported="" name="firebase-messaging-9.2.1" level="project" />
<orderEntry type="library" exported="" name="play-services-tasks-9.2.1" level="project" />
</component>
</module>
\ No newline at end of file
......@@ -4,6 +4,7 @@ import android.content.BroadcastReceiver;
import android.content.Intent;
import android.content.IntentFilter;
import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.LifecycleEventListener;
import com.facebook.react.bridge.Promise;
......@@ -25,13 +26,14 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class FIRMessagingModule extends ReactContextBaseJavaModule implements LifecycleEventListener {
public class FIRMessagingModule extends ReactContextBaseJavaModule implements LifecycleEventListener, ActivityEventListener {
private final static String TAG = FIRMessagingModule.class.getCanonicalName();
Intent currentIntent;
Intent initIntent;
public FIRMessagingModule(ReactApplicationContext reactContext) {
super(reactContext);
getReactApplicationContext().addLifecycleEventListener(this);
getReactApplicationContext().addActivityEventListener(this);
registerTokenRefreshHandler();
registerMessageHandler();
}
......@@ -112,14 +114,9 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
}, intentFilter);
}
@Override
public void onHostResume() {
Intent newIntent = getCurrentActivity().getIntent();
if(newIntent == currentIntent){
return;
}
private WritableMap parseIntent(Intent intent){
WritableMap params;
Bundle extras = newIntent.getExtras();
Bundle extras = intent.getExtras();
if (extras != null) {
try {
params = Arguments.fromBundle(extras);
......@@ -131,15 +128,19 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
params = Arguments.createMap();
}
WritableMap fcm = Arguments.createMap();
fcm.putString("action", newIntent.getAction());
fcm.putString("action", intent.getAction());
params.putMap("fcm", fcm);
if (currentIntent == null){
return params;
}
@Override
public void onHostResume() {
if (initIntent == null){
//the first intent is initial intent that opens the app
sendEvent("FCMInitData", params);
} else {
sendEvent("FCMNotificationReceived", params);
Intent newIntent = getCurrentActivity().getIntent();
sendEvent("FCMInitData", parseIntent(newIntent));
initIntent = newIntent;
}
currentIntent = newIntent;
}
@Override
......@@ -150,4 +151,13 @@ public class FIRMessagingModule extends ReactContextBaseJavaModule implements Li
public void onHostDestroy() {
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
}
@Override
public void onNewIntent(Intent intent){
sendEvent("FCMNotificationReceived", parseIntent(intent));
}
}
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