fix: исправил лейаут и немного другого
This commit is contained in:
parent
270f934798
commit
e1bb9de063
4 changed files with 68 additions and 34 deletions
|
@ -77,6 +77,7 @@ import ru.nm17.narodmon.db.AppDatabase
|
|||
import ru.nm17.narodmon.db.entities.KVSetting
|
||||
import ru.nm17.narodmon.ui.elements.AgreementDialog
|
||||
import ru.nm17.narodmon.ui.elements.GenericNavScaffold
|
||||
import ru.nm17.narodmon.ui.pages.SensorsPage
|
||||
import ru.nm17.narodmon.ui.theme.NarodMonTheme
|
||||
|
||||
@Composable
|
||||
|
@ -125,7 +126,7 @@ class MainActivity : ComponentActivity() {
|
|||
NarodMonTheme {
|
||||
var agreed by remember { mutableStateOf(true) }
|
||||
|
||||
LaunchedEffect(key1 = "first_agreement_check", block = {
|
||||
LaunchedEffect(key1 = Unit, block = {
|
||||
coScope.launch(Dispatchers.IO) {
|
||||
if (db.kvDao().getByKey("agreement_accepted")?.value != "true") {
|
||||
agreed = false
|
||||
|
@ -134,23 +135,20 @@ class MainActivity : ComponentActivity() {
|
|||
})
|
||||
|
||||
if (!agreed) {
|
||||
Scaffold {
|
||||
AgreementDialog {
|
||||
coScope.launch(Dispatchers.IO) {
|
||||
db.kvDao().setAll(KVSetting("agreement_accepted", "true"))
|
||||
agreed = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!agreed) {
|
||||
Surface {
|
||||
Column(
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.Center,
|
||||
modifier = Modifier.fillMaxSize()
|
||||
modifier = Modifier.fillMaxSize().padding(it)
|
||||
) {
|
||||
CircularProgressIndicator()
|
||||
Text(text = "вы не должны видеть этот текст")
|
||||
Text(text = stringResource(R.string.waiting_for_user_agreement))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -170,21 +168,7 @@ class MainActivity : ComponentActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SensorsPage(navController: NavController) {
|
||||
GenericNavScaffold(navDrawerSheet = {ModalDrawerSheet {
|
||||
Text("Drawer title", modifier = Modifier.padding(16.dp), style = MaterialTheme.typography.titleLarge)
|
||||
Divider()
|
||||
NavigationDrawerItem(
|
||||
label = { Text(text = "Drawer Item") },
|
||||
selected = true,
|
||||
onClick = { /*TODO*/ }
|
||||
)
|
||||
// ...other drawer items
|
||||
}}) {
|
||||
Greeting(name = "Hello world", modifier = Modifier.padding(it))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Composable
|
||||
fun Greeting(name: String, modifier: Modifier = Modifier) {
|
||||
|
|
|
@ -3,9 +3,11 @@
|
|||
package ru.nm17.narodmon.ui.elements
|
||||
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Add
|
||||
import androidx.compose.material.icons.filled.Menu
|
||||
import androidx.compose.material3.Divider
|
||||
import androidx.compose.material3.DrawerValue
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.FabPosition
|
||||
|
@ -13,7 +15,9 @@ import androidx.compose.material3.FloatingActionButton
|
|||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.ModalDrawerSheet
|
||||
import androidx.compose.material3.ModalNavigationDrawer
|
||||
import androidx.compose.material3.NavigationDrawerItem
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
|
@ -21,6 +25,9 @@ import androidx.compose.material3.TopAppBarDefaults
|
|||
import androidx.compose.material3.rememberDrawerState
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.rememberCoroutineScope
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
|
@ -29,15 +36,26 @@ import kotlinx.coroutines.launch
|
|||
* TODO: Использовать для датчиков
|
||||
*/
|
||||
@Composable
|
||||
fun GenericNavScaffold(navDrawerSheet: @Composable () -> Unit, content: @Composable (PaddingValues) -> Unit) {
|
||||
var expanded = rememberDrawerState(initialValue = DrawerValue.Closed)
|
||||
var coScope = rememberCoroutineScope();
|
||||
fun GenericNavScaffold(title: @Composable () -> Unit, content: @Composable (PaddingValues) -> Unit) {
|
||||
val expanded = rememberDrawerState(initialValue = DrawerValue.Closed)
|
||||
val coScope = rememberCoroutineScope();
|
||||
val navController = rememberNavController() // TODO: Используй меня
|
||||
|
||||
ModalNavigationDrawer(drawerState = expanded, drawerContent = navDrawerSheet) {
|
||||
ModalNavigationDrawer(drawerState = expanded, drawerContent = {
|
||||
ModalDrawerSheet {
|
||||
Text("Drawer title", modifier = Modifier.padding(16.dp), style = MaterialTheme.typography.titleLarge)
|
||||
Divider()
|
||||
NavigationDrawerItem(
|
||||
label = { Text(text = "Drawer Item") },
|
||||
selected = true,
|
||||
onClick = { /*TODO*/ }
|
||||
)
|
||||
}
|
||||
}) {
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
title = { Text("Top App Bar") },
|
||||
title = title,
|
||||
colors = TopAppBarDefaults.largeTopAppBarColors(
|
||||
containerColor = MaterialTheme.colorScheme.primaryContainer
|
||||
),
|
||||
|
|
28
app/src/main/java/ru/nm17/narodmon/ui/pages/Sensors.kt
Normal file
28
app/src/main/java/ru/nm17/narodmon/ui/pages/Sensors.kt
Normal file
|
@ -0,0 +1,28 @@
|
|||
package ru.nm17.narodmon.ui.pages
|
||||
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.Divider
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.ModalDrawerSheet
|
||||
import androidx.compose.material3.NavigationDrawerItem
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.navigation.NavController
|
||||
import ru.nm17.narodmon.Greeting
|
||||
import ru.nm17.narodmon.R
|
||||
import ru.nm17.narodmon.ui.elements.GenericNavScaffold
|
||||
|
||||
@ExperimentalMaterial3Api
|
||||
@Composable
|
||||
fun SensorsPage(navController: NavController) {
|
||||
GenericNavScaffold(
|
||||
title = { Text(text = stringResource(R.string.sensors_page_title))}
|
||||
) {
|
||||
Greeting(name = "world", modifier = Modifier.padding(it))
|
||||
}
|
||||
}
|
|
@ -5,10 +5,14 @@
|
|||
<string name="accept_agreements">Я принимаю соглашения</string>
|
||||
<string name="exit">Выйти</string>
|
||||
<string name="agreement_dialog_text">
|
||||
Для продолжения использования вы должны принять ниже перечисленные соглашения от проекта Народный Мониторинг.
|
||||
\nГоворя про наше приложение под андройд, то можете не беспокоится: его исходный код на все 100% является открытым.
|
||||
Для продолжения использования вы должны принять ниже перечисленные соглашения от
|
||||
проекта Народный Мониторинг.
|
||||
\nГоворя про наше приложение под андройд, то можете не беспокоится: его исходный
|
||||
код на все 100% является открытым.
|
||||
</string>
|
||||
<string name="privacy_policy">Политика конфиденциальности</string>
|
||||
<string name="user_agreement">Пользовательское соглашение</string>
|
||||
<string name="agreement_dialog_title">Примите необходимые соглашения</string>
|
||||
<string name="sensors_page_title">Сенсоры</string>
|
||||
<string name="waiting_for_user_agreement">Ожидаю соглашение пользователя</string>
|
||||
</resources>
|
Loading…
Add table
Reference in a new issue