kopia lustrzana https://github.com/ryukoposting/Signal-Android
Add stories beta dialog.
rodzic
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()
|
||||
}
|
||||
|
|
|
@ -4945,6 +4945,10 @@
|
|||
<string name="StoryDialogs__s_and_updates_shared">\"%1$s\" and updates shared to this story will be deleted.</string>
|
||||
<!-- Dialog positive action for deleting a private story -->
|
||||
<string name="StoryDialogs__delete">Delete</string>
|
||||
<!-- Dialog title for first time sending something to a beta story -->
|
||||
<string name="StoryDialogs__stories_is_available_to">Stories is available to Signal beta users only.</string>
|
||||
<!-- Dialog message for first time sending something to a beta story -->
|
||||
<string name="StoryDialogs__if_you_share_a_story">If you share a story, it will only be available to people who are on Signal beta.</string>
|
||||
<!-- Dialog title for first time adding something to a story -->
|
||||
<string name="StoryDialogs__add_to_story_q">Add to story?</string>
|
||||
<!-- Dialog message for first time adding something to a story -->
|
||||
|
|
Ładowanie…
Reference in New Issue