From f325ffad12db33de228ddcfef471b105255b3cf6 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 30 Jun 2023 17:31:07 +0200 Subject: [PATCH] More cleanup on BugReportView. --- .../rageshake/impl/bugreport/BugReportView.kt | 4 ++- .../preferences/PreferenceSwitch.kt | 30 +++++++++++++++---- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportView.kt b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportView.kt index 9ae2ea792e..74f3a13d13 100644 --- a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportView.kt +++ b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportView.kt @@ -110,12 +110,14 @@ fun BugReportView( onCheckedChange = { eventSink(BugReportEvents.SetSendLog(it)) }, enabled = isFormEnabled, title = stringResource(id = R.string.screen_bug_report_include_logs), + subtitle = stringResource(id = R.string.screen_bug_report_logs_description), ) PreferenceSwitch( isChecked = state.formState.canContact, onCheckedChange = { eventSink(BugReportEvents.SetCanContact(it)) }, enabled = isFormEnabled, - title = stringResource(id = R.string.screen_bug_report_contact_me) + title = stringResource(id = R.string.screen_bug_report_contact_me_title), + subtitle = stringResource(id = R.string.screen_bug_report_contact_me), ) if (state.screenshotUri != null) { PreferenceSwitch( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt index 98dc493606..00c0226db9 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt @@ -17,9 +17,12 @@ package io.element.android.libraries.designsystem.components.preferences import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Announcement @@ -35,6 +38,7 @@ import io.element.android.libraries.designsystem.preview.ElementThemedPreview import io.element.android.libraries.designsystem.preview.PreviewGroup import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.toEnabledColor +import io.element.android.libraries.designsystem.toSecondaryEnabledColor import io.element.android.libraries.theme.ElementTheme @Composable @@ -42,6 +46,7 @@ fun PreferenceSwitch( title: String, isChecked: Boolean, modifier: Modifier = Modifier, + subtitle: String? = null, enabled: Boolean = true, icon: ImageVector? = null, showIconAreaIfNoIcon: Boolean = false, @@ -60,13 +65,25 @@ fun PreferenceSwitch( enabled = enabled, isVisible = showIconAreaIfNoIcon ) - Text( + Column( modifier = Modifier - .weight(1f), - style = ElementTheme.typography.fontBodyLgRegular, - text = title, - color = enabled.toEnabledColor(), - ) + .weight(1f) + .align(Alignment.CenterVertically) + ) { + Text( + style = ElementTheme.typography.fontBodyLgRegular, + text = title, + color = enabled.toEnabledColor(), + ) + if (subtitle != null) { + Spacer(modifier = Modifier.height(4.dp)) + Text( + style = ElementTheme.typography.fontBodyMdRegular, + text = subtitle, + color = enabled.toSecondaryEnabledColor(), + ) + } + } // TODO Create a wrapper for Switch Switch( modifier = Modifier @@ -86,6 +103,7 @@ internal fun PreferenceSwitchPreview() = ElementThemedPreview { ContentToPreview private fun ContentToPreview() { PreferenceSwitch( title = "Switch", + subtitle = "Subtitle Switch", icon = Icons.Default.Announcement, enabled = true, isChecked = true