diff --git a/app/src/main/java/com/tomg/githubreleasemonitor/main/ui/MainScreen.kt b/app/src/main/java/com/tomg/githubreleasemonitor/main/ui/MainScreen.kt index 5f19bdf..3d12613 100644 --- a/app/src/main/java/com/tomg/githubreleasemonitor/main/ui/MainScreen.kt +++ b/app/src/main/java/com/tomg/githubreleasemonitor/main/ui/MainScreen.kt @@ -39,7 +39,6 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.rememberLazyListState @@ -328,7 +327,7 @@ fun MainScreen( ) { val items = gitHubRepositories.collectAsLazyPagingItems() Scaffold( - modifier = modifier.systemBarsPadding(), + modifier = modifier, topBar = { SearchBar( focusRequester = focusRequester, diff --git a/app/src/main/java/com/tomg/githubreleasemonitor/main/ui/SortOrderDialog.kt b/app/src/main/java/com/tomg/githubreleasemonitor/main/ui/SortOrderDialog.kt index d1d2060..9315787 100644 --- a/app/src/main/java/com/tomg/githubreleasemonitor/main/ui/SortOrderDialog.kt +++ b/app/src/main/java/com/tomg/githubreleasemonitor/main/ui/SortOrderDialog.kt @@ -20,8 +20,10 @@ package com.tomg.githubreleasemonitor.main.ui +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material.icons.Icons @@ -91,7 +93,12 @@ fun SortOrderDialog( LazyColumn { for ((text, order) in sortOrders) { item { - Row(verticalAlignment = Alignment.CenterVertically) { + Row( + modifier = Modifier + .fillMaxWidth() + .clickable { sortOrder = order }, + verticalAlignment = Alignment.CenterVertically + ) { RadioButton( selected = sortOrder == order, onClick = { diff --git a/app/src/main/java/com/tomg/githubreleasemonitor/settings/ui/MonitorIntervalDialog.kt b/app/src/main/java/com/tomg/githubreleasemonitor/settings/ui/MonitorIntervalDialog.kt index 4ddce17..27aa2f4 100644 --- a/app/src/main/java/com/tomg/githubreleasemonitor/settings/ui/MonitorIntervalDialog.kt +++ b/app/src/main/java/com/tomg/githubreleasemonitor/settings/ui/MonitorIntervalDialog.kt @@ -23,6 +23,7 @@ package com.tomg.githubreleasemonitor.settings.ui import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.AlertDialog @@ -76,9 +77,9 @@ fun MonitorIntervalDialog( for (monitorIntervalEntry in monitorIntervalEntries) { item { Row( - modifier = Modifier.clickable { - onConfirm(monitorInterval) - }, + modifier = Modifier + .fillMaxWidth() + .clickable { monitorInterval = monitorIntervalEntry.key }, verticalAlignment = Alignment.CenterVertically ) { RadioButton( diff --git a/app/src/main/java/com/tomg/githubreleasemonitor/settings/ui/SettingsScreen.kt b/app/src/main/java/com/tomg/githubreleasemonitor/settings/ui/SettingsScreen.kt index a550de4..6a4af82 100644 --- a/app/src/main/java/com/tomg/githubreleasemonitor/settings/ui/SettingsScreen.kt +++ b/app/src/main/java/com/tomg/githubreleasemonitor/settings/ui/SettingsScreen.kt @@ -25,13 +25,11 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.asPaddingValues +import androidx.compose.foundation.layout.calculateEndPadding +import androidx.compose.foundation.layout.calculateStartPadding import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.statusBarsPadding -import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.ArrowBack @@ -54,6 +52,7 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.google.accompanist.systemuicontroller.SystemUiController @@ -160,10 +159,7 @@ fun SettingsScreen( } ) } - val displayName = stringResource(R.string.app_name) + - "_" + - LocalDateTime.now().toString() + - ".json" + val appName = stringResource(R.string.app_name) SettingScreen( snackBarHostState = snackBarHostState, monitorInterval = state.monitorInterval, @@ -177,6 +173,7 @@ fun SettingsScreen( importGitHubRepositories.launch(arrayOf(MIME_TYPE_JSON)) }, onGitHubRepositoriesExport = { + val displayName = appName + "_" + LocalDateTime.now().toString() + ".json" exportGitHubRepositories.launch(displayName) }, onUserSignOutRequested = { @@ -199,7 +196,7 @@ fun SettingScreen( onNavigateUp: () -> Unit = {} ) { Scaffold( - modifier = modifier.systemBarsPadding(), + modifier = modifier, topBar = { TopAppBar( modifier = Modifier.statusBarsPadding(), @@ -214,18 +211,14 @@ fun SettingScreen( } ) }, - snackbarHost = { - val insetsPadding = WindowInsets.navigationBars.asPaddingValues() - SnackbarHost( - hostState = snackBarHostState, - modifier = Modifier.padding(bottom = insetsPadding.calculateBottomPadding()) - ) - } - ) { innerPadding -> + snackbarHost = { SnackbarHost(hostState = snackBarHostState) } + ) { padding -> Column( modifier = Modifier.padding( - top = innerPadding.calculateTopPadding(), - bottom = innerPadding.calculateBottomPadding() + start = padding.calculateStartPadding(LocalLayoutDirection.current), + top = padding.calculateTopPadding(), + end = padding.calculateEndPadding(LocalLayoutDirection.current), + bottom = padding.calculateBottomPadding() ) ) { AnimatedVisibility(visible = isLoading) {