Add groups in common screen.

Adds a new screen to show which groups the user has in common with another user.
This commit is contained in:
Jeffrey Starke
2025-04-02 17:11:53 -04:00
committed by Michelle Tang
parent bc2d4a0415
commit 9d3f4ffa08
7 changed files with 287 additions and 4 deletions

View File

@@ -50,6 +50,7 @@ import org.thoughtcrime.securesms.avatar.AvatarImage
import org.thoughtcrime.securesms.components.emoji.EmojiTextView
import org.thoughtcrime.securesms.compose.ComposeBottomSheetDialogFragment
import org.thoughtcrime.securesms.conversation.v2.UnverifiedProfileNameBottomSheet
import org.thoughtcrime.securesms.groups.ui.incommon.GroupsInCommonActivity
import org.thoughtcrime.securesms.nicknames.ViewNoteSheet
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.recipients.RecipientId
@@ -115,7 +116,8 @@ class AboutSheet : ComposeBottomSheetDialogFragment() {
onClickSignalConnections = this::openSignalConnectionsSheet,
onAvatarClicked = this::openProfilePhotoViewer,
onNoteClicked = this::openNoteSheet,
onUnverifiedProfileClicked = this::openUnverifiedProfileSheet
onUnverifiedProfileClicked = this::openUnverifiedProfileSheet,
onGroupsInCommonClicked = this::openGroupsInCommon
)
}
}
@@ -138,6 +140,10 @@ class AboutSheet : ComposeBottomSheetDialogFragment() {
dismiss()
UnverifiedProfileNameBottomSheet.show(fragmentManager = parentFragmentManager, forGroup = false)
}
private fun openGroupsInCommon() {
startActivity(GroupsInCommonActivity.createIntent(requireContext(), recipientId))
}
}
private data class AboutModel(
@@ -162,7 +168,8 @@ private fun Content(
onClickSignalConnections: () -> Unit,
onAvatarClicked: () -> Unit,
onNoteClicked: () -> Unit,
onUnverifiedProfileClicked: () -> Unit = {}
onUnverifiedProfileClicked: () -> Unit = {},
onGroupsInCommonClicked: () -> Unit = {}
) {
Box(
contentAlignment = Alignment.Center,
@@ -303,6 +310,8 @@ private fun Content(
AboutRow(
startIcon = groupsInCommonIcon,
text = groupsInCommonText,
endIcon = if (model.groupsInCommon > 0) ImageVector.vectorResource(id = R.drawable.symbol_chevron_right_compact_bold_16) else null,
onClick = if (model.groupsInCommon > 0) onGroupsInCommonClicked else null,
modifier = Modifier.fillMaxWidth()
)
}