diff --git a/feature/media-send/src/main/java/org/signal/mediasend/screens/edit/AddAMessageRow.kt b/feature/media-send/src/main/java/org/signal/mediasend/screens/edit/AddAMessageRow.kt
index 29f8551c43..d0cd80663e 100644
--- a/feature/media-send/src/main/java/org/signal/mediasend/screens/edit/AddAMessageRow.kt
+++ b/feature/media-send/src/main/java/org/signal/mediasend/screens/edit/AddAMessageRow.kt
@@ -69,6 +69,7 @@ fun AddAMessageRow(
canScheduleSend: Boolean = false,
viewOnceAvailable: Boolean = false,
viewOnce: Boolean = false,
+ isReply: Boolean = false,
recipientChatColor: Color? = null
) {
Row(
@@ -87,7 +88,7 @@ fun AddAMessageRow(
// A view-once send cannot carry a body, so the row becomes a static label rather than an entry point.
Modifier
} else {
- Modifier.clickable(enabled = enabled, onClickLabel = stringResource(R.string.AddAMessageRow__add_a_message), onClick = { onEvent(MediaEditScreenEvents.AddMessageClick()) }, role = Role.Button)
+ Modifier.clickable(enabled = enabled, onClickLabel = stringResource(if (isReply) R.string.AddAMessageRow__add_a_reply else R.string.AddAMessageRow__add_a_message), onClick = { onEvent(MediaEditScreenEvents.AddMessageClick()) }, role = Role.Button)
}
)
) {
@@ -113,7 +114,7 @@ fun AddAMessageRow(
}
LocalAddAMessageRowTextField.current(
- message?.takeIf { it.isNotBlank() } ?: stringResource(R.string.AddAMessageRow__message),
+ message?.takeIf { it.isNotBlank() } ?: stringResource(if (isReply) R.string.AddAMessageRow__add_a_reply else R.string.AddAMessageRow__message),
Modifier
.weight(1f)
.padding(end = if (viewOnceAvailable) 0.dp else 16.dp)
@@ -204,6 +205,19 @@ private fun AddAMessageRowViewOncePreview() {
}
}
+@DayNightPreviews
+@Composable
+private fun AddAMessageRowReplyPreview() {
+ Previews.Preview {
+ AddAMessageRow(
+ message = null,
+ onEvent = {},
+ onNextClick = {},
+ isReply = true
+ )
+ }
+}
+
@DayNightPreviews
@Composable
private fun AddAMessageRowKnownRecipientPreview() {
diff --git a/feature/media-send/src/main/java/org/signal/mediasend/screens/edit/MediaEditScreen.kt b/feature/media-send/src/main/java/org/signal/mediasend/screens/edit/MediaEditScreen.kt
index 45bc264ce2..28a2f7e6a0 100644
--- a/feature/media-send/src/main/java/org/signal/mediasend/screens/edit/MediaEditScreen.kt
+++ b/feature/media-send/src/main/java/org/signal/mediasend/screens/edit/MediaEditScreen.kt
@@ -370,6 +370,7 @@ internal fun MediaEditScreen(
canScheduleSend = !state.isStory,
viewOnceAvailable = state.isViewOnceAvailable,
viewOnce = state.isViewOnceEnabled,
+ isReply = state.isReply,
message = state.message,
recipientChatColor = recipientChatColor,
onEvent = onEvent,
diff --git a/feature/media-send/src/main/res/values/strings.xml b/feature/media-send/src/main/res/values/strings.xml
index 45b516d25c..fe54c023ec 100644
--- a/feature/media-send/src/main/res/values/strings.xml
+++ b/feature/media-send/src/main/res/values/strings.xml
@@ -22,6 +22,8 @@
Add to story
Add a message
+
+ Add a reply
Open emoji keyboard
diff --git a/feature/media-send/src/test/java/org/signal/mediasend/screens/edit/AddAMessageRowTest.kt b/feature/media-send/src/test/java/org/signal/mediasend/screens/edit/AddAMessageRowTest.kt
index 4675466d71..9acd30f211 100644
--- a/feature/media-send/src/test/java/org/signal/mediasend/screens/edit/AddAMessageRowTest.kt
+++ b/feature/media-send/src/test/java/org/signal/mediasend/screens/edit/AddAMessageRowTest.kt
@@ -89,14 +89,29 @@ class AddAMessageRowTest {
composeTestRule.onNodeWithText("Check this out").assertExists()
}
- private fun setContent(canScheduleSend: Boolean = false, message: CharSequence? = null) {
+ @Test
+ fun `Given a reply flow with no message, when the row is displayed, then the reply placeholder is shown`() {
+ setContent(isReply = true)
+
+ composeTestRule.onNodeWithText("Add a reply").assertExists()
+ }
+
+ @Test
+ fun `Given a reply flow with a message, when the row is displayed, then the message is shown`() {
+ setContent(message = "Check this out", isReply = true)
+
+ composeTestRule.onNodeWithText("Check this out").assertExists()
+ }
+
+ private fun setContent(canScheduleSend: Boolean = false, message: CharSequence? = null, isReply: Boolean = false) {
composeTestRule.setContent {
SignalTheme {
AddAMessageRow(
message = message,
onEvent = { events += it },
onNextClick = { nextClicks++ },
- canScheduleSend = canScheduleSend
+ canScheduleSend = canScheduleSend,
+ isReply = isReply
)
}
}