Added permission page
This commit is contained in:
parent
4de9e66d0e
commit
7996a94ad3
@ -25,10 +25,17 @@
|
||||
<entry key="../../../../../layout/compose-model-1641220668413.xml" value="0.38981481481481484" />
|
||||
<entry key="../../../../../layout/compose-model-1641224457648.xml" value="0.38981481481481484" />
|
||||
<entry key="../../../../../layout/compose-model-1641224617165.xml" value="0.38981481481481484" />
|
||||
<entry key="../../../../../layout/compose-model-1641224827876.xml" value="0.38981481481481484" />
|
||||
<entry key="../../../../../layout/compose-model-1641238823591.xml" value="1.0" />
|
||||
<entry key="../../../../../layout/compose-model-1641238895316.xml" value="0.38981481481481484" />
|
||||
<entry key="../../../../../layout/compose-model-1641242466678.xml" value="0.38981481481481484" />
|
||||
<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_keyboard_24.xml" value="0.38981481481481484" />
|
||||
<entry key="app/src/main/res/drawable/ic_baseline_mic_24.xml" value="0.38981481481481484" />
|
||||
<entry key="app/src/main/res/drawable/ic_baseline_more_vert_24.xml" value="0.38981481481481484" />
|
||||
<entry key="app/src/main/res/drawable/ic_baseline_person_24.xml" value="0.5307291666666667" />
|
||||
<entry key="app/src/main/res/drawable/ic_baseline_shield_24.xml" value="0.38981481481481484" />
|
||||
<entry key="app/src/main/res/drawable/ic_launcher_background.xml" value="0.5307291666666667" />
|
||||
<entry key="app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" value="0.5307291666666667" />
|
||||
</map>
|
||||
|
@ -56,6 +56,8 @@ dependencies {
|
||||
implementation "androidx.compose.material:material:$compose_version"
|
||||
implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
|
||||
implementation "androidx.navigation:navigation-compose:2.4.0-rc01"
|
||||
implementation 'com.google.accompanist:accompanist-permissions:0.22.0-rc'
|
||||
implementation 'com.google.accompanist:accompanist-insets:0.22.0-rc'
|
||||
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.0'
|
||||
implementation 'androidx.activity:activity-compose:1.4.0'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
|
@ -2,6 +2,10 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="ch.mathieubroillet.jarvis.android">
|
||||
|
||||
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
|
@ -22,7 +22,6 @@ import ch.mathieubroillet.jarvis.android.ui.theme.JarvisComposeTheme
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
|
@ -6,6 +6,7 @@ import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.composable
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import ch.mathieubroillet.jarvis.android.pages.DisplayMainPage
|
||||
import ch.mathieubroillet.jarvis.android.pages.DisplayPermissionsPage
|
||||
import ch.mathieubroillet.jarvis.android.pages.DisplaySettingsPage
|
||||
|
||||
@Composable
|
||||
@ -18,6 +19,9 @@ fun Navigation() {
|
||||
composable(route = Screen.SettingsScreen.route) {
|
||||
SettingsScreen(navController = navController)
|
||||
}
|
||||
composable(route = Screen.PermissionsScreen.route) {
|
||||
PermissionsScreen(navController = navController)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -31,3 +35,8 @@ fun MainScreen(navController: NavController) {
|
||||
fun SettingsScreen(navController: NavController) {
|
||||
DisplaySettingsPage(navController)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun PermissionsScreen(navController: NavController) {
|
||||
DisplayPermissionsPage(navController)
|
||||
}
|
@ -3,4 +3,5 @@ package ch.mathieubroillet.jarvis.android.nav
|
||||
sealed class Screen(val route: String){
|
||||
object MainScreen : Screen("main_screen")
|
||||
object SettingsScreen : Screen("settings_screen")
|
||||
object PermissionsScreen : Screen("permissions_screen")
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
package ch.mathieubroillet.jarvis.android.pages
|
||||
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.material.Button
|
||||
import androidx.compose.material.Icon
|
||||
import androidx.compose.material.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import ch.mathieubroillet.jarvis.android.R
|
||||
import ch.mathieubroillet.jarvis.android.ui.theme.JarvisComposeTheme
|
||||
import ch.mathieubroillet.jarvis.android.ui.theme.productSansFont
|
||||
import ch.mathieubroillet.jarvis.android.utils.DefaultBox
|
||||
|
||||
|
||||
@Composable
|
||||
fun DisplayPermissionsPage(navController: NavController) {
|
||||
DefaultBox {
|
||||
PermissionsBase(navController)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun PermissionsBase(navController: NavController) {
|
||||
Column(Modifier.padding(bottom = 25.dp)) {
|
||||
Row {
|
||||
Icon(
|
||||
painter = painterResource(id = R.drawable.ic_baseline_shield_24),
|
||||
contentDescription = "shield icon",
|
||||
modifier = Modifier.size(50.dp)
|
||||
)
|
||||
}
|
||||
Text(
|
||||
text = "Avant de commencer",
|
||||
fontFamily = productSansFont,
|
||||
fontSize = 30.sp,
|
||||
modifier = Modifier.padding(top = 15.dp)
|
||||
)
|
||||
Text(
|
||||
text = "Cette application a besoin des autorisations suivantes pour fonctionner :",
|
||||
fontFamily = productSansFont,
|
||||
fontSize = 20.sp,
|
||||
modifier = Modifier.padding(top = 10.dp)
|
||||
)
|
||||
|
||||
PermissionRow(R.drawable.ic_baseline_mic_24, "Microphone", "Nécessaire pour vous entendre.")
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun PermissionRow(
|
||||
icon: Int = R.drawable.ic_baseline_error_24,
|
||||
title: String = "Name",
|
||||
description: String = "Description of the permission"
|
||||
) {
|
||||
Row(
|
||||
Modifier
|
||||
.padding(top = 20.dp)
|
||||
.fillMaxWidth(),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.SpaceBetween
|
||||
) {
|
||||
Icon(
|
||||
painter = painterResource(id = icon),
|
||||
contentDescription = "permission icon",
|
||||
modifier = Modifier.size(40.dp)
|
||||
)
|
||||
Column {
|
||||
Text(
|
||||
text = title,
|
||||
fontFamily = productSansFont,
|
||||
fontSize = 18.sp
|
||||
)
|
||||
Text(
|
||||
text = description,
|
||||
fontFamily = productSansFont,
|
||||
fontSize = 14.sp
|
||||
)
|
||||
}
|
||||
Button(onClick = { /*TODO*/ }) {
|
||||
Text(text = "Autoriser")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Preview(showBackground = true)
|
||||
@Composable
|
||||
fun PermissionsPagePreview() {
|
||||
JarvisComposeTheme {
|
||||
DisplayPermissionsPage(rememberNavController())
|
||||
}
|
||||
}
|
@ -1,10 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,14c1.66,0 2.99,-1.34 2.99,-3L15,5c0,-1.66 -1.34,-3 -3,-3S9,3.34 9,5v6c0,1.66 1.34,3 3,3zM17.3,11c0,3 -2.54,5.1 -5.3,5.1S6.7,14 6.7,11L5,11c0,3.41 2.72,6.23 6,6.72L11,21h2v-3.28c3.28,-0.48 6,-3.3 6,-6.72h-1.7z"/>
|
||||
android:height="24dp"
|
||||
android:width="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M17.3,11C17.3,14 14.76,16.1 12,16.1C9.24,16.1 6.7,14 6.7,11H5C5,14.41 7.72,17.23 11,17.72V21H13V17.72C16.28,17.23 19,14.41 19,11M10.8,4.9C10.8,4.24 11.34,3.7 12,3.7C12.66,3.7 13.2,4.24 13.2,4.9L13.19,11.1C13.19,11.76 12.66,12.3 12,12.3C11.34,12.3 10.8,11.76 10.8,11.1M12,14A3,3 0 0,0 15,11V5A3,3 0 0,0 12,2A3,3 0 0,0 9,5V11A3,3 0 0,0 12,14Z" />
|
||||
</vector>
|
11
app/src/main/res/drawable/ic_baseline_shield_24.xml
Normal file
11
app/src/main/res/drawable/ic_baseline_shield_24.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M10,17L6,13L7.41,11.59L10,14.17L16.59,7.58L18,9M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5L12,1Z" />
|
||||
</vector>
|
Loading…
Reference in New Issue
Block a user