Permission page is now showing if all the permissions are not granted (while locking the user out).

This commit is contained in:
Mathieu 2022-01-04 17:53:46 +01:00
parent d11f58b716
commit 5ef0bf7160
4 changed files with 23 additions and 5 deletions

View File

@ -35,6 +35,9 @@
<entry key="../../../../../layout/compose-model-1641294737726.xml" value="0.38796296296296295" /> <entry key="../../../../../layout/compose-model-1641294737726.xml" value="0.38796296296296295" />
<entry key="../../../../../layout/compose-model-1641305520689.xml" value="0.38796296296296295" /> <entry key="../../../../../layout/compose-model-1641305520689.xml" value="0.38796296296296295" />
<entry key="../../../../../layout/compose-model-1641310759461.xml" value="0.38796296296296295" /> <entry key="../../../../../layout/compose-model-1641310759461.xml" value="0.38796296296296295" />
<entry key="../../../../../layout/compose-model-1641313051635.xml" value="0.3861111111111111" />
<entry key="../../../../../layout/compose-model-1641313223231.xml" value="0.3861111111111111" />
<entry key="../../../../../layout/compose-model-1641313346209.xml" value="0.3861111111111111" />
<entry key="app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.5307291666666667" /> <entry key="app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.5307291666666667" />
<entry key="app/src/main/res/drawable/ic_baseline_arrow_back_24.xml" value="0.38981481481481484" /> <entry key="app/src/main/res/drawable/ic_baseline_arrow_back_24.xml" value="0.38981481481481484" />
<entry key="app/src/main/res/drawable/ic_baseline_keyboard_24.xml" value="0.38981481481481484" /> <entry key="app/src/main/res/drawable/ic_baseline_keyboard_24.xml" value="0.38981481481481484" />

View File

@ -8,11 +8,22 @@ import androidx.navigation.compose.rememberNavController
import ch.mathieubroillet.jarvis.android.pages.DisplayMainPage import ch.mathieubroillet.jarvis.android.pages.DisplayMainPage
import ch.mathieubroillet.jarvis.android.pages.DisplayPermissionsPage import ch.mathieubroillet.jarvis.android.pages.DisplayPermissionsPage
import ch.mathieubroillet.jarvis.android.pages.DisplaySettingsPage import ch.mathieubroillet.jarvis.android.pages.DisplaySettingsPage
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.rememberMultiplePermissionsState
@OptIn(ExperimentalPermissionsApi::class)
@Composable @Composable
fun Navigation() { fun Navigation() {
val navController = rememberNavController() val navController = rememberNavController()
NavHost(navController = navController, startDestination = Screen.MainScreen.route) {
val permissions = listOf(android.Manifest.permission.RECORD_AUDIO)
val permissionState = rememberMultiplePermissionsState(permissions)
NavHost(
navController = navController,
startDestination = if (permissionState.allPermissionsGranted) Screen.MainScreen.route else Screen.PermissionsScreen.route
) {
composable(route = Screen.MainScreen.route) { composable(route = Screen.MainScreen.route) {
MainScreen(navController = navController) MainScreen(navController = navController)
} }

View File

@ -30,7 +30,11 @@ fun DisplayPermissionsPage(navController: NavController) {
@Composable @Composable
fun PermissionsBase(navController: NavController) { fun PermissionsBase(navController: NavController) {
Column(Modifier.padding(bottom = 25.dp)) { Column(
Modifier
.padding(bottom = 25.dp)
.fillMaxSize()
) {
Row { Row {
Icon( Icon(
painter = painterResource(id = R.drawable.ic_baseline_shield_24), painter = painterResource(id = R.drawable.ic_baseline_shield_24),

View File

@ -14,14 +14,14 @@ import com.google.accompanist.permissions.rememberPermissionState
@OptIn(ExperimentalPermissionsApi::class) @OptIn(ExperimentalPermissionsApi::class)
@Composable @Composable
fun requestPermission(permission: String) { fun requestPermission(permission: String) {
val cameraPermissionState = rememberPermissionState(permission = permission) val permissionState = rememberPermissionState(permission = permission)
val context = LocalContext.current val context = LocalContext.current
PermissionRequired( PermissionRequired(
permissionState = cameraPermissionState, permissionState = permissionState,
permissionNotGrantedContent = { permissionNotGrantedContent = {
Button(onClick = { Button(onClick = {
cameraPermissionState.launchPermissionRequest() permissionState.launchPermissionRequest()
}) { }) {
Text(text = stringResource(id = R.string.permissions_page_grant_permission)) Text(text = stringResource(id = R.string.permissions_page_grant_permission))
} }