summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-05-23 12:48:20 +0200
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-06-01 12:03:31 +0200
commit063a45609f59eb8978eda889d51b18678803b39a (patch)
tree5be0cea3f2472c2ad998425ebb44849f4be62730 /android
parent02f76a6e8bec0e94ac9218e4c159e360b529d963 (diff)
downloadmullvadvpn-063a45609f59eb8978eda889d51b18678803b39a.tar.xz
mullvadvpn-063a45609f59eb8978eda889d51b18678803b39a.zip
Add checkmark icon to selected obfuscation mode
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/BaseCell.kt22
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SelectableCell.kt28
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/theme/dimensions/Dimensions.kt6
3 files changed, 42 insertions, 14 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/BaseCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/BaseCell.kt
index 47d1c8c894..022fb38256 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/BaseCell.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/BaseCell.kt
@@ -17,16 +17,13 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
-import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.compose.theme.AppTheme
-import net.mullvad.mullvadvpn.compose.theme.MullvadBlue
-import net.mullvad.mullvadvpn.compose.theme.MullvadDarkBlue
+import net.mullvad.mullvadvpn.compose.theme.Dimens
@Preview
@Composable
@@ -57,19 +54,20 @@ fun PreviewBaseCell() {
@Composable
internal fun BaseCell(
modifier: Modifier = Modifier,
+ iconView: @Composable () -> Unit = {},
title: @Composable () -> Unit,
bodyView: @Composable () -> Unit = {},
isRowEnabled: Boolean = true,
onCellClicked: () -> Unit = {},
subtitle: @Composable (() -> Unit)? = null,
subtitleModifier: Modifier = Modifier,
- background: Color = MullvadBlue,
- startPadding: Dp = dimensionResource(id = R.dimen.cell_left_padding),
- endPadding: Dp = dimensionResource(id = R.dimen.cell_right_padding)
+ background: Color = MaterialTheme.colorScheme.primary,
+ startPadding: Dp = Dimens.cellStartPadding,
+ endPadding: Dp = Dimens.cellEndPadding
) {
- val cellHeight = dimensionResource(id = R.dimen.cell_height)
- val cellVerticalSpacing = dimensionResource(id = R.dimen.cell_label_vertical_padding)
- val subtitleVerticalSpacing = dimensionResource(id = R.dimen.cell_footer_top_padding)
+ val cellHeight = Dimens.cellHeight
+ val cellVerticalSpacing = Dimens.cellLabelVerticalPadding
+ val subtitleVerticalSpacing = Dimens.cellFooterTopPadding
Column(modifier = Modifier.fillMaxWidth().wrapContentHeight().background(background)) {
val rowModifier =
@@ -87,6 +85,8 @@ internal fun BaseCell(
.fillMaxWidth()
.padding(start = startPadding, end = endPadding)
) {
+ iconView()
+
title()
Spacer(modifier = Modifier.weight(1.0f))
@@ -98,7 +98,7 @@ internal fun BaseCell(
Row(
modifier =
subtitleModifier
- .background(MullvadDarkBlue)
+ .background(MaterialTheme.colorScheme.secondary)
.padding(
start = startPadding,
top = subtitleVerticalSpacing,
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SelectableCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SelectableCell.kt
index cead89cc63..8910f63bb7 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SelectableCell.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SelectableCell.kt
@@ -1,18 +1,41 @@
package net.mullvad.mullvadvpn.compose.cell
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.alpha
import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.Dp
+import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.compose.theme.Dimens
@Composable
fun SelectableCell(
title: String,
isSelected: Boolean,
+ iconContentDescription: String? = null,
+ selectedIcon: @Composable () -> Unit = {
+ Icon(
+ painter = painterResource(id = R.drawable.icon_tick),
+ contentDescription = iconContentDescription,
+ tint = MaterialTheme.colorScheme.onPrimary,
+ modifier =
+ Modifier.padding(end = Dimens.selectableCellTextMargin)
+ .alpha(
+ if (isSelected) {
+ 1f
+ } else {
+ 0f
+ }
+ )
+ )
+ },
titleStyle: TextStyle = MaterialTheme.typography.labelLarge,
- startPadding: Dp = Dimens.indentedCellStartPadding,
+ startPadding: Dp = Dimens.cellStartPadding,
selectedColor: Color = MaterialTheme.colorScheme.surface,
backgroundColor: Color = MaterialTheme.colorScheme.secondaryContainer,
onCellClicked: () -> Unit = {},
@@ -26,6 +49,7 @@ fun SelectableCell(
} else {
backgroundColor
},
- startPadding = startPadding
+ startPadding = startPadding,
+ iconView = selectedIcon
)
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/theme/dimensions/Dimensions.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/theme/dimensions/Dimensions.kt
index 04236760d3..a017b6e4b2 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/theme/dimensions/Dimensions.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/theme/dimensions/Dimensions.kt
@@ -16,7 +16,11 @@ data class Dimensions(
val cellEndPadding: Dp = 16.dp,
val listIconSize: Dp = 24.dp,
val progressIndicatorSize: Dp = 60.dp,
- val indentedCellStartPadding: Dp = 38.dp
+ val indentedCellStartPadding: Dp = 38.dp,
+ val cellHeight: Dp = 52.dp,
+ val cellLabelVerticalPadding: Dp = 14.dp,
+ val cellFooterTopPadding: Dp = 6.dp,
+ val selectableCellTextMargin: Dp = 12.dp
)
val defaultDimensions = Dimensions()