diff options
| author | Linus Färnstrand <faern@faern.net> | 2023-07-06 11:20:49 +0200 |
|---|---|---|
| committer | Linus Färnstrand <faern@faern.net> | 2023-07-06 11:20:49 +0200 |
| commit | d1bfe4b7107ed2ed98214dbcc3976b3ce42be044 (patch) | |
| tree | f80bd3ec2852e2250249a061858a626b159ff1d3 /android | |
| parent | 81d8ad7f85296b2bb34c0d88b083cddcf3a19369 (diff) | |
| parent | a6cab19b6699080a611a884eaaad80c2973fd0e2 (diff) | |
| download | mullvadvpn-d1bfe4b7107ed2ed98214dbcc3976b3ce42be044.tar.xz mullvadvpn-d1bfe4b7107ed2ed98214dbcc3976b3ce42be044.zip | |
Merge branch 'replace-material-components-with-material-3-components-droid-161'
Diffstat (limited to 'android')
29 files changed, 145 insertions, 160 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt index 728dce08d9..e66e779313 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt @@ -1,6 +1,5 @@ package net.mullvad.mullvadvpn.compose.screen -import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.ui.test.assertIsEnabled import androidx.compose.ui.test.assertIsNotEnabled import androidx.compose.ui.test.hasTestTag @@ -39,7 +38,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testDefaultState() { // Arrange composeTestRule.setContent { @@ -62,7 +60,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testMtuCustomValue() { // Arrange composeTestRule.setContent { @@ -77,7 +74,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testMtuClick() { // Arrange val mockedClickHandler: () -> Unit = mockk(relaxed = true) @@ -97,7 +93,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testMtuDialogWithDefaultValue() { // Arrange composeTestRule.setContent { @@ -112,7 +107,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testMtuDialogWithEditValue() { // Arrange composeTestRule.setContent { @@ -127,7 +121,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testMtuDialogTextInput() { // Arrange val mockedInputHandler: (String) -> Unit = mockk(relaxed = true) @@ -147,7 +140,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testMtuDialogSubmitOfValidValue() { // Arrange val mockedSubmitHandler: () -> Unit = mockk(relaxed = true) @@ -167,7 +159,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testMtuDialogSubmitButtonDisabledWhenInvalidInput() { // Arrange composeTestRule.setContent { @@ -183,7 +174,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testMtuDialogResetClick() { // Arrange val mockedClickHandler: () -> Unit = mockk(relaxed = true) @@ -203,7 +193,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testMtuDialogCancelClick() { // Arrange val mockedClickHandler: () -> Unit = mockk(relaxed = true) @@ -223,7 +212,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testCustomDnsAddressesAndAddButtonVisibleWhenCustomDnsEnabled() { // Arrange composeTestRule.setContent { @@ -255,7 +243,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testCustomDnsAddressesAndAddButtonNotVisibleWhenCustomDnsDisabled() { // Arrange composeTestRule.setContent { @@ -277,7 +264,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testLanWarningNotShownWhenLanTrafficEnabledAndLocalAddressIsUsed() { // Arrange composeTestRule.setContent { @@ -298,7 +284,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testLanWarningNotShowedWhenLanTrafficDisabledAndLocalAddressIsNotUsed() { // Arrange composeTestRule.setContent { @@ -319,7 +304,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testLanWarningNotShowedWhenLanTrafficEnabledAndLocalAddressIsNotUsed() { // Arrange composeTestRule.setContent { @@ -340,7 +324,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testLanWarningShowedWhenAllowLanEnabledAndLocalDnsAddressIsUsed() { // Arrange composeTestRule.setContent { @@ -366,7 +349,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testClickAddDns() { // Arrange val mockedClickHandler: (Int?) -> Unit = mockk(relaxed = true) @@ -389,7 +371,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testShowDnsDialogForNewDnsServer() { // Arrange composeTestRule.setContent { @@ -410,7 +391,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testShowDnsDialogForUpdatingDnsServer() { // Arrange composeTestRule.setContent { @@ -432,7 +412,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testDnsDialogLanWarningShownWhenLanTrafficDisabledAndLocalAddressUsed() { // Arrange composeTestRule.setContent { @@ -455,7 +434,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testDnsDialogLanWarningNotShownWhenLanTrafficEnabledAndLocalAddressUsed() { // Arrange composeTestRule.setContent { @@ -478,7 +456,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testDnsDialogLanWarningNotShownWhenLanTrafficEnabledAndNonLocalAddressUsed() { // Arrange composeTestRule.setContent { @@ -501,7 +478,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testDnsDialogLanWarningNotShownWhenLanTrafficDisabledAndNonLocalAddressUsed() { // Arrange composeTestRule.setContent { @@ -524,7 +500,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testDnsDialogSubmitButtonDisabledOnInvalidDnsAddress() { // Arrange composeTestRule.setContent { @@ -546,7 +521,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testDnsDialogSubmitButtonDisabledOnDuplicateDnsAddress() { // Arrange composeTestRule.setContent { @@ -568,7 +542,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testShowSelectedTunnelQuantumOption() { // Arrange composeTestRule.setContent { @@ -589,7 +562,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testSelectTunnelQuantumOption() { // Arrange val mockSelectQuantumResistantSettingListener: (QuantumResistantState) -> Unit = @@ -618,7 +590,6 @@ class VpnSettingsScreenTest { } @Test - @OptIn(ExperimentalMaterialApi::class) fun testShowTunnelQuantumInfo() { // Arrange composeTestRule.setContent { 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 afc21a8e1f..6025abb281 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 @@ -11,8 +11,8 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.material.Text import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt index 603c2f60df..81b9195498 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DnsCell.kt @@ -2,8 +2,8 @@ package net.mullvad.mullvadvpn.compose.cell import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.material.Icon -import androidx.compose.material.Text +import androidx.compose.material3.Icon +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt index c845db3ff6..70b975bd98 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt @@ -6,7 +6,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.material.Icon +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/InformationComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/InformationComposeCell.kt index 21a3af926e..283aa17591 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/InformationComposeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/InformationComposeCell.kt @@ -5,7 +5,7 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.material.Icon +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/MtuComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/MtuComposeCell.kt index b7fe9ee7a1..d390bb20e5 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/MtuComposeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/MtuComposeCell.kt @@ -3,8 +3,8 @@ package net.mullvad.mullvadvpn.compose.cell import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth as wrapContentWidth1 -import androidx.compose.material.Text import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/NavigationComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/NavigationComposeCell.kt index 87ef0cbfe5..fb8a5e89d1 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/NavigationComposeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/NavigationComposeCell.kt @@ -3,7 +3,7 @@ package net.mullvad.mullvadvpn.compose.cell import androidx.compose.foundation.Image import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt index 196ae9c89d..2a47581056 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt @@ -15,8 +15,8 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.Text import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt index 9c81d24b39..50756ef32e 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt @@ -5,9 +5,9 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.material.Icon -import androidx.compose.material.Text +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Button.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Button.kt index f8c7127d1a..e3885078fd 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Button.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Button.kt @@ -4,9 +4,10 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.material.Button -import androidx.compose.material.ButtonColors -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonColors +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.dimensionResource @@ -37,7 +38,8 @@ fun ActionButton( minHeight = dimensionResource(id = R.dimen.button_height) ) .fillMaxWidth(), - colors = colors + colors = colors, + shape = MaterialTheme.shapes.small ) { Text( text = text, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Chevron.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Chevron.kt index 49546aa8f4..b348ca733f 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Chevron.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Chevron.kt @@ -6,9 +6,7 @@ import androidx.compose.animation.core.tween import androidx.compose.foundation.Image import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.draw.rotate import androidx.compose.ui.res.painterResource diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CollapsingTopBar.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CollapsingTopBar.kt index 9a9b852013..f6679f2c58 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CollapsingTopBar.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/CollapsingTopBar.kt @@ -10,9 +10,10 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -73,8 +74,9 @@ fun CollapsingTopBar( colors = ButtonDefaults.buttonColors( contentColor = Color.White, - backgroundColor = MullvadDarkBlue - ) + containerColor = MullvadDarkBlue + ), + shape = MaterialTheme.shapes.small ) { Image( painter = painterResource(id = backIcon ?: R.drawable.icon_back), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/List.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/List.kt index f31e9052dd..8f1196bddf 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/List.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/List.kt @@ -13,9 +13,9 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentHeight -import androidx.compose.material.CircularProgressIndicator -import androidx.compose.material.Text +import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Text.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Text.kt index cfa999194e..9f8527a021 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Text.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Text.kt @@ -1,7 +1,7 @@ package net.mullvad.mullvadvpn.compose.component -import androidx.compose.material.LocalTextStyle -import androidx.compose.material.Text +import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/TopBar.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/TopBar.kt index 4395f1b0cf..3e42faba80 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/TopBar.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/TopBar.kt @@ -8,7 +8,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material.Icon +import androidx.compose.material3.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialog.kt index cca158c3c0..27cc1c221b 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialog.kt @@ -5,10 +5,11 @@ import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight -import androidx.compose.material.AlertDialog -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.Text +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -50,7 +51,7 @@ fun ChangelogDialog(changesList: List<String>, version: String, onDismiss: () -> changesList.forEach { changeItem -> ChangeListItem(text = changeItem) } } }, - buttons = { + confirmButton = { Button( modifier = Modifier.wrapContentHeight() @@ -59,10 +60,11 @@ fun ChangelogDialog(changesList: List<String>, version: String, onDismiss: () -> .fillMaxWidth(), colors = ButtonDefaults.buttonColors( - backgroundColor = colorResource(id = R.color.blue), + containerColor = colorResource(id = R.color.blue), contentColor = colorResource(id = R.color.white) ), - onClick = { onDismiss() } + onClick = { onDismiss() }, + shape = MaterialTheme.shapes.small ) { Text( text = stringResource(R.string.changes_dialog_dismiss_button), @@ -75,7 +77,7 @@ fun ChangelogDialog(changesList: List<String>, version: String, onDismiss: () -> dismissOnClickOutside = true, dismissOnBackPress = true, ), - backgroundColor = colorResource(id = R.color.darkBlue) + containerColor = colorResource(id = R.color.darkBlue) ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeviceRemovalDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeviceRemovalDialog.kt index e83a4a42ac..4d962d5e89 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeviceRemovalDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeviceRemovalDialog.kt @@ -8,15 +8,16 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material.AlertDialog -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.Text +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester -import androidx.compose.ui.focus.focusOrder +import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.dimensionResource @@ -63,47 +64,48 @@ fun ShowDeviceRemovalDialog(viewModel: DeviceListViewModel, device: Device) { HtmlText(htmlFormattedString = htmlFormattedDialogText, textSize = 16.sp.value) }, - buttons = { - Column(Modifier.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)) { - Button( - modifier = - Modifier.height(dimensionResource(id = R.dimen.button_height)) - .defaultMinSize( - minWidth = 0.dp, - minHeight = dimensionResource(id = R.dimen.button_height) - ) - .fillMaxWidth(), - colors = - ButtonDefaults.buttonColors( - backgroundColor = colorResource(id = R.color.red), - contentColor = Color.White - ), - onClick = { viewModel.confirmRemovalOfStagedDevice() } - ) { - Text(text = stringResource(id = R.string.confirm_removal), fontSize = 18.sp) - } - Button( - contentPadding = PaddingValues(0.dp), - modifier = - Modifier.focusOrder(FocusRequester()) - .padding(top = 16.dp) - .height(dimensionResource(id = R.dimen.button_height)) - .defaultMinSize( - minWidth = 0.dp, - minHeight = dimensionResource(id = R.dimen.button_height) - ) - .fillMaxWidth(), - colors = - ButtonDefaults.buttonColors( - backgroundColor = colorResource(id = R.color.blue), - contentColor = Color.White - ), - onClick = { viewModel.clearStagedDevice() } - ) { - Text(text = stringResource(id = R.string.back), fontSize = 18.sp) - } + dismissButton = { + Button( + modifier = + Modifier.height(dimensionResource(id = R.dimen.button_height)) + .defaultMinSize( + minWidth = 0.dp, + minHeight = dimensionResource(id = R.dimen.button_height) + ) + .fillMaxWidth(), + colors = + ButtonDefaults.buttonColors( + containerColor = colorResource(id = R.color.red), + contentColor = Color.White + ), + onClick = { viewModel.confirmRemovalOfStagedDevice() }, + shape = MaterialTheme.shapes.small + ) { + Text(text = stringResource(id = R.string.confirm_removal), fontSize = 18.sp) + } + }, + confirmButton = { + Button( + contentPadding = PaddingValues(0.dp), + modifier = + Modifier.focusRequester(FocusRequester()) + .height(dimensionResource(id = R.dimen.button_height)) + .defaultMinSize( + minWidth = 0.dp, + minHeight = dimensionResource(id = R.dimen.button_height) + ) + .fillMaxWidth(), + colors = + ButtonDefaults.buttonColors( + containerColor = colorResource(id = R.color.blue), + contentColor = Color.White + ), + onClick = { viewModel.clearStagedDevice() }, + shape = MaterialTheme.shapes.small + ) { + Text(text = stringResource(id = R.string.back), fontSize = 18.sp) } }, - backgroundColor = colorResource(id = R.color.darkBlue) + containerColor = colorResource(id = R.color.darkBlue) ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt index 1f72107eed..ad2c80d2ae 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt @@ -9,9 +9,10 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentSize -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier @@ -127,13 +128,14 @@ fun DnsDialog( .fillMaxWidth(), colors = ButtonDefaults.buttonColors( - backgroundColor = MullvadBlue, + containerColor = MullvadBlue, contentColor = MullvadWhite, disabledContentColor = MullvadWhite60, - disabledBackgroundColor = MullvadWhite20 + disabledContainerColor = MullvadWhite20 ), onClick = { onAttemptToSave() }, - enabled = stagedDns.isValid() + enabled = stagedDns.isValid(), + shape = MaterialTheme.shapes.small ) { Text( text = stringResource(id = R.string.submit_button), @@ -150,10 +152,11 @@ fun DnsDialog( .fillMaxWidth(), colors = ButtonDefaults.buttonColors( - backgroundColor = MullvadBlue, + containerColor = MullvadBlue, contentColor = MullvadWhite ), - onClick = { onRemove() } + onClick = { onRemove() }, + shape = MaterialTheme.shapes.small ) { Text( text = stringResource(id = R.string.remove_button), @@ -170,10 +173,11 @@ fun DnsDialog( .fillMaxWidth(), colors = ButtonDefaults.buttonColors( - backgroundColor = MullvadBlue, + containerColor = MullvadBlue, contentColor = Color.White ), - onClick = { onDismiss() } + onClick = { onDismiss() }, + shape = MaterialTheme.shapes.small ) { Text(text = stringResource(id = R.string.cancel), fontSize = textMediumSize) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/InfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/InfoDialog.kt index b7a6e4ba0d..dd52abc492 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/InfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/InfoDialog.kt @@ -6,11 +6,12 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight -import androidx.compose.material.AlertDialog -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.Icon -import androidx.compose.material.Text +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -77,7 +78,7 @@ fun InfoDialog(message: String, additionalInfo: String? = null, onDismiss: () -> } } }, - buttons = { + confirmButton = { Button( modifier = Modifier.wrapContentHeight() @@ -86,10 +87,11 @@ fun InfoDialog(message: String, additionalInfo: String? = null, onDismiss: () -> .fillMaxWidth(), colors = ButtonDefaults.buttonColors( - backgroundColor = colorResource(id = R.color.blue), + containerColor = colorResource(id = R.color.blue), contentColor = colorResource(id = R.color.white) ), - onClick = { onDismiss() } + onClick = { onDismiss() }, + shape = MaterialTheme.shapes.small ) { Text( text = stringResource(R.string.changes_dialog_dismiss_button), @@ -102,6 +104,6 @@ fun InfoDialog(message: String, additionalInfo: String? = null, onDismiss: () -> dismissOnClickOutside = true, dismissOnBackPress = true, ), - backgroundColor = colorResource(id = R.color.darkBlue) + containerColor = colorResource(id = R.color.darkBlue) ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MtuDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MtuDialog.kt index d5dbde3ab0..fe04575de2 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MtuDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MtuDialog.kt @@ -9,9 +9,10 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentSize -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier @@ -114,13 +115,14 @@ fun MtuDialog( Modifier.padding(top = mediumPadding).height(buttonSize).fillMaxWidth(), colors = ButtonDefaults.buttonColors( - backgroundColor = MullvadBlue, + containerColor = MullvadBlue, contentColor = MullvadWhite, disabledContentColor = MullvadWhite60, - disabledBackgroundColor = MullvadWhite20 + disabledContainerColor = MullvadWhite20 ), enabled = isValidMtu, - onClick = { onSave() } + onClick = { onSave() }, + shape = MaterialTheme.shapes.small ) { Text(text = stringResource(R.string.submit_button), fontSize = textMediumSize) } @@ -133,10 +135,11 @@ fun MtuDialog( .fillMaxWidth(), colors = ButtonDefaults.buttonColors( - backgroundColor = MullvadBlue, + containerColor = MullvadBlue, contentColor = MullvadWhite ), - onClick = { onRestoreDefaultValue() } + onClick = { onRestoreDefaultValue() }, + shape = MaterialTheme.shapes.small ) { Text( text = stringResource(R.string.reset_to_default_button), @@ -152,10 +155,11 @@ fun MtuDialog( .fillMaxWidth(), colors = ButtonDefaults.buttonColors( - backgroundColor = MullvadBlue, + containerColor = MullvadBlue, contentColor = Color.White ), - onClick = { onDismiss() } + onClick = { onDismiss() }, + shape = MaterialTheme.shapes.small ) { Text(text = stringResource(R.string.cancel), fontSize = textMediumSize) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LazyListExtensions.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LazyListExtensions.kt index 383b745746..ddddd6c078 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LazyListExtensions.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LazyListExtensions.kt @@ -2,7 +2,7 @@ package net.mullvad.mullvadvpn.compose.extensions import androidx.compose.foundation.lazy.LazyItemScope import androidx.compose.foundation.lazy.LazyListScope -import androidx.compose.material.Divider +import androidx.compose.material3.Divider import androidx.compose.runtime.Composable inline fun LazyListScope.itemWithDivider( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt index 70082e9f3a..d2bc588443 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt @@ -13,9 +13,9 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.Text +import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier @@ -174,8 +174,8 @@ fun DeviceListScreen( isEnabled = state.hasTooManyDevices.not() && state.isLoading.not(), colors = ButtonDefaults.buttonColors( - backgroundColor = MullvadGreen, - disabledBackgroundColor = MullvadGreen40, + containerColor = MullvadGreen, + disabledContainerColor = MullvadGreen40, disabledContentColor = MullvadWhite80, contentColor = MullvadWhite ) @@ -186,7 +186,7 @@ fun DeviceListScreen( onClick = onBackClick, colors = ButtonDefaults.buttonColors( - backgroundColor = MullvadBlue, + containerColor = MullvadBlue, contentColor = MullvadWhite ), modifier = Modifier.padding(top = 16.dp) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt index dcbc32befb..242494ba1a 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt @@ -8,8 +8,8 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.Text +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier @@ -99,7 +99,7 @@ fun DeviceRevokedScreen(deviceRevokedViewModel: DeviceRevokedViewModel) { colors = ButtonDefaults.buttonColors( contentColor = Color.White, - backgroundColor = + containerColor = colorResource( if (state == DeviceRevokedUiState.SECURED) { R.color.red60 diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoadingScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoadingScreen.kt index 0189fc4df6..48d86fd2f8 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoadingScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoadingScreen.kt @@ -9,7 +9,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt index 7c1cfdcf1a..b932a63686 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt @@ -10,8 +10,8 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.text.ClickableText -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.Text +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -105,7 +105,7 @@ fun PrivacyDisclaimerScreen( colors = ButtonDefaults.buttonColors( contentColor = Color.White, - backgroundColor = colorResource(R.color.blue) + containerColor = colorResource(R.color.blue) ) ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt index 83e0ea5921..735c9464dc 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt @@ -13,10 +13,9 @@ import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.material.Divider -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.Text +import androidx.compose.material3.Divider import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect @@ -77,7 +76,6 @@ import net.mullvad.mullvadvpn.model.QuantumResistantState import net.mullvad.mullvadvpn.model.SelectedObfuscation import net.mullvad.mullvadvpn.viewmodel.CustomDnsItem -@OptIn(ExperimentalMaterialApi::class) @Preview @Composable private fun PreviewVpnSettings() { @@ -125,7 +123,6 @@ private fun PreviewVpnSettings() { } @OptIn(ExperimentalFoundationApi::class) -@ExperimentalMaterialApi @Composable fun VpnSettingsScreen( lifecycleOwner: LifecycleOwner = LocalLifecycleOwner.current, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt index 4b3138b7ea..2eeffce8dd 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt @@ -12,7 +12,7 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.BasicTextField import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/theme/Theme.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/theme/Theme.kt index 527f9430f9..c2cc862b8d 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/theme/Theme.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/theme/Theme.kt @@ -9,6 +9,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.remember import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.TextUnit @@ -61,14 +62,16 @@ private val MullvadColorPalette = onPrimary = MullvadWhite, onSecondary = MullvadWhite60, inversePrimary = MullvadGreen, - error = MullvadRed + error = MullvadRed, + outlineVariant = Color.Transparent // Used by divider ) val Shapes = Shapes( small = RoundedCornerShape(4.dp), medium = RoundedCornerShape(4.dp), - large = RoundedCornerShape(0.dp) + large = RoundedCornerShape(0.dp), + extraLarge = RoundedCornerShape(4.dp) ) val Dimens: Dimensions diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/VpnSettingsFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/VpnSettingsFragment.kt index 6f689ff2c4..f90186e548 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/VpnSettingsFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/VpnSettingsFragment.kt @@ -4,7 +4,6 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.runtime.collectAsState import androidx.compose.ui.platform.ComposeView import net.mullvad.mullvadvpn.R @@ -16,7 +15,6 @@ import org.koin.androidx.viewmodel.ext.android.viewModel class VpnSettingsFragment : BaseFragment() { private val vm by viewModel<VpnSettingsViewModel>() - @OptIn(ExperimentalMaterialApi::class) override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, |
