diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt
index 697b50198..f301f6e54 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt
@@ -463,14 +463,6 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
sectionHeaderPref(R.string.ConversationListTabs__stories)
- switchPref(
- title = DSLSettingsText.from(R.string.preferences__internal_disable_stories),
- isChecked = state.disableStories,
- onClick = {
- viewModel.toggleStories()
- }
- )
-
clickPref(
title = DSLSettingsText.from(R.string.preferences__internal_clear_onboarding_state),
summary = DSLSettingsText.from(R.string.preferences__internal_clears_onboarding_flag_and_triggers_download_of_onboarding_stories),
@@ -479,6 +471,13 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
viewModel.onClearOnboardingState()
}
)
+
+ clickPref(
+ title = DSLSettingsText.from(R.string.preferences__internal_stories_dialog_launcher),
+ onClick = {
+ findNavController().safeNavigate(InternalSettingsFragmentDirections.actionInternalSettingsFragmentToStoryDialogsLauncherFragment())
+ }
+ )
}
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsState.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsState.kt
index 850358ab0..001362133 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsState.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsState.kt
@@ -19,6 +19,5 @@ data class InternalSettingsState(
val removeSenderKeyMinimium: Boolean,
val delayResends: Boolean,
val disableStorageService: Boolean,
- val disableStories: Boolean,
val canClearOnboardingState: Boolean
)
diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt
index 23b432bd2..a230cc732 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt
@@ -94,12 +94,6 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito
refresh()
}
- fun toggleStories() {
- val newState = !SignalStore.storyValues().isFeatureDisabled
- SignalStore.storyValues().isFeatureDisabled = newState
- store.update { getState().copy(disableStories = newState) }
- }
-
fun addSampleReleaseNote() {
repository.addSampleReleaseNote()
}
@@ -124,7 +118,6 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito
removeSenderKeyMinimium = SignalStore.internalValues().removeSenderKeyMinimum(),
delayResends = SignalStore.internalValues().delayResends(),
disableStorageService = SignalStore.internalValues().storageServiceDisabled(),
- disableStories = SignalStore.storyValues().isFeatureDisabled,
canClearOnboardingState = SignalStore.storyValues().hasDownloadedOnboardingStory && Stories.isFeatureEnabled()
)
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
new file mode 100644
index 000000000..b8946dc4f
--- /dev/null
+++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/StoryDialogLauncherFragment.kt
@@ -0,0 +1,49 @@
+package org.thoughtcrime.securesms.components.settings.app.internal
+
+import android.widget.Toast
+import org.thoughtcrime.securesms.R
+import org.thoughtcrime.securesms.components.settings.DSLConfiguration
+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.stories.dialogs.StoryDialogs
+import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter
+
+class StoryDialogLauncherFragment : DSLSettingsFragment(titleId = R.string.preferences__internal_stories_dialog_launcher) {
+ override fun bindAdapter(adapter: MappingAdapter) {
+ adapter.submitList(getConfiguration().toMappingModelList())
+ }
+
+ private fun getConfiguration(): DSLConfiguration {
+ return configure {
+ clickPref(
+ title = DSLSettingsText.from(R.string.preferences__internal_retry_send),
+ onClick = {
+ StoryDialogs.resendStory(requireContext()) {
+ Toast.makeText(requireContext(), R.string.preferences__internal_retry_send, Toast.LENGTH_SHORT).show()
+ }
+ }
+ )
+
+ clickPref(
+ title = DSLSettingsText.from(R.string.preferences__internal_story_or_profile_selector),
+ onClick = {
+ StoryDialogs.displayStoryOrProfileImage(
+ context = requireContext(),
+ onViewStory = { Toast.makeText(requireContext(), R.string.StoryDialogs__view_story, Toast.LENGTH_SHORT).show() },
+ onViewAvatar = { Toast.makeText(requireContext(), R.string.StoryDialogs__view_profile_photo, Toast.LENGTH_SHORT).show() }
+ )
+ }
+ )
+
+ clickPref(
+ title = DSLSettingsText.from(R.string.preferences__internal_hide_story),
+ onClick = {
+ StoryDialogs.hideStory(requireContext(), "Spiderman") {
+ Toast.makeText(requireContext(), R.string.preferences__internal_hide_story, Toast.LENGTH_SHORT).show()
+ }
+ }
+ )
+ }
+ }
+}
diff --git a/app/src/main/res/navigation/app_settings.xml b/app/src/main/res/navigation/app_settings.xml
index 56e397179..50c78819b 100644
--- a/app/src/main/res/navigation/app_settings.xml
+++ b/app/src/main/res/navigation/app_settings.xml
@@ -493,6 +493,9 @@
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6180846db..9c58bcd39 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2749,6 +2749,10 @@
Customize option
+ Hide story
+ Story or profile selector
+ Stories dialog launcher
+ Retry send
Clear onboarding state
Clears onboarding flag and triggers download of onboarding stories.
Internal Preferences