fix: clear on updated legacy message from existing legacy thread recipient

This commit is contained in:
0x330a 2023-11-13 10:47:45 +11:00
parent 56878dbd35
commit 565c92f45e
No known key found for this signature in database
GPG Key ID: 267811D6E6A2698C
1 changed files with 8 additions and 3 deletions

View File

@ -1774,12 +1774,17 @@ open class Storage(
disappearingState: Recipient.DisappearingState disappearingState: Recipient.DisappearingState
) { ) {
val threadDb = DatabaseComponent.get(context).threadDatabase() val threadDb = DatabaseComponent.get(context).threadDatabase()
val lokiDb = DatabaseComponent.get(context).lokiAPIDatabase()
val recipient = threadDb.getRecipientForThreadId(threadID) ?: return val recipient = threadDb.getRecipientForThreadId(threadID) ?: return
val recipientAddress = recipient.address.serialize()
val recipientDb = DatabaseComponent.get(context).recipientDatabase() val recipientDb = DatabaseComponent.get(context).recipientDatabase()
recipientDb.setDisappearingState(recipient, disappearingState); recipientDb.setDisappearingState(recipient, disappearingState);
if (disappearingState == DisappearingState.LEGACY) { val currentLegacyRecipient = lokiDb.getLastLegacySenderAddress(recipientAddress)
DatabaseComponent.get(context).lokiAPIDatabase() if (disappearingState == DisappearingState.LEGACY
.setLastLegacySenderAddress(recipient.address.serialize(), messageSender) && ExpirationConfiguration.isNewConfigEnabled) { // only set "this person is legacy" if new config enabled
lokiDb.setLastLegacySenderAddress(recipientAddress, messageSender)
} else if (messageSender == currentLegacyRecipient) {
lokiDb.setLastLegacySenderAddress(recipientAddress, null)
} }
} }
} }