Add internal setting item to clear onboarding state.

fork-5.53.8
Alex Hart 2022-07-13 13:11:21 -03:00 zatwierdzone przez Cody Henthorne
rodzic b18542a839
commit 34379b8d3a
4 zmienionych plików z 24 dodań i 2 usunięć

Wyświetl plik

@ -485,6 +485,15 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
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),
isEnabled = state.canClearOnboardingState,
onClick = {
viewModel.onClearOnboardingState()
}
)
}
}

Wyświetl plik

@ -22,5 +22,6 @@ data class InternalSettingsState(
val removeSenderKeyMinimium: Boolean,
val delayResends: Boolean,
val disableStorageService: Boolean,
val disableStories: Boolean
val disableStories: Boolean,
val canClearOnboardingState: Boolean
)

Wyświetl plik

@ -4,8 +4,10 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import org.signal.ringrtc.CallManager
import org.thoughtcrime.securesms.jobs.StoryOnboardingDownloadJob
import org.thoughtcrime.securesms.keyvalue.InternalValues
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.stories.Stories
import org.thoughtcrime.securesms.util.livedata.Store
class InternalSettingsViewModel(private val repository: InternalSettingsRepository) : ViewModel() {
@ -139,9 +141,17 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito
removeSenderKeyMinimium = SignalStore.internalValues().removeSenderKeyMinimum(),
delayResends = SignalStore.internalValues().delayResends(),
disableStorageService = SignalStore.internalValues().storageServiceDisabled(),
disableStories = SignalStore.storyValues().isFeatureDisabled
disableStories = SignalStore.storyValues().isFeatureDisabled,
canClearOnboardingState = SignalStore.storyValues().hasDownloadedOnboardingStory && Stories.isFeatureEnabled()
)
fun onClearOnboardingState() {
SignalStore.storyValues().hasDownloadedOnboardingStory = false
SignalStore.storyValues().userHasSeenOnboardingStory = false
refresh()
StoryOnboardingDownloadJob.enqueueIfNeeded()
}
class Factory(private val repository: InternalSettingsRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(InternalSettingsViewModel(repository)))

Wyświetl plik

@ -2671,6 +2671,8 @@
<string name="configurable_single_select__customize_option">Customize option</string>
<!-- Internal only preferences -->
<string name="preferences__internal_clear_onboarding_state" translatable="false">Clear onboarding state</string>
<string name="preferences__internal_clears_onboarding_flag_and_triggers_download_of_onboarding_stories">Clears onboarding flag and triggers download of onboarding stories.</string>
<string name="preferences__internal_preferences" translatable="false">Internal Preferences</string>
<string name="preferences__internal_preferences_groups_v2" translatable="false">Groups V2</string>
<string name="preferences__internal_preferences_groups_v1_migration" translatable="false">Groups V1 Migration</string>