add settings
This commit is contained in:
@@ -1,20 +1,35 @@
|
||||
package org.pupes.mhdrunpathfinder
|
||||
|
||||
import android.R.attr.onClick
|
||||
import android.os.Bundle
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.text.input.rememberTextFieldState
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.ElevatedButton
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.OutlinedButton
|
||||
import androidx.compose.material3.ModalBottomSheet
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextField
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.RectangleShape
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
@@ -63,8 +78,7 @@ class MainActivity : ComponentActivity() {
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
color = MaterialTheme.colorScheme.background
|
||||
) {
|
||||
OpenStreetMapScreen()
|
||||
AddButton()
|
||||
MainScreen()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -80,13 +94,60 @@ class MainActivity : ComponentActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun MainScreen() {
|
||||
var showSettings by remember { mutableStateOf(false) }
|
||||
|
||||
Box(modifier = Modifier.fillMaxSize()) {
|
||||
OpenStreetMapScreen()
|
||||
SettingsButton(
|
||||
onClick = { showSettings = true },
|
||||
modifier = Modifier
|
||||
.align(Alignment.TopEnd)
|
||||
.padding(end = 5.dp, bottom = 5.dp)
|
||||
)
|
||||
if (showSettings) {
|
||||
ShowSettingsMenu(onDismiss = { showSettings = false })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
// When a composable with parameters is used with @Preview,
|
||||
// a default value must be provided for the preview to render.
|
||||
fun AddButton(onClick: () -> Unit = {}) {
|
||||
OutlinedButton(onClick = { onClick() }) {
|
||||
Text("Outlined")
|
||||
fun SettingsButton(modifier: Modifier = Modifier, onClick: () -> Unit = {}) {
|
||||
Button(
|
||||
onClick = { onClick() },
|
||||
colors = ButtonDefaults.buttonColors(containerColor = Color(0xCFFFFFFF)),
|
||||
modifier = modifier
|
||||
|
||||
) {
|
||||
Icon(
|
||||
painter = painterResource(id = R.drawable.baseline_settings_24),
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(24.dp),
|
||||
tint = Color(0xFF000000)
|
||||
)
|
||||
}
|
||||
}
|
||||
@Preview
|
||||
@Composable
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
fun ShowSettingsMenu(modifier: Modifier = Modifier, onDismiss: () -> Unit = {}) {
|
||||
ModalBottomSheet(onDismissRequest = onDismiss) {
|
||||
Column() {
|
||||
Row() {
|
||||
TextField(
|
||||
state = rememberTextFieldState(),
|
||||
label = { Text("Target Hauk URL") },
|
||||
|
||||
)
|
||||
ElevatedButton(onClick = { },modifier = Modifier.padding(start = 5.dp), shape = RectangleShape) {
|
||||
Text("Apply")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,4 +211,3 @@ fun OpenStreetMapScreen() {
|
||||
state = mapState
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user