Add internal preference for large screen UI.

This commit is contained in:
Alex Hart
2025-04-11 15:57:03 -03:00
parent efac6990c8
commit f8d8c8af2d
6 changed files with 30 additions and 5 deletions

View File

@@ -163,6 +163,17 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
)
dividerPref()
sectionHeaderPref(DSLSettingsText.from("App UI"))
switchPref(
title = DSLSettingsText.from("Enable new split pane UI."),
summary = DSLSettingsText.from("Warning: Some bugs and non functional buttons are expected."),
isChecked = state.largeScreenUi,
onClick = {
viewModel.setUseLargeScreenUi(!state.largeScreenUi)
}
)
sectionHeaderPref(DSLSettingsText.from("Playgrounds"))
clickPref(

View File

@@ -25,5 +25,6 @@ data class InternalSettingsState(
val useConversationItemV2ForMedia: Boolean,
val hasPendingOneTimeDonation: Boolean,
val hevcEncoding: Boolean,
val newCallingUi: Boolean
val newCallingUi: Boolean,
val largeScreenUi: Boolean
)

View File

@@ -166,7 +166,8 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito
useConversationItemV2ForMedia = SignalStore.internal.useConversationItemV2Media,
hasPendingOneTimeDonation = SignalStore.inAppPayments.getPendingOneTimeDonation() != null,
hevcEncoding = SignalStore.internal.hevcEncoding,
newCallingUi = SignalStore.internal.newCallingUi
newCallingUi = SignalStore.internal.newCallingUi,
largeScreenUi = SignalStore.internal.largeScreenUi
)
fun onClearOnboardingState() {
@@ -182,6 +183,11 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito
refresh()
}
fun setUseLargeScreenUi(largeScreenUi: Boolean) {
SignalStore.internal.largeScreenUi = largeScreenUi
refresh()
}
class Factory(private val repository: InternalSettingsRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(InternalSettingsViewModel(repository)))