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 4584abad7b..412bd83295 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, false)) + SignalDatabase.recipients.setCapabilities(recipientId, SignalServiceProfile.Capabilities(true, false)) SignalDatabase.recipients.setProfileSharing(recipientId, true) SignalDatabase.recipients.markRegistered(recipientId, aci) val otherIdentity = IdentityKeyUtil.generateIdentityKeyPair() diff --git a/app/src/main/java/org/thoughtcrime/securesms/AppCapabilities.kt b/app/src/main/java/org/thoughtcrime/securesms/AppCapabilities.kt index cd0abe21fa..e7c4599293 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/AppCapabilities.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/AppCapabilities.kt @@ -12,13 +12,6 @@ object AppCapabilities { fun getCapabilities(storageCapable: Boolean): AccountAttributes.Capabilities { return AccountAttributes.Capabilities( storage = storageCapable, - senderKey = true, - announcementGroup = true, - changeNumber = true, - stories = true, - giftBadges = true, - pni = true, - paymentActivation = true, deleteSync = RemoteConfig.deleteSyncEnabled ) } 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 d35f845d51..279647cb47 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 @@ -341,7 +341,6 @@ class InternalConversationSettingsFragment : DSLSettingsFragment( return if (capabilities != null) { TextUtils.concat( - colorize("PaymentActivation", capabilities.paymentActivation), ", ", colorize("DeleteSync", capabilities.deleteSync) ) 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 de660cb995..6966061145 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt @@ -409,7 +409,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.PAYMENT_ACTIVATION, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isPaymentActivation).serialize().toLong()) value = Bitmask.update(value, Capabilities.DELETE_SYNC, Capabilities.BIT_LENGTH, Recipient.Capability.fromBoolean(capabilities.isDeleteSync).serialize().toLong()) return value } @@ -4577,8 +4576,10 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da // const val STORIES = 5 // const val GIFT_BADGES = 6 // const val PNP = 7 - const val PAYMENT_ACTIVATION = 8 +// const val PAYMENT_ACTIVATION = 8 const val DELETE_SYNC = 9 + + // IMPORTANT: We cannot sore more than 32 capabilities in the bitmask. } enum class VibrateState(val id: Int) { 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 df7e4f55d9..8cde95e406 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTableCursorUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTableCursorUtil.kt @@ -175,7 +175,6 @@ object RecipientTableCursorUtil { val capabilities = cursor.requireLong(RecipientTable.CAPABILITIES) return RecipientRecord.Capabilities( rawBits = capabilities, - paymentActivation = Recipient.Capability.deserialize(Bitmask.read(capabilities, Capabilities.PAYMENT_ACTIVATION, Capabilities.BIT_LENGTH).toInt()), deleteSync = Recipient.Capability.deserialize(Bitmask.read(capabilities, Capabilities.DELETE_SYNC, 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 42773c0b55..8528cba394 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 @@ -119,14 +119,12 @@ data class RecipientRecord( data class Capabilities( val rawBits: Long, - val paymentActivation: Recipient.Capability, val deleteSync: Recipient.Capability ) { companion object { @JvmField val UNKNOWN = Capabilities( 0, - Recipient.Capability.UNKNOWN, Recipient.Capability.UNKNOWN ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java index 0d89d957b3..c5622b0828 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java @@ -326,7 +326,7 @@ public class AttachmentManager { intent.putExtra(PaymentsActivity.EXTRA_PAYMENTS_STARTING_ACTION, R.id.action_directly_to_createPayment); intent.putExtra(PaymentsActivity.EXTRA_STARTING_ARGUMENTS, new CreatePaymentFragmentArgs.Builder(new PayeeParcelable(recipient.getId())).setFinishOnConfirm(true).build().toBundle()); fragment.startActivity(intent); - } else if (RemoteConfig.paymentsRequestActivateFlow() && recipient.getPaymentActivationCapability().isSupported()) { + } else if (RemoteConfig.paymentsRequestActivateFlow()) { showRequestToActivatePayments(fragment.requireContext(), recipient); } else { RecipientHasNotEnabledPaymentsDialog.show(fragment.requireContext()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt index f8159b2b93..7173867c5a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt @@ -314,9 +314,6 @@ class Recipient( /** The notification channel, if both set and supported by the system. Otherwise null. */ val notificationChannel: String? = if (!NotificationChannels.supported()) null else notificationChannelValue - /** The user's payment capability. */ - val paymentActivationCapability: Capability = capabilities.paymentActivation - /** The user's payment capability. */ val deleteSyncCapability: Capability = capabilities.deleteSync 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 cd5b6a7f80..211f8badad 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/database/RecipientDatabaseTestUtils.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/database/RecipientDatabaseTestUtils.kt @@ -124,7 +124,6 @@ object RecipientDatabaseTestUtils { unidentifiedAccessMode = unidentifiedAccessMode, capabilities = RecipientRecord.Capabilities( rawBits = capabilities, - paymentActivation = Recipient.Capability.deserialize(Bitmask.read(capabilities, RecipientTable.Capabilities.PAYMENT_ACTIVATION, RecipientTable.Capabilities.BIT_LENGTH).toInt()), deleteSync = Recipient.Capability.deserialize(Bitmask.read(capabilities, RecipientTable.Capabilities.DELETE_SYNC, RecipientTable.Capabilities.BIT_LENGTH).toInt()) ), storageId = storageId, diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/account/AccountAttributes.kt b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/account/AccountAttributes.kt index 43821a9416..487d044a78 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/account/AccountAttributes.kt +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/account/AccountAttributes.kt @@ -55,13 +55,6 @@ class AccountAttributes @JsonCreator constructor( data class Capabilities @JsonCreator constructor( @JsonProperty val storage: Boolean, - @JsonProperty val senderKey: Boolean, - @JsonProperty val announcementGroup: Boolean, - @JsonProperty val changeNumber: Boolean, - @JsonProperty val stories: Boolean, - @JsonProperty val giftBadges: Boolean, - @JsonProperty val pni: Boolean, - @JsonProperty val paymentActivation: Boolean, @JsonProperty val deleteSync: Boolean ) } 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 c910c2fdab..370a2da21c 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,29 +192,21 @@ public class SignalServiceProfile { @JsonProperty private boolean storage; - @JsonProperty - private boolean paymentActivation; - @JsonProperty private boolean deleteSync; @JsonCreator public Capabilities() {} - public Capabilities(boolean storage, boolean paymentActivation, boolean deleteSync) { - this.storage = storage; - this.paymentActivation = paymentActivation; - this.deleteSync = deleteSync; + public Capabilities(boolean storage, boolean deleteSync) { + this.storage = storage; + this.deleteSync = deleteSync; } public boolean isStorage() { return storage; } - public boolean isPaymentActivation() { - return paymentActivation; - } - public boolean isDeleteSync() { return deleteSync; }