Skip to content
This repository was archived by the owner on Jan 14, 2025. It is now read-only.

Commit 4b29c1c

Browse files
authored
Merge pull request #1355 from jackw-kounta/master
Use FirebaseInstanceId for deviceToken, not from Intent
2 parents d1112a6 + 90cdcaa commit 4b29c1c

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotification.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import android.content.Intent;
99
import android.content.IntentFilter;
1010
import android.os.Bundle;
11+
12+
import androidx.annotation.NonNull;
1113
import androidx.core.app.NotificationManagerCompat;
1214

1315
import com.dieam.reactnativepushnotification.helpers.ApplicationBadgeHelper;
@@ -28,6 +30,10 @@
2830

2931
import android.util.Log;
3032

33+
import com.google.android.gms.tasks.OnCompleteListener;
34+
import com.google.android.gms.tasks.Task;
35+
import com.google.firebase.iid.FirebaseInstanceId;
36+
import com.google.firebase.iid.InstanceIdResult;
3137
import com.google.firebase.messaging.FirebaseMessaging;
3238

3339
public class RNPushNotification extends ReactContextBaseJavaModule implements ActivityEventListener {
@@ -84,15 +90,24 @@ public void onNewIntent(Intent intent) {
8490

8591
private void registerNotificationsRegistration() {
8692
IntentFilter intentFilter = new IntentFilter(getReactApplicationContext().getPackageName() + ".RNPushNotificationRegisteredToken");
93+
final RNPushNotificationJsDelivery fMjsDelivery = mJsDelivery;
8794

8895
getReactApplicationContext().registerReceiver(new BroadcastReceiver() {
8996
@Override
9097
public void onReceive(Context context, Intent intent) {
91-
String token = intent.getStringExtra("token");
92-
WritableMap params = Arguments.createMap();
93-
params.putString("deviceToken", token);
94-
95-
mJsDelivery.sendEvent("remoteNotificationsRegistered", params);
98+
FirebaseInstanceId.getInstance().getInstanceId()
99+
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
100+
@Override
101+
public void onComplete(@NonNull Task<InstanceIdResult> task) {
102+
if (!task.isSuccessful()) {
103+
return;
104+
}
105+
106+
WritableMap params = Arguments.createMap();
107+
params.putString("deviceToken", task.getResult().getToken());
108+
fMjsDelivery.sendEvent("remoteNotificationsRegistered", params);
109+
}
110+
});
96111
}
97112
}, intentFilter);
98113
}

0 commit comments

Comments
 (0)