From 09b0f15294db108be6ff347f84e7fd4a31a59abf Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 26 Feb 2024 10:15:38 -0500 Subject: [PATCH] Remove unused capabilities. --- .../securesms/testing/SignalActivityRule.kt | 2 +- .../subscription/OneTimeDonationRepository.kt | 16 ------ .../InternalConversationSettingsFragment.kt | 11 +--- .../securesms/database/RecipientTable.kt | 20 +++----- .../database/RecipientTableCursorUtil.kt | 6 --- .../database/model/RecipientRecord.kt | 12 ----- .../database/RecipientDatabaseTestUtils.kt | 6 --- .../api/profiles/SignalServiceProfile.java | 50 +------------------ 8 files changed, 11 insertions(+), 112 deletions(-) diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/testing/SignalActivityRule.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/testing/SignalActivityRule.kt index 89a97893d9..fb4fd2c9ff 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/testing/SignalActivityRule.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/testing/SignalActivityRule.kt @@ -141,7 +141,7 @@ class SignalActivityRule(private val othersCount: Int = 4, private val createGro val recipientId = RecipientId.from(SignalServiceAddress(aci, "+15555551%03d".format(i))) SignalDatabase.recipients.setProfileName(recipientId, ProfileName.fromParts("Buddy", "#$i")) SignalDatabase.recipients.setProfileKeyIfAbsent(recipientId, ProfileKeyUtil.createNew()) - SignalDatabase.recipients.setCapabilities(recipientId, SignalServiceProfile.Capabilities(true, true, true, true, true, true, true, true, true)) + SignalDatabase.recipients.setCapabilities(recipientId, SignalServiceProfile.Capabilities(true, true, true)) SignalDatabase.recipients.setProfileSharing(recipientId, true) SignalDatabase.recipients.markRegistered(recipientId, aci) val otherIdentity = IdentityKeyUtil.generateIdentityKeyPair() diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeDonationRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeDonationRepository.kt index cbf02eea93..554a1dc8fc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeDonationRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeDonationRepository.kt @@ -21,11 +21,8 @@ import org.thoughtcrime.securesms.jobs.BoostReceiptRequestResponseJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId -import org.thoughtcrime.securesms.util.ProfileUtil -import org.whispersystems.signalservice.api.profiles.SignalServiceProfile import org.whispersystems.signalservice.api.services.DonationsService import org.whispersystems.signalservice.internal.push.DonationProcessor -import java.io.IOException import java.util.Currency import java.util.Locale import java.util.concurrent.CountDownLatch @@ -60,19 +57,6 @@ class OneTimeDonationRepository(private val donationsService: DonationsService) Log.w(TAG, "Invalid badge recipient $badgeRecipient. Verification failed.", true) throw DonationError.GiftRecipientVerificationError.SelectedRecipientIsInvalid } - - try { - val profile = ProfileUtil.retrieveProfileSync(ApplicationDependencies.getApplication(), recipient, SignalServiceProfile.RequestType.PROFILE_AND_CREDENTIAL) - if (!profile.profile.capabilities.isGiftBadges) { - Log.w(TAG, "Badge recipient does not support gifting. Verification failed.", true) - throw DonationError.GiftRecipientVerificationError.SelectedRecipientDoesNotSupportGifts - } else { - Log.d(TAG, "Badge recipient supports gifting. Verification successful.", true) - } - } catch (e: IOException) { - Log.w(TAG, "Failed to retrieve profile for recipient.", e, true) - throw DonationError.GiftRecipientVerificationError.FailedToFetchProfile(e) - } }.subscribeOn(Schedulers.io()) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt index 7a17ed9559..bae3df02b4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt @@ -325,15 +325,8 @@ class InternalConversationSettingsFragment : DSLSettingsFragment( return if (capabilities != null) { TextUtils.concat( - colorize("GV1Migration", capabilities.groupsV1MigrationCapability), - ", ", - colorize("AnnouncementGroup", capabilities.announcementGroupCapability), - ", ", - colorize("SenderKey", capabilities.senderKeyCapability), - ", ", - colorize("ChangeNumber", capabilities.changeNumberCapability), - ", ", - colorize("Stories", capabilities.storiesCapability) + colorize("PNP/PNI", capabilities.pnpCapability), + colorize("PaymentActivation", capabilities.paymentActivation) ) } else { "Recipient not found!" diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt index 80383c492c..2bb09b1e83 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt @@ -392,12 +392,6 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da @JvmStatic fun maskCapabilitiesToLong(capabilities: SignalServiceProfile.Capabilities): Long { var value: Long = 0 - value = Bitmask.update(value, Capabilities.GROUPS_V1_MIGRATION, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isGv1Migration).serialize().toLong()) - value = Bitmask.update(value, Capabilities.SENDER_KEY, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isSenderKey).serialize().toLong()) - value = Bitmask.update(value, Capabilities.ANNOUNCEMENT_GROUPS, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isAnnouncementGroup).serialize().toLong()) - value = Bitmask.update(value, Capabilities.CHANGE_NUMBER, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isChangeNumber).serialize().toLong()) - value = Bitmask.update(value, Capabilities.STORIES, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isStories).serialize().toLong()) - value = Bitmask.update(value, Capabilities.GIFT_BADGES, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isGiftBadges).serialize().toLong()) value = Bitmask.update(value, Capabilities.PNP, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isPnp).serialize().toLong()) value = Bitmask.update(value, Capabilities.PAYMENT_ACTIVATION, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isPaymentActivation).serialize().toLong()) return value @@ -4486,13 +4480,13 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da internal object Capabilities { const val BIT_LENGTH = 2 - // const val GROUPS_V2 = 0 - const val GROUPS_V1_MIGRATION = 1 - const val SENDER_KEY = 2 - const val ANNOUNCEMENT_GROUPS = 3 - const val CHANGE_NUMBER = 4 - const val STORIES = 5 - const val GIFT_BADGES = 6 +// const val GROUPS_V2 = 0 +// const val GROUPS_V1_MIGRATION = 1 +// const val SENDER_KEY = 2 +// const val ANNOUNCEMENT_GROUPS = 3 +// const val CHANGE_NUMBER = 4 +// const val STORIES = 5 +// const val GIFT_BADGES = 6 const val PNP = 7 const val PAYMENT_ACTIVATION = 8 } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTableCursorUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTableCursorUtil.kt index d3f093447c..edc29af53e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTableCursorUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTableCursorUtil.kt @@ -173,12 +173,6 @@ object RecipientTableCursorUtil { val capabilities = cursor.requireLong(RecipientTable.CAPABILITIES) return RecipientRecord.Capabilities( rawBits = capabilities, - groupsV1MigrationCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, Capabilities.GROUPS_V1_MIGRATION, Capabilities.BIT_LENGTH).toInt()), - senderKeyCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, Capabilities.SENDER_KEY, Capabilities.BIT_LENGTH).toInt()), - announcementGroupCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, Capabilities.ANNOUNCEMENT_GROUPS, Capabilities.BIT_LENGTH).toInt()), - changeNumberCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, Capabilities.CHANGE_NUMBER, Capabilities.BIT_LENGTH).toInt()), - storiesCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, Capabilities.STORIES, Capabilities.BIT_LENGTH).toInt()), - giftBadgesCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, Capabilities.GIFT_BADGES, Capabilities.BIT_LENGTH).toInt()), pnpCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, Capabilities.PNP, Capabilities.BIT_LENGTH).toInt()), paymentActivation = Recipient.Capability.deserialize(Bitmask.read(capabilities, Capabilities.PAYMENT_ACTIVATION, Capabilities.BIT_LENGTH).toInt()) ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/RecipientRecord.kt b/app/src/main/java/org/thoughtcrime/securesms/database/model/RecipientRecord.kt index d1e427a4a1..3830afc481 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/model/RecipientRecord.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/model/RecipientRecord.kt @@ -117,12 +117,6 @@ data class RecipientRecord( data class Capabilities( val rawBits: Long, - val groupsV1MigrationCapability: Recipient.Capability, - val senderKeyCapability: Recipient.Capability, - val announcementGroupCapability: Recipient.Capability, - val changeNumberCapability: Recipient.Capability, - val storiesCapability: Recipient.Capability, - val giftBadgesCapability: Recipient.Capability, val pnpCapability: Recipient.Capability, val paymentActivation: Recipient.Capability ) { @@ -131,12 +125,6 @@ data class RecipientRecord( val UNKNOWN = Capabilities( 0, Recipient.Capability.UNKNOWN, - Recipient.Capability.UNKNOWN, - Recipient.Capability.UNKNOWN, - Recipient.Capability.UNKNOWN, - Recipient.Capability.UNKNOWN, - Recipient.Capability.UNKNOWN, - Recipient.Capability.UNKNOWN, Recipient.Capability.UNKNOWN ) } diff --git a/app/src/test/java/org/thoughtcrime/securesms/database/RecipientDatabaseTestUtils.kt b/app/src/test/java/org/thoughtcrime/securesms/database/RecipientDatabaseTestUtils.kt index 4bb223f429..2dac3b81cb 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/database/RecipientDatabaseTestUtils.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/database/RecipientDatabaseTestUtils.kt @@ -125,12 +125,6 @@ object RecipientDatabaseTestUtils { unidentifiedAccessMode = unidentifiedAccessMode, capabilities = RecipientRecord.Capabilities( rawBits = capabilities, - groupsV1MigrationCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, RecipientTable.Capabilities.GROUPS_V1_MIGRATION, RecipientTable.Capabilities.BIT_LENGTH).toInt()), - senderKeyCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, RecipientTable.Capabilities.SENDER_KEY, RecipientTable.Capabilities.BIT_LENGTH).toInt()), - announcementGroupCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, RecipientTable.Capabilities.ANNOUNCEMENT_GROUPS, RecipientTable.Capabilities.BIT_LENGTH).toInt()), - changeNumberCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, RecipientTable.Capabilities.CHANGE_NUMBER, RecipientTable.Capabilities.BIT_LENGTH).toInt()), - storiesCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, RecipientTable.Capabilities.STORIES, RecipientTable.Capabilities.BIT_LENGTH).toInt()), - giftBadgesCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, RecipientTable.Capabilities.GIFT_BADGES, RecipientTable.Capabilities.BIT_LENGTH).toInt()), pnpCapability = Recipient.Capability.deserialize(Bitmask.read(capabilities, RecipientTable.Capabilities.PNP, RecipientTable.Capabilities.BIT_LENGTH).toInt()), paymentActivation = Recipient.Capability.deserialize(Bitmask.read(capabilities, RecipientTable.Capabilities.PAYMENT_ACTIVATION, RecipientTable.Capabilities.BIT_LENGTH).toInt()) ), diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/profiles/SignalServiceProfile.java b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/profiles/SignalServiceProfile.java index f8310b7ba8..d72102389d 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/profiles/SignalServiceProfile.java +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/profiles/SignalServiceProfile.java @@ -192,24 +192,6 @@ public class SignalServiceProfile { @JsonProperty private boolean storage; - @JsonProperty("gv1-migration") - private boolean gv1Migration; - - @JsonProperty - private boolean senderKey; - - @JsonProperty - private boolean announcementGroup; - - @JsonProperty - private boolean changeNumber; - - @JsonProperty - private boolean stories; - - @JsonProperty - private boolean giftBadges; - @JsonProperty private boolean pnp; @@ -219,14 +201,8 @@ public class SignalServiceProfile { @JsonCreator public Capabilities() {} - public Capabilities(boolean storage, boolean gv1Migration, boolean senderKey, boolean announcementGroup, boolean changeNumber, boolean stories, boolean giftBadges, boolean pnp, boolean paymentActivation) { + public Capabilities(boolean storage, boolean pnp, boolean paymentActivation) { this.storage = storage; - this.gv1Migration = gv1Migration; - this.senderKey = senderKey; - this.announcementGroup = announcementGroup; - this.changeNumber = changeNumber; - this.stories = stories; - this.giftBadges = giftBadges; this.pnp = pnp; this.paymentActivation = paymentActivation; } @@ -235,30 +211,6 @@ public class SignalServiceProfile { return storage; } - public boolean isGv1Migration() { - return gv1Migration; - } - - public boolean isSenderKey() { - return senderKey; - } - - public boolean isAnnouncementGroup() { - return announcementGroup; - } - - public boolean isChangeNumber() { - return changeNumber; - } - - public boolean isStories() { - return stories; - } - - public boolean isGiftBadges() { - return giftBadges; - } - public boolean isPnp() { return pnp; }