Improve rendering of preference anaytics screen.
This commit is contained in:
parent
dbc93398cf
commit
be92588c28
2 changed files with 19 additions and 18 deletions
|
|
@ -18,6 +18,7 @@ package io.element.android.features.analytics.api.preferences
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
|
@ -27,7 +28,6 @@ import androidx.compose.ui.text.style.TextDecoration
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import io.element.android.features.analytics.api.AnalyticsOptInEvents
|
import io.element.android.features.analytics.api.AnalyticsOptInEvents
|
||||||
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.PreferenceSwitch
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||||
|
|
@ -43,23 +43,21 @@ fun AnalyticsPreferencesView(
|
||||||
state.eventSink(AnalyticsOptInEvents.EnableAnalytics(isEnabled = isEnabled))
|
state.eventSink(AnalyticsOptInEvents.EnableAnalytics(isEnabled = isEnabled))
|
||||||
}
|
}
|
||||||
|
|
||||||
PreferenceCategory(
|
val firstPart = stringResource(id = CommonStrings.screen_analytics_settings_help_us_improve, state.applicationName)
|
||||||
modifier = modifier,
|
val secondPart = buildAnnotatedStringWithColoredPart(
|
||||||
title = stringResource(id = CommonStrings.screen_analytics_settings_share_data)
|
CommonStrings.screen_analytics_settings_read_terms,
|
||||||
) {
|
CommonStrings.screen_analytics_settings_read_terms_content_link
|
||||||
val firstPart = stringResource(id = CommonStrings.screen_analytics_settings_help_us_improve, state.applicationName)
|
)
|
||||||
val secondPart = buildAnnotatedStringWithColoredPart(
|
val subtitle = "$firstPart\n\n$secondPart"
|
||||||
CommonStrings.screen_analytics_settings_read_terms,
|
|
||||||
CommonStrings.screen_analytics_settings_read_terms_content_link
|
|
||||||
)
|
|
||||||
val title = "$firstPart\n\n$secondPart"
|
|
||||||
|
|
||||||
PreferenceSwitch(
|
PreferenceSwitch(
|
||||||
title = title,
|
modifier = modifier,
|
||||||
isChecked = state.isEnabled,
|
title = stringResource(id = CommonStrings.screen_analytics_settings_share_data),
|
||||||
onCheckedChange = ::onEnabledChanged
|
subtitle = subtitle,
|
||||||
)
|
isChecked = state.isEnabled,
|
||||||
}
|
onCheckedChange = ::onEnabledChanged,
|
||||||
|
switchAlignment = Alignment.Top,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ import androidx.compose.foundation.layout.defaultMinSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.foundation.layout.width
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.Announcement
|
import androidx.compose.material.icons.filled.Announcement
|
||||||
import androidx.compose.material3.Switch
|
import androidx.compose.material3.Switch
|
||||||
|
|
@ -51,6 +52,7 @@ fun PreferenceSwitch(
|
||||||
icon: ImageVector? = null,
|
icon: ImageVector? = null,
|
||||||
showIconAreaIfNoIcon: Boolean = false,
|
showIconAreaIfNoIcon: Boolean = false,
|
||||||
onCheckedChange: (Boolean) -> Unit = {},
|
onCheckedChange: (Boolean) -> Unit = {},
|
||||||
|
switchAlignment: Alignment.Vertical = Alignment.CenterVertically
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
|
|
@ -84,10 +86,11 @@ fun PreferenceSwitch(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Spacer(modifier = Modifier.width(16.dp))
|
||||||
// TODO Create a wrapper for Switch
|
// TODO Create a wrapper for Switch
|
||||||
Switch(
|
Switch(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.align(Alignment.CenterVertically),
|
.align(switchAlignment),
|
||||||
checked = isChecked,
|
checked = isChecked,
|
||||||
enabled = enabled,
|
enabled = enabled,
|
||||||
onCheckedChange = onCheckedChange
|
onCheckedChange = onCheckedChange
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue