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