Remove PreferenceText, replace by ListItem.
This commit is contained in:
parent
0ab1e564df
commit
b0cd9905ce
10 changed files with 117 additions and 280 deletions
|
|
@ -11,16 +11,17 @@ import androidx.compose.runtime.Composable
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.features.lockscreen.impl.R
|
||||
import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceDivider
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceSwitch
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItemStyle
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
|
||||
@Composable
|
||||
fun LockScreenSettingsView(
|
||||
|
|
@ -35,15 +36,19 @@ fun LockScreenSettingsView(
|
|||
modifier = modifier
|
||||
) {
|
||||
PreferenceCategory(showTopDivider = false) {
|
||||
PreferenceText(
|
||||
title = stringResource(id = R.string.screen_app_lock_settings_change_pin),
|
||||
onClick = onChangePinClick
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text(stringResource(id = R.string.screen_app_lock_settings_change_pin))
|
||||
},
|
||||
onClick = onChangePinClick,
|
||||
)
|
||||
PreferenceDivider()
|
||||
if (state.showRemovePinOption) {
|
||||
PreferenceText(
|
||||
title = stringResource(id = R.string.screen_app_lock_settings_remove_pin),
|
||||
tintColor = ElementTheme.colors.textCriticalPrimary,
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text(stringResource(id = R.string.screen_app_lock_settings_remove_pin))
|
||||
},
|
||||
style = ListItemStyle.Destructive,
|
||||
onClick = {
|
||||
state.eventSink(LockScreenSettingsEvents.OnRemovePin)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,9 +12,10 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
|
||||
@Composable
|
||||
|
|
@ -31,13 +32,17 @@ fun AboutView(
|
|||
title = stringResource(id = CommonStrings.common_about)
|
||||
) {
|
||||
state.elementLegals.forEach { elementLegal ->
|
||||
PreferenceText(
|
||||
title = stringResource(id = elementLegal.titleRes),
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text(stringResource(id = elementLegal.titleRes))
|
||||
},
|
||||
onClick = { onElementLegalClick(elementLegal) }
|
||||
)
|
||||
}
|
||||
PreferenceText(
|
||||
title = stringResource(id = CommonStrings.common_open_source_licenses),
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text(stringResource(id = CommonStrings.common_open_source_licenses))
|
||||
},
|
||||
onClick = onOpenSourceLicensesClick,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,23 +7,30 @@
|
|||
|
||||
package io.element.android.features.preferences.impl.developer
|
||||
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.progressSemantics
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.features.preferences.impl.R
|
||||
import io.element.android.features.preferences.impl.developer.tracing.LogLevelItem
|
||||
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesView
|
||||
import io.element.android.libraries.designsystem.components.list.ListItemContent
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceDropdown
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceSwitch
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceTextField
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
|
||||
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.featureflag.ui.FeatureListView
|
||||
import io.element.android.libraries.featureflag.ui.model.FeatureUiModel
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
|
|
@ -57,13 +64,15 @@ fun DeveloperSettingsView(
|
|||
selectedOption = state.tracingLogLevel.dataOrNull(),
|
||||
options = LogLevelItem.entries.toPersistentList(),
|
||||
onSelectOption = { logLevel ->
|
||||
state.eventSink(DeveloperSettingsEvents.SetTracingLogLevel(logLevel))
|
||||
state.eventSink(DeveloperSettingsEvents.SetTracingLogLevel(logLevel))
|
||||
}
|
||||
)
|
||||
}
|
||||
PreferenceCategory(title = "Showkase") {
|
||||
PreferenceText(
|
||||
title = "Open Showkase browser",
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text("Open Showkase browser")
|
||||
},
|
||||
onClick = onOpenShowkase
|
||||
)
|
||||
}
|
||||
|
|
@ -71,17 +80,31 @@ fun DeveloperSettingsView(
|
|||
state = state.rageshakeState,
|
||||
)
|
||||
PreferenceCategory(title = "Crash", showTopDivider = false) {
|
||||
PreferenceText(
|
||||
title = "Crash the app 💥",
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text("Crash the app 💥")
|
||||
},
|
||||
onClick = { error("This crash is a test.") }
|
||||
)
|
||||
}
|
||||
val cache = state.cacheSize
|
||||
PreferenceCategory(title = "Cache", showTopDivider = false) {
|
||||
PreferenceText(
|
||||
title = "Clear cache",
|
||||
currentValue = cache.dataOrNull(),
|
||||
loadingCurrentValue = state.cacheSize.isLoading() || state.clearCacheAction.isLoading(),
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text("Clear cache")
|
||||
},
|
||||
trailingContent = if (state.cacheSize.isLoading() || state.clearCacheAction.isLoading()) {
|
||||
ListItemContent.Custom {
|
||||
CircularProgressIndicator(
|
||||
modifier = Modifier
|
||||
.progressSemantics()
|
||||
.size(20.dp),
|
||||
strokeWidth = 2.dp
|
||||
)
|
||||
}
|
||||
} else {
|
||||
ListItemContent.Text(cache.dataOrNull().orEmpty())
|
||||
},
|
||||
onClick = {
|
||||
if (state.clearCacheAction.isLoading().not()) {
|
||||
state.eventSink(DeveloperSettingsEvents.ClearCache)
|
||||
|
|
|
|||
|
|
@ -31,10 +31,10 @@ import io.element.android.libraries.designsystem.components.list.ListItemContent
|
|||
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceSwitch
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
|
||||
import io.element.android.libraries.designsystem.theme.components.IconSource
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.designsystem.utils.OnLifecycleEvent
|
||||
|
|
@ -109,13 +109,19 @@ private fun NotificationSettingsContentView(
|
|||
val context = LocalContext.current
|
||||
val systemSettings: NotificationSettingsState.AppSettings = state.appSettings
|
||||
if (systemSettings.appNotificationsEnabled && !systemSettings.systemNotificationsEnabled) {
|
||||
PreferenceText(
|
||||
icon = CompoundIcons.NotificationsOffSolid(),
|
||||
title = stringResource(id = R.string.screen_notification_settings_system_notifications_turned_off),
|
||||
subtitle = stringResource(
|
||||
id = R.string.screen_notification_settings_system_notifications_action_required,
|
||||
stringResource(id = R.string.screen_notification_settings_system_notifications_action_required_content_link)
|
||||
),
|
||||
ListItem(
|
||||
leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.NotificationsOffSolid())),
|
||||
headlineContent = {
|
||||
Text(stringResource(id = R.string.screen_notification_settings_system_notifications_turned_off))
|
||||
},
|
||||
supportingContent = {
|
||||
Text(
|
||||
stringResource(
|
||||
id = R.string.screen_notification_settings_system_notifications_action_required,
|
||||
stringResource(id = R.string.screen_notification_settings_system_notifications_action_required_content_link)
|
||||
)
|
||||
)
|
||||
},
|
||||
onClick = {
|
||||
context.startNotificationSettingsIntent()
|
||||
}
|
||||
|
|
@ -131,10 +137,14 @@ private fun NotificationSettingsContentView(
|
|||
if (systemSettings.appNotificationsEnabled) {
|
||||
if (!state.fullScreenIntentPermissionsState.permissionGranted) {
|
||||
PreferenceCategory {
|
||||
PreferenceText(
|
||||
icon = CompoundIcons.VoiceCallSolid(),
|
||||
title = stringResource(id = R.string.full_screen_intent_banner_title),
|
||||
subtitle = stringResource(R.string.full_screen_intent_banner_message),
|
||||
ListItem(
|
||||
leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.VoiceCallSolid())),
|
||||
headlineContent = {
|
||||
Text(stringResource(id = R.string.full_screen_intent_banner_title))
|
||||
},
|
||||
supportingContent = {
|
||||
Text(stringResource(R.string.full_screen_intent_banner_message))
|
||||
},
|
||||
onClick = {
|
||||
state.fullScreenIntentPermissionsState.openFullScreenIntentSettings()
|
||||
}
|
||||
|
|
@ -142,15 +152,22 @@ private fun NotificationSettingsContentView(
|
|||
}
|
||||
}
|
||||
PreferenceCategory(title = stringResource(id = R.string.screen_notification_settings_notification_section_title)) {
|
||||
PreferenceText(
|
||||
title = stringResource(id = R.string.screen_notification_settings_group_chats),
|
||||
subtitle = getTitleForRoomNotificationMode(mode = matrixSettings.defaultGroupNotificationMode),
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text(stringResource(id = R.string.screen_notification_settings_group_chats))
|
||||
},
|
||||
supportingContent = {
|
||||
Text(getTitleForRoomNotificationMode(mode = matrixSettings.defaultGroupNotificationMode))
|
||||
},
|
||||
onClick = onGroupChatsClick
|
||||
)
|
||||
|
||||
PreferenceText(
|
||||
title = stringResource(id = R.string.screen_notification_settings_direct_chats),
|
||||
subtitle = getTitleForRoomNotificationMode(mode = matrixSettings.defaultOneToOneNotificationMode),
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text(stringResource(id = R.string.screen_notification_settings_direct_chats))
|
||||
},
|
||||
supportingContent = {
|
||||
Text(getTitleForRoomNotificationMode(mode = matrixSettings.defaultOneToOneNotificationMode))
|
||||
},
|
||||
onClick = onDirectChatsClick
|
||||
)
|
||||
}
|
||||
|
|
@ -180,9 +197,10 @@ private fun NotificationSettingsContentView(
|
|||
)
|
||||
}
|
||||
PreferenceCategory(title = stringResource(id = R.string.troubleshoot_notifications_entry_point_section)) {
|
||||
PreferenceText(
|
||||
modifier = Modifier,
|
||||
title = stringResource(id = R.string.troubleshoot_notifications_entry_point_title),
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text(stringResource(id = R.string.troubleshoot_notifications_entry_point_title))
|
||||
},
|
||||
onClick = onTroubleshootNotificationsClick
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,9 +16,10 @@ import io.element.android.features.rageshake.api.R
|
|||
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceSlide
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceSwitch
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
|
||||
@Composable
|
||||
|
|
@ -52,7 +53,11 @@ fun RageshakePreferencesView(
|
|||
onValueChange = ::onSensitivityChanged
|
||||
)
|
||||
} else {
|
||||
PreferenceText(title = "Rageshaking is not supported by your device")
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text("Rageshaking is not supported by your device")
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,12 +38,13 @@ import io.element.android.libraries.designsystem.components.preferences.Preferen
|
|||
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceRow
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceSwitch
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
|
||||
import io.element.android.libraries.designsystem.modifiers.onTabOrEnterKeyFocusNext
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.preview.debugPlaceholderBackground
|
||||
import io.element.android.libraries.designsystem.theme.components.Button
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.designsystem.theme.components.TextField
|
||||
import io.element.android.libraries.designsystem.theme.components.TextFieldValidity
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
|
|
@ -96,8 +97,10 @@ fun BugReportView(
|
|||
}
|
||||
Spacer(modifier = Modifier.height(16.dp))
|
||||
PreferenceDivider()
|
||||
PreferenceText(
|
||||
title = stringResource(id = R.string.screen_bug_report_view_logs),
|
||||
ListItem(
|
||||
headlineContent = {
|
||||
Text(stringResource(id = R.string.screen_bug_report_view_logs))
|
||||
},
|
||||
enabled = isFormEnabled,
|
||||
onClick = onViewLogs,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -54,7 +54,6 @@ import io.element.android.libraries.designsystem.components.button.MainActionBut
|
|||
import io.element.android.libraries.designsystem.components.list.ListItemContent
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceSwitch
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.designsystem.preview.PreviewWithLargeHeight
|
||||
|
|
@ -481,10 +480,14 @@ private fun TopicSection(
|
|||
showTopDivider = false,
|
||||
) {
|
||||
if (roomTopic is RoomTopicState.CanAddTopic) {
|
||||
PreferenceText(
|
||||
title = stringResource(R.string.screen_room_details_add_topic_title),
|
||||
icon = CompoundIcons.Plus(),
|
||||
onClick = { onActionClick(RoomDetailsAction.AddTopic) },
|
||||
ListItem(
|
||||
leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Plus())),
|
||||
headlineContent = {
|
||||
Text(stringResource(id = R.string.screen_room_details_add_topic_title))
|
||||
},
|
||||
onClick = {
|
||||
onActionClick(RoomDetailsAction.AddTopic)
|
||||
},
|
||||
)
|
||||
} else if (roomTopic is RoomTopicState.ExistingTopic) {
|
||||
ClickableLinkText(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue