diff options
| author | Albin <albin@mullvad.net> | 2024-08-12 16:18:11 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2024-08-12 16:18:11 +0200 |
| commit | 4cf9cbaea4a2d45433e83acdde563e00c0b0eabd (patch) | |
| tree | 84998c7321976943fc2eb7366191326043e5ad0d | |
| parent | 34085422afa4e7091b1dae4b5372344a6e9f7d54 (diff) | |
| parent | ed7cac065604d0b78ed7276ea35f47b614bfb2fe (diff) | |
| download | mullvadvpn-4cf9cbaea4a2d45433e83acdde563e00c0b0eabd.tar.xz mullvadvpn-4cf9cbaea4a2d45433e83acdde563e00c0b0eabd.zip | |
Merge branch 'view-logs-crashes-on-google-tv-droid-873'
10 files changed, 30 insertions, 16 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NavigateButton.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NavigateButton.kt index 3543ac31cb..c610a0cd8a 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NavigateButton.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NavigateButton.kt @@ -9,8 +9,8 @@ import androidx.compose.ui.res.painterResource import net.mullvad.mullvadvpn.R @Composable -fun NavigateBackIconButton(onNavigateBack: () -> Unit) { - IconButton(onClick = onNavigateBack) { +fun NavigateBackIconButton(modifier: Modifier = Modifier, onNavigateBack: () -> Unit) { + IconButton(onClick = onNavigateBack, modifier = modifier) { Icon(painter = painterResource(id = R.drawable.icon_back), contentDescription = null) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt index 247e009f59..dec7b15c30 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt @@ -83,7 +83,7 @@ fun ApiAccessListScreen( ) { ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.settings_api_access), - navigationIcon = { NavigateBackIconButton(onBackClick) }, + navigationIcon = { NavigateBackIconButton(onNavigateBack = onBackClick) }, ) { modifier, lazyListState -> LazyColumn(modifier = modifier, state = lazyListState) { description() diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt index f876a0790f..60cf817164 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt @@ -189,7 +189,7 @@ fun ApiAccessMethodDetailsScreen( ) { ScaffoldWithMediumTopBar( appBarTitle = state.name(), - navigationIcon = { NavigateBackIconButton(onBackClicked) }, + navigationIcon = { NavigateBackIconButton(onNavigateBack = onBackClicked) }, snackbarHostState = snackbarHostState, actions = { if (state.canBeEdited()) { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt index aa0f60c479..a372eab354 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt @@ -85,7 +85,7 @@ fun AutoConnectAndLockdownModeScreen(onBackClick: () -> Unit = {}) { val context = LocalContext.current ScaffoldWithLargeTopBarAndButton( appBarTitle = stringResource(id = R.string.auto_connect_and_lockdown_mode_two_lines), - navigationIcon = { NavigateBackIconButton(onBackClick) }, + navigationIcon = { NavigateBackIconButton(onNavigateBack = onBackClick) }, buttonTitle = stringResource(id = R.string.go_to_vpn_settings), onButtonClick = { context.openVpnSettings() }, content = { modifier -> diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt index 8ca728ca4b..8f43f4c888 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt @@ -123,7 +123,7 @@ fun CustomListsScreen( ) { ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.edit_custom_lists), - navigationIcon = { NavigateBackIconButton(onBackClick) }, + navigationIcon = { NavigateBackIconButton(onNavigateBack = onBackClick) }, actions = { IconButton( onClick = addCustomList, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt index 19aa05b7f9..6f35e8519e 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt @@ -145,7 +145,7 @@ private fun ReportProblemScreen( ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.report_a_problem), - navigationIcon = { NavigateBackIconButton(onBackClick) } + navigationIcon = { NavigateBackIconButton(onNavigateBack = onBackClick) } ) { modifier -> // Show sending states if (state.sendingState != null) { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt index c323fcce3f..0ff97589d3 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt @@ -172,7 +172,7 @@ fun ServerIpOverridesScreen( ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.server_ip_overrides), - navigationIcon = { NavigateBackIconButton(onBackClick) }, + navigationIcon = { NavigateBackIconButton(onNavigateBack = onBackClick) }, actions = { TopBarActions( overridesActive = state.overridesActive, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreen.kt index 84a0e6fd9c..df837b5750 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreen.kt @@ -122,7 +122,7 @@ fun SplitTunnelingScreen( ScaffoldWithMediumTopBar( modifier = Modifier.fillMaxSize(), appBarTitle = stringResource(id = R.string.split_tunneling), - navigationIcon = { NavigateBackIconButton(onBackClick) }, + navigationIcon = { NavigateBackIconButton(onNavigateBack = onBackClick) }, ) { modifier, lazyListState -> LazyColumn( modifier = modifier, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt index 0047655e26..83f9121493 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt @@ -24,7 +24,10 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusProperties import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -71,7 +74,7 @@ fun ViewLogs(navigator: DestinationsNavigator) { ViewLogsScreen(state = state, onBackClick = dropUnlessResumed { navigator.navigateUp() }) } -@OptIn(ExperimentalMaterial3Api::class) +@OptIn(ExperimentalMaterial3Api::class, ExperimentalComposeUiApi::class) @Composable fun ViewLogsScreen( state: ViewLogsUiState, @@ -92,16 +95,27 @@ fun ViewLogsScreen( topBar = { MullvadMediumTopBar( title = stringResource(id = R.string.view_logs), - navigationIcon = { NavigateBackIconButton(onBackClick) }, + navigationIcon = { + NavigateBackIconButton( + onNavigateBack = onBackClick, + modifier = Modifier.focusProperties { down = FocusRequester.Cancel } + ) + }, actions = { val clipboardToastMessage = stringResource(R.string.copied_logs_to_clipboard) - IconButton(onClick = { clipboardHandle(state.text(), clipboardToastMessage) }) { + IconButton( + onClick = { clipboardHandle(state.text(), clipboardToastMessage) }, + modifier = Modifier.focusProperties { down = FocusRequester.Cancel } + ) { Icon( painter = painterResource(id = R.drawable.icon_copy), contentDescription = null ) } - IconButton(onClick = { scope.launch { shareText(context, state.text()) } }) { + IconButton( + onClick = { scope.launch { shareText(context, state.text()) } }, + modifier = Modifier.focusProperties { down = FocusRequester.Cancel } + ) { Icon(imageVector = Icons.Default.Share, contentDescription = null) } } @@ -137,8 +151,8 @@ fun ViewLogsScreen( ) .padding(horizontal = Dimens.smallPadding) ) { - items(state.allLines) { - Text(text = it, style = MaterialTheme.typography.bodySmall) + items(state.allLines) { text -> + Text(text = text, style = MaterialTheme.typography.bodySmall) } } } 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 d92694afc2..accc593f3c 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 @@ -300,7 +300,7 @@ fun VpnSettingsScreen( ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.settings_vpn), - navigationIcon = { NavigateBackIconButton(onBackClick) }, + navigationIcon = { NavigateBackIconButton(onNavigateBack = onBackClick) }, snackbarHostState = snackbarHostState ) { modifier, lazyListState -> LazyColumn( |
