Skip to content

Commit

Permalink
Cleaned up main screen composables
Browse files Browse the repository at this point in the history
  • Loading branch information
fobo66 committed Nov 16, 2024
1 parent ac9b0be commit e7dbf74
Showing 1 changed file with 41 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import androidx.compose.material3.TopAppBar
import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
import androidx.compose.material3.adaptive.layout.SupportingPaneScaffold
import androidx.compose.material3.adaptive.layout.ThreePaneScaffoldRole
import androidx.compose.material3.adaptive.navigation.ThreePaneScaffoldNavigator
import androidx.compose.material3.adaptive.navigation.rememberSupportingPaneScaffoldNavigator
import androidx.compose.material3.windowsizeclass.WindowSizeClass
import androidx.compose.material3.windowsizeclass.WindowWidthSizeClass
Expand Down Expand Up @@ -71,12 +72,9 @@ fun MainActivityContent(
) {
val navigator = rememberSupportingPaneScaffoldNavigator()
var isAboutDialogShown by remember { mutableStateOf(false) }
val locationPermissionState = rememberPermissionState(permission.ACCESS_COARSE_LOCATION)
val snackbarHostState = remember { SnackbarHostState() }
val scope = rememberCoroutineScope()

BackHandler(navigator.canNavigateBack()) { scope.launch { navigator.navigateBack() } }

Scaffold(
topBar = {
ValiutchikTopBar(
Expand Down Expand Up @@ -106,27 +104,9 @@ fun MainActivityContent(
modifier = modifier,
) {
val layoutDirection = LocalLayoutDirection.current
SupportingPaneScaffold(
directive = navigator.scaffoldDirective,
value = navigator.scaffoldValue,
mainPane = {
BestRatesScreenDestination(
snackbarHostState = snackbarHostState,
permissionState = locationPermissionState,
)
},
supportingPane = {
PreferenceScreen(
onLicensesClick = {
scope.launch {
navigator.navigateTo(
ThreePaneScaffoldRole.Tertiary,
)
}
},
)
},
extraPane = { OpenSourceLicensesDestination() },
MainScreenPanels(
navigator = navigator,
snackbarHostState = snackbarHostState,
modifier =
Modifier.padding(
start = it.calculateStartPadding(layoutDirection),
Expand All @@ -140,6 +120,43 @@ fun MainActivityContent(
}
}

@OptIn(ExperimentalMaterial3AdaptiveApi::class, ExperimentalPermissionsApi::class)
@Composable
fun MainScreenPanels(
navigator: ThreePaneScaffoldNavigator<Any>,
snackbarHostState: SnackbarHostState,
modifier: Modifier = Modifier,
) {
val locationPermissionState = rememberPermissionState(permission.ACCESS_COARSE_LOCATION)
val scope = rememberCoroutineScope()

BackHandler(navigator.canNavigateBack()) { scope.launch { navigator.navigateBack() } }

SupportingPaneScaffold(
directive = navigator.scaffoldDirective,
value = navigator.scaffoldValue,
mainPane = {
BestRatesScreenDestination(
snackbarHostState = snackbarHostState,
permissionState = locationPermissionState,
)
},
supportingPane = {
PreferenceScreen(
onLicensesClick = {
scope.launch {
navigator.navigateTo(
ThreePaneScaffoldRole.Tertiary,
)
}
},
)
},
extraPane = { OpenSourceLicensesDestination() },
modifier = modifier,
)
}

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun ValiutchikTopBar(
Expand Down

0 comments on commit e7dbf74

Please sign in to comment.