diff --git a/native/push/android.js b/native/push/android.js --- a/native/push/android.js +++ b/native/push/android.js @@ -8,6 +8,7 @@ convertNonPendingIDToNewSchema, convertNotificationMessageInfoToNewIDSchema, } from 'lib/utils/migration-utils.js'; +import { thickThreadIDRegex } from 'lib/utils/validation-utils.js'; import { authoritativeKeyserverID } from '../authoritative-keyserver.js'; @@ -50,6 +51,14 @@ }; function parseAndroidMessage(message: AndroidMessage): ParsedAndroidMessage { + const { threadID, messageInfos } = message; + if (thickThreadIDRegex.test(threadID)) { + return { + ...message, + messageInfos: messageInfos ? JSON.parse(messageInfos) : null, + }; + } + return { ...message, threadID: convertNonPendingIDToNewSchema( @@ -69,7 +78,6 @@ function handleAndroidMessage( message: ParsedAndroidMessage, - updatesCurrentAsOf: number, handleIfActive?: ( threadID: string, texts: { body: string, title: ?string }, diff --git a/native/push/comm-ios-notification.js b/native/push/comm-ios-notification.js --- a/native/push/comm-ios-notification.js +++ b/native/push/comm-ios-notification.js @@ -7,6 +7,7 @@ convertNonPendingIDToNewSchema, convertNotificationMessageInfoToNewIDSchema, } from 'lib/utils/migration-utils.js'; +import { thickThreadIDRegex } from 'lib/utils/validation-utils.js'; import { authoritativeKeyserverID } from '../authoritative-keyserver.js'; @@ -49,6 +50,15 @@ constructor(notification: CoreIOSNotificationData) { this.remoteNotificationCompleteCallbackCalled = false; + const { threadID, messageInfos } = notification; + + if (thickThreadIDRegex.test(threadID)) { + this.data = { + ...notification, + messageInfos: messageInfos ? JSON.parse(messageInfos) : null, + }; + return; + } this.data = { ...notification, diff --git a/native/push/push-handler.react.js b/native/push/push-handler.react.js --- a/native/push/push-handler.react.js +++ b/native/push/push-handler.react.js @@ -16,10 +16,7 @@ useSetDeviceTokenFanout, } from 'lib/actions/device-actions.js'; import { saveMessagesActionType } from 'lib/actions/message-actions.js'; -import { - extractKeyserverIDFromID, - extractKeyserverIDFromIDOptional, -} from 'lib/keyserver-conn/keyserver-call-utils.js'; +import { extractKeyserverIDFromIDOptional } from 'lib/keyserver-conn/keyserver-call-utils.js'; import { deviceTokensSelector, allUpdatesCurrentAsOfSelector, @@ -793,15 +790,7 @@ const { messageInfos } = parsedMessage; this.saveMessageInfos(messageInfos); - - const keyserverID = extractKeyserverIDFromID(message.threadID); - const updateCurrentAsOf = this.props.allUpdatesCurrentAsOf[keyserverID]; - - handleAndroidMessage( - parsedMessage, - updateCurrentAsOf, - this.handleAndroidNotificationIfActive, - ); + handleAndroidMessage(parsedMessage, this.handleAndroidNotificationIfActive); }; handleAndroidNotificationIfActive = (