From e62b8de1bc173c2eb3f18bc0173ab0f4bce2d681 Mon Sep 17 00:00:00 2001 From: Clark Date: Fri, 7 Jun 2024 16:18:55 -0400 Subject: [PATCH] Fix most of import/export integration tests. --- .../thoughtcrime/securesms/backup/v2/BackupRepository.kt | 2 +- .../securesms/backup/v2/database/ChatItemImportInserter.kt | 4 ++-- .../backup/v2/database/ThreadTableBackupExtensions.kt | 5 +++-- .../org/thoughtcrime/securesms/keyvalue/DonationsValues.kt | 6 ++++++ 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt index 9b295d4578..056ffd8899 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt @@ -94,7 +94,7 @@ object BackupRepository { ) } - val exportState = ExportState(backupTime = System.currentTimeMillis(), allowMediaBackup = true) + val exportState = ExportState(backupTime = System.currentTimeMillis(), allowMediaBackup = SignalStore.backup().backsUpMedia) writer.use { writer.write( diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/ChatItemImportInserter.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/ChatItemImportInserter.kt index 06cfce41ff..474b09eb37 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/ChatItemImportInserter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/ChatItemImportInserter.kt @@ -549,13 +549,13 @@ class ChatItemImportInserter( typeFlags = MessageTypes.PROFILE_CHANGE_TYPE val profileChangeDetails = ProfileChangeDetails(profileNameChange = ProfileChangeDetails.StringChange(previous = updateMessage.profileChange.previousName, newValue = updateMessage.profileChange.newName)) val messageExtras = MessageExtras(profileChangeDetails = profileChangeDetails).encode() - put(MessageTable.MESSAGE_EXTRAS, Base64.encodeWithPadding(messageExtras)) + put(MessageTable.MESSAGE_EXTRAS, messageExtras) } updateMessage.learnedProfileChange != null -> { typeFlags = MessageTypes.PROFILE_CHANGE_TYPE val profileChangeDetails = ProfileChangeDetails(learnedProfileName = ProfileChangeDetails.LearnedProfileName(e164 = updateMessage.learnedProfileChange.e164?.toString(), username = updateMessage.learnedProfileChange.username)) val messageExtras = MessageExtras(profileChangeDetails = profileChangeDetails).encode() - put(MessageTable.MESSAGE_EXTRAS, Base64.encodeWithPadding(messageExtras)) + put(MessageTable.MESSAGE_EXTRAS, messageExtras) } updateMessage.sessionSwitchover != null -> { typeFlags = MessageTypes.SESSION_SWITCHOVER_TYPE or (getAsLong(MessageTable.TYPE) and MessageTypes.BASE_TYPE_MASK.inv()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/ThreadTableBackupExtensions.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/ThreadTableBackupExtensions.kt index 4616aa702d..1ac87d7907 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/ThreadTableBackupExtensions.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/ThreadTableBackupExtensions.kt @@ -116,8 +116,9 @@ class ChatIterator(private val cursor: Cursor) : Iterator, Closeable { null } - val chatStyleBuilder = ChatStyle.Builder() + var chatStyleBuilder: ChatStyle.Builder? = null if (chatColors != null) { + chatStyleBuilder = ChatStyle.Builder() val presetBubbleColor = chatColors.tryToMapToBackupPreset() if (presetBubbleColor != null) { chatStyleBuilder.bubbleColorPreset = presetBubbleColor @@ -139,7 +140,7 @@ class ChatIterator(private val cursor: Cursor) : Iterator, Closeable { muteUntilMs = cursor.requireLong(RecipientTable.MUTE_UNTIL), markedUnread = ThreadTable.ReadStatus.deserialize(cursor.requireInt(ThreadTable.READ)) == ThreadTable.ReadStatus.FORCED_UNREAD, dontNotifyForMentionsIfMuted = RecipientTable.MentionSetting.DO_NOT_NOTIFY.id == cursor.requireInt(RecipientTable.MENTION_SETTING), - style = chatStyleBuilder.build() + style = chatStyleBuilder?.build() ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/DonationsValues.kt b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/DonationsValues.kt index 83bda4422b..80492c0ecb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/DonationsValues.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/DonationsValues.kt @@ -358,6 +358,11 @@ internal class DonationsValues internal constructor(store: KeyValueStore) : Sign return getBoolean(USER_MANUALLY_CANCELLED, false) } + @Deprecated("Manual cancellation is stored in InAppPayment records. We should no longer need to set this value.") + fun markUserManuallyCancelled() { + return putBoolean(USER_MANUALLY_CANCELLED, true) + } + @Deprecated("Manual cancellation is stored in InAppPayment records. We no longer need to clear this value.") fun clearUserManuallyCancelled() { remove(USER_MANUALLY_CANCELLED) @@ -459,6 +464,7 @@ internal class DonationsValues internal constructor(store: KeyValueStore) : Sign Log.d(TAG, "[updateLocalStateForManualCancellation] Clearing expired badge.") setExpiredBadge(null) } + SignalStore.donationsValues().markUserManuallyCancelled() } val subscriber = InAppPaymentsRepository.getSubscriber(subscriberType)