diff --git a/ts/background.ts b/ts/background.ts index 0f3dd3e5e8..d561e651fa 100644 --- a/ts/background.ts +++ b/ts/background.ts @@ -1267,9 +1267,14 @@ export async function startApp(): Promise { const newDeviceId = window.textsecure.storage.user.getDeviceId(); const newNumber = window.textsecure.storage.user.getNumber(); const newUuid = window.textsecure.storage.user.getUuid(); + const ourConversation = window.ConversationController.getOurConversation(); + + if (ourConversation?.get('e164') !== newNumber) { + ourConversation?.set('e164', newNumber); + } window.reduxActions.user.userChanged({ - ourConversationId: window.ConversationController.getOurConversationId(), + ourConversationId: ourConversation?.get('id'), ourDeviceId: newDeviceId, ourNumber: newNumber, ourUuid: newUuid, @@ -1879,6 +1884,15 @@ export async function startApp(): Promise { window.Signal.challengeHandler = challengeHandler; + if (!window.storage.user.getNumber()) { + const ourConversation = window.ConversationController.getOurConversation(); + const ourE164 = ourConversation?.get('e164'); + if (ourE164) { + window.log.warn('Restoring E164 from our conversation'); + window.storage.user.setNumber(ourE164); + } + } + window.dispatchEvent(new Event('storage_ready')); window.log.info('Expiration start timestamp cleanup: starting...'); diff --git a/ts/services/storageRecordOps.ts b/ts/services/storageRecordOps.ts index f6bcf8edda..2feb1756fd 100644 --- a/ts/services/storageRecordOps.ts +++ b/ts/services/storageRecordOps.ts @@ -854,7 +854,7 @@ export async function mergeAccountRecord( window.storage.put('primarySendsSms', primarySendsSms); } - if (typeof accountE164 === 'string') { + if (typeof accountE164 === 'string' && accountE164) { window.storage.put('accountE164', accountE164); window.storage.user.setNumber(accountE164); }