mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 00:59:49 +01:00
Add stories beta dialog.
This commit is contained in:
committed by
Greyson Parrelli
parent
4b94509a7a
commit
2edb9eeb52
@@ -12,6 +12,7 @@ import io.reactivex.rxjava3.core.Observable
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.groups.SelectionLimits
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.stories.dialogs.StoryDialogs
|
||||
import org.thoughtcrime.securesms.stories.settings.custom.PrivateStorySettingsFragment
|
||||
import org.thoughtcrime.securesms.stories.settings.my.MyStorySettingsFragment
|
||||
import org.thoughtcrime.securesms.stories.settings.privacy.ChooseInitialMyStoryMembershipBottomSheetDialogFragment
|
||||
@@ -97,6 +98,17 @@ class ContactSearchMediator(
|
||||
}
|
||||
|
||||
private fun toggleStorySelection(view: View, contactSearchData: ContactSearchData.Story, isSelected: Boolean) {
|
||||
if (SignalStore.storyValues().userHasSeenBetaDialog) {
|
||||
performStoryToggle(view, contactSearchData, isSelected)
|
||||
} else {
|
||||
StoryDialogs.displayBetaDialog(view.context) {
|
||||
SignalStore.storyValues().userHasSeenBetaDialog = true
|
||||
performStoryToggle(view, contactSearchData, isSelected)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun performStoryToggle(view: View, contactSearchData: ContactSearchData.Story, isSelected: Boolean) {
|
||||
if (contactSearchData.recipient.isMyStory && !SignalStore.storyValues().userHasBeenNotifiedAboutStories) {
|
||||
ChooseInitialMyStoryMembershipBottomSheetDialogFragment.show(fragment.childFragmentManager)
|
||||
} else {
|
||||
|
||||
@@ -39,6 +39,11 @@ internal class StoryValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||
* Marks whether the user has seen the onboarding story
|
||||
*/
|
||||
private const val USER_HAS_SEEN_ONBOARDING_STORY = "stories.user.has.seen.onboarding"
|
||||
|
||||
/**
|
||||
* Marks whether the user has seen the beta dialog
|
||||
*/
|
||||
private const val USER_HAS_SEEN_BETA_DIALOG = "stories.user.has.seen.beta.dialog"
|
||||
}
|
||||
|
||||
override fun onFirstEverAppLaunch() = Unit
|
||||
@@ -47,7 +52,8 @@ internal class StoryValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||
MANUAL_FEATURE_DISABLE,
|
||||
USER_HAS_ADDED_TO_A_STORY,
|
||||
USER_HAS_SEEN_FIRST_NAV_VIEW,
|
||||
HAS_DOWNLOADED_ONBOARDING_STORY
|
||||
HAS_DOWNLOADED_ONBOARDING_STORY,
|
||||
USER_HAS_SEEN_BETA_DIALOG
|
||||
)
|
||||
|
||||
var isFeatureDisabled: Boolean by booleanValue(MANUAL_FEATURE_DISABLE, false)
|
||||
@@ -62,6 +68,8 @@ internal class StoryValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||
|
||||
var userHasSeenOnboardingStory: Boolean by booleanValue(USER_HAS_SEEN_ONBOARDING_STORY, false)
|
||||
|
||||
var userHasSeenBetaDialog: Boolean by booleanValue(USER_HAS_SEEN_BETA_DIALOG, false)
|
||||
|
||||
fun setLatestStorySend(storySend: StorySend) {
|
||||
synchronized(this) {
|
||||
val storySends: List<StorySend> = getList(LATEST_STORY_SENDS, StorySendSerializer)
|
||||
|
||||
@@ -38,6 +38,13 @@ object StoryDialogs {
|
||||
.setTitle(R.string.StoriesPrivacySettingsFragment__turn_off_stories_question)
|
||||
.setMessage(R.string.StoriesPrivacySettingsFragment__you_will_no_longer_be_able_to_share)
|
||||
.setPositiveButton(positiveButtonMessage) { _, _ -> onDisable() }
|
||||
}
|
||||
|
||||
fun displayBetaDialog(context: Context, onConfirmed: () -> Unit) {
|
||||
MaterialAlertDialogBuilder(context)
|
||||
.setTitle(R.string.StoryDialogs__stories_is_available_to)
|
||||
.setMessage(R.string.StoryDialogs__if_you_share_a_story)
|
||||
.setPositiveButton(R.string.Permissions_continue) { _, _ -> onConfirmed() }
|
||||
.setNegativeButton(android.R.string.cancel) { _, _ -> }
|
||||
.show()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user