diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemShapeTest.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemShapeTest.kt
index f135dab675..72e99eb08b 100644
--- a/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemShapeTest.kt
+++ b/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemShapeTest.kt
@@ -290,6 +290,8 @@ class V2ConversationItemShapeTest {
override fun onChangeNumberUpdateContact(recipient: Recipient) = Unit
+ override fun onChangeProfileNameUpdateContact(recipient: Recipient) = Unit
+
override fun onCallToAction(action: String) = Unit
override fun onDonateClicked() = Unit
diff --git a/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/InternalConversationTestFragment.kt b/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/InternalConversationTestFragment.kt
index fa558ea294..04339ca04e 100644
--- a/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/InternalConversationTestFragment.kt
+++ b/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/InternalConversationTestFragment.kt
@@ -231,6 +231,10 @@ class InternalConversationTestFragment : Fragment(R.layout.conversation_test_fra
Toast.makeText(requireContext(), "Can't touch this.", Toast.LENGTH_SHORT).show()
}
+ override fun onChangeProfileNameUpdateContact(recipient: Recipient) {
+ Toast.makeText(requireContext(), "Can't touch this.", Toast.LENGTH_SHORT).show()
+ }
+
override fun onCallToAction(action: String) {
Toast.makeText(requireContext(), "Can't touch this.", Toast.LENGTH_SHORT).show()
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java
index 04b4a86ba3..b1b78674ad 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java
@@ -112,6 +112,7 @@ public interface BindableConversationItem extends Unbindable, GiphyMp4Playable,
void onInMemoryMessageClicked(@NonNull InMemoryMessageRecord messageRecord);
void onViewGroupDescriptionChange(@Nullable GroupId groupId, @NonNull String description, boolean isMessageRequestAccepted);
void onChangeNumberUpdateContact(@NonNull Recipient recipient);
+ void onChangeProfileNameUpdateContact(@NonNull Recipient recipient);
void onCallToAction(@NonNull String action);
void onDonateClicked();
void onBlockJoinRequest(@NonNull Recipient recipient);
diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java
index 068787b58a..0688d27ea2 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java
@@ -580,6 +580,14 @@ public final class ConversationUpdateItem extends FrameLayout
eventListener.onReportSpamLearnMoreClicked();
}
});
+ } else if (conversationMessage.getMessageRecord().isProfileChange() && !conversationMessage.getMessageRecord().getFromRecipient().isSelf()) {
+ actionButton.setText(R.string.ConversationUpdateItem_update);
+ actionButton.setVisibility(VISIBLE);
+ actionButton.setOnClickListener(v -> {
+ if (batchSelected.isEmpty() && eventListener != null) {
+ eventListener.onChangeProfileNameUpdateContact(conversationMessage.getMessageRecord().getFromRecipient());
+ }
+ });
} else if (conversationMessage.getMessageRecord().isMessageRequestAccepted()) {
actionButton.setText(R.string.ConversationUpdateItem_options);
actionButton.setVisibility(VISIBLE);
@@ -588,7 +596,7 @@ public final class ConversationUpdateItem extends FrameLayout
eventListener.onMessageRequestAcceptOptionsClicked();
}
});
- } else{
+ } else {
actionButton.setVisibility(GONE);
actionButton.setOnClickListener(null);
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt
index 5bd9b76317..5754d0a954 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt
@@ -22,6 +22,7 @@ import android.graphics.Rect
import android.net.Uri
import android.os.Bundle
import android.provider.Browser
+import android.provider.ContactsContract
import android.provider.Settings
import android.text.Editable
import android.text.TextWatcher
@@ -259,6 +260,7 @@ import org.thoughtcrime.securesms.mms.SlideDeck
import org.thoughtcrime.securesms.mms.SlideFactory
import org.thoughtcrime.securesms.mms.StickerSlide
import org.thoughtcrime.securesms.mms.VideoSlide
+import org.thoughtcrime.securesms.nicknames.NicknameActivity
import org.thoughtcrime.securesms.notifications.v2.ConversationId
import org.thoughtcrime.securesms.payments.preferences.PaymentsActivity
import org.thoughtcrime.securesms.permissions.Permissions
@@ -2919,6 +2921,18 @@ class ConversationFragment :
startActivity(RecipientExporter.export(recipient).asAddContactIntent())
}
+ override fun onChangeProfileNameUpdateContact(recipient: Recipient) {
+ if (recipient.isSystemContact) {
+ startActivity(
+ Intent(Intent.ACTION_EDIT).apply {
+ setDataAndType(recipient.contactUri, ContactsContract.Contacts.CONTENT_ITEM_TYPE)
+ }
+ )
+ } else {
+ registerForActivityResult(NicknameActivity.Contract()) {}.launch(NicknameActivity.Args(recipientId = recipient.id, focusNoteFirst = false))
+ }
+ }
+
override fun onCallToAction(action: String) {
if ("gift_badge" == action) {
startActivity(CheckoutFlowActivity.createIntent(requireContext(), InAppPaymentType.ONE_TIME_GIFT))
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d505c3e357..6d9bbc3a85 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2955,6 +2955,8 @@
You have removed this person, messaging them again will add them back to your list.
Options
+
+ Update
Play … Pause