diff --git a/keyserver/src/push/send.js b/keyserver/src/push/send.js --- a/keyserver/src/push/send.js +++ b/keyserver/src/push/send.js @@ -23,7 +23,7 @@ rawThreadInfoFromServerThreadInfo, threadInfoFromRawThreadInfo, } from 'lib/shared/thread-utils.js'; -import { FUTURE_CODE_VERSION } from 'lib/shared/version-utils.js'; +import { NEW_CODE_VERSION } from 'lib/shared/version-utils.js'; import type { Platform, PlatformDetails } from 'lib/types/device-types.js'; import { messageTypes } from 'lib/types/message-types-enum.js'; import { @@ -790,7 +790,7 @@ isTextNotification && !collapseKey && codeVersion && - codeVersion > FUTURE_CODE_VERSION; + codeVersion > NEW_CODE_VERSION; const notifID = collapseKey ? collapseKey : dbID; const { merged, ...rest } = notifTexts; diff --git a/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotificationParser.java b/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotificationParser.java --- a/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotificationParser.java +++ b/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotificationParser.java @@ -1,8 +1,8 @@ package app.comm.android.notifications; +import android.os.Bundle; import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.WritableMap; -import com.google.firebase.messaging.RemoteMessage; import java.util.Set; public class CommAndroidNotificationParser { @@ -16,15 +16,12 @@ CommNotificationsHandler.MESSAGE_INFOS_KEY, CommNotificationsHandler.PREFIX_KEY); - public static WritableMap - parseRemoteMessageToJSMessage(RemoteMessage message) { - if (message.getData() == null) { - return null; - } + public static WritableMap parseRemoteMessageToJSMessage(Bundle messageData) { + WritableMap jsMessage = Arguments.createMap(); for (String key : OBLIGATORY_KEYS) { - String value = message.getData().get(key); + String value = messageData.getString(key); if (value == null) { return null; } @@ -32,7 +29,7 @@ } for (String key : OPTIONAL_KEYS) { - String value = message.getData().get(key); + String value = messageData.getString(key); if (value == null) { continue; } diff --git a/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotifications.java b/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotifications.java --- a/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotifications.java +++ b/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotifications.java @@ -17,7 +17,6 @@ import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.WritableMap; import com.google.firebase.messaging.FirebaseMessaging; -import com.google.firebase.messaging.RemoteMessage; import java.util.HashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; @@ -71,7 +70,7 @@ @ReactMethod public void getInitialNotification(Promise promise) { - RemoteMessage initialNotification = + Bundle initialNotification = getCurrentActivity().getIntent().getParcelableExtra("message"); if (initialNotification == null) { promise.resolve(null); diff --git a/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotificationsEventEmitter.java b/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotificationsEventEmitter.java --- a/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotificationsEventEmitter.java +++ b/native/android/app/src/main/java/app/comm/android/notifications/CommAndroidNotificationsEventEmitter.java @@ -5,6 +5,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.os.Bundle; import android.util.Log; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import com.facebook.react.bridge.ActivityEventListener; @@ -15,7 +16,6 @@ import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.WritableMap; import com.facebook.react.modules.core.DeviceEventManagerModule; -import com.google.firebase.messaging.RemoteMessage; public class CommAndroidNotificationsEventEmitter extends ReactContextBaseJavaModule { @@ -74,7 +74,7 @@ } private void sendInitialNotificationFromIntentToJS(Intent intent) { - RemoteMessage initialNotification = intent.getParcelableExtra("message"); + Bundle initialNotification = intent.getParcelableExtra("message"); if (initialNotification == null) { return; } @@ -101,7 +101,7 @@ extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - RemoteMessage message = intent.getParcelableExtra("message"); + Bundle message = intent.getParcelableExtra("message"); WritableMap jsMessage = CommAndroidNotificationParser.parseRemoteMessageToJSMessage(message); if (jsMessage != null) { diff --git a/native/android/app/src/main/java/app/comm/android/notifications/CommNotificationsHandler.java b/native/android/app/src/main/java/app/comm/android/notifications/CommNotificationsHandler.java --- a/native/android/app/src/main/java/app/comm/android/notifications/CommNotificationsHandler.java +++ b/native/android/app/src/main/java/app/comm/android/notifications/CommNotificationsHandler.java @@ -138,7 +138,8 @@ } Intent intent = new Intent(MESSAGE_EVENT); - intent.putExtra("message", message); + intent.putExtra( + "message", serializeMessageDataForIntentAttachment(message)); localBroadcastManager.sendBroadcast(intent); if (this.isAppInForeground()) { @@ -222,7 +223,8 @@ Intent intent = new Intent(this.getApplicationContext(), MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); - intent.putExtra("message", message); + intent.putExtra( + "message", serializeMessageDataForIntentAttachment(message)); return PendingIntent.getActivity( this.getApplicationContext(), @@ -255,4 +257,11 @@ }); return message; } + + private Bundle + serializeMessageDataForIntentAttachment(RemoteMessage message) { + Bundle bundle = new Bundle(); + message.getData().forEach(bundle::putString); + return bundle; + } }