diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/StoryDialogLauncherFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/StoryDialogLauncherFragment.kt
index bc5dff2097..bd90db9c98 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/StoryDialogLauncherFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/StoryDialogLauncherFragment.kt
@@ -16,6 +16,15 @@ class StoryDialogLauncherFragment : DSLSettingsFragment(titleId = R.string.prefe
private fun getConfiguration(): DSLConfiguration {
return configure {
+ clickPref(
+ title = DSLSettingsText.from(R.string.preferences__internal_remove_group_story),
+ onClick = {
+ StoryDialogs.removeGroupStory(requireContext(), "Family") {
+ Toast.makeText(requireContext(), R.string.preferences__internal_remove_group_story, Toast.LENGTH_SHORT).show()
+ }
+ }
+ )
+
clickPref(
title = DSLSettingsText.from(R.string.preferences__internal_retry_send),
onClick = {
diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenu.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenu.kt
index 0dadf9eca3..87f3850048 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenu.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenu.kt
@@ -66,7 +66,7 @@ object StoryContextMenu {
val intent = if (messageRecord.storyType.isTextStory) {
val textStoryBody = StoryTextPost.parseFrom(Base64.decode(messageRecord.body)).body
val linkUrl = messageRecord.linkPreviews.firstOrNull()?.url ?: ""
- val shareText = "${textStoryBody} $linkUrl".trim()
+ val shareText = "$textStoryBody $linkUrl".trim()
ShareCompat.IntentBuilder(fragment.requireContext())
.setText(shareText)
diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryDialogs.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryDialogs.kt
index 6bccdad5e5..1844aa3b94 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryDialogs.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryDialogs.kt
@@ -10,6 +10,19 @@ import org.thoughtcrime.securesms.R
object StoryDialogs {
+ fun removeGroupStory(
+ context: Context,
+ groupName: String,
+ onConfirmed: () -> Unit
+ ) {
+ MaterialAlertDialogBuilder(context)
+ .setTitle(R.string.StoryDialogs__remove_group_story)
+ .setMessage(context.getString(R.string.StoryDialogs__s_will_be_removed, groupName))
+ .setPositiveButton(R.string.StoryDialogs__remove) { _, _ -> onConfirmed() }
+ .setNegativeButton(android.R.string.cancel) { _, _ -> }
+ .show()
+ }
+
fun deleteDistributionList(
context: Context,
distributionListName: String,
diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/group/GroupStorySettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/group/GroupStorySettingsFragment.kt
index f480d213ae..7b11dd9ab5 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/group/GroupStorySettingsFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/group/GroupStorySettingsFragment.kt
@@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsFragment
import org.thoughtcrime.securesms.components.settings.DSLSettingsText
import org.thoughtcrime.securesms.components.settings.configure
import org.thoughtcrime.securesms.conversation.ConversationIntents
+import org.thoughtcrime.securesms.stories.dialogs.StoryDialogs
import org.thoughtcrime.securesms.stories.settings.custom.PrivateStoryItem
import org.thoughtcrime.securesms.util.LifecycleDisposable
import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter
@@ -94,7 +95,12 @@ class GroupStorySettingsFragment : DSLSettingsFragment(menuId = R.menu.story_gro
DSLSettingsText.ColorModifier(ContextCompat.getColor(requireContext(), R.color.signal_colorError))
),
onClick = {
- viewModel.doNotDisplayAsStory()
+ StoryDialogs.removeGroupStory(
+ requireContext(),
+ state.name
+ ) {
+ viewModel.doNotDisplayAsStory()
+ }
}
)
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 99d4afa145..1c49ca9e85 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2761,6 +2761,7 @@
Story or profile selector
Stories dialog launcher
Retry send
+ Remove group story
Clear onboarding state
Clears onboarding flag and triggers download of onboarding stories.
Internal Preferences
@@ -4940,6 +4941,12 @@
Only share with…
Done
+
+ Remove group story?
+
+ \"%1$s\" will be removed.
+
+ Remove
Delete private story?
diff --git a/app/src/test/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenuTest.kt b/app/src/test/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenuTest.kt
index f2acfad664..627f7bdefe 100644
--- a/app/src/test/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenuTest.kt
+++ b/app/src/test/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenuTest.kt
@@ -127,4 +127,4 @@ class StoryContextMenuTest {
val targetIntent: Intent = chooserIntent.getParcelableExtra(Intent.EXTRA_INTENT)!!
assertEquals(expected, targetIntent.getStringExtra(Intent.EXTRA_TEXT))
}
-}
\ No newline at end of file
+}