Add touchable back button (#32)
This commit is contained in:
parent
04c6b341df
commit
0462a2bc28
@ -15,8 +15,8 @@ android {
|
||||
applicationId = "de.timklge.karooreminder"
|
||||
minSdk = 26
|
||||
targetSdk = 34
|
||||
versionCode = 13
|
||||
versionName = "1.1.4"
|
||||
versionCode = 14
|
||||
versionName = "1.1.5"
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
|
||||
@ -3,9 +3,9 @@
|
||||
"packageName": "de.timklge.karooreminder",
|
||||
"iconUrl": "https://github.com/timklge/karoo-reminder/releases/latest/download/karoo-reminder.png",
|
||||
"latestApkUrl": "https://github.com/timklge/karoo-reminder/releases/latest/download/app-release.apk",
|
||||
"latestVersion": "1.1.4",
|
||||
"latestVersionCode": 13,
|
||||
"latestVersion": "1.1.5",
|
||||
"latestVersionCode": 14,
|
||||
"developer": "timklge",
|
||||
"description": "Shows in-ride alerts after a given time interval, distance or HR / power / speed / cadence out of range",
|
||||
"releaseNotes": "Enlarge trigger select, increase tone frequency, optimize build"
|
||||
"releaseNotes": "* Enlarge trigger select\n* Increase tone frequency\n* Optimize build\n* Add touchable back button"
|
||||
}
|
||||
@ -88,7 +88,7 @@ fun Flow<Int>.allIntermediateInts(): Flow<Int> = flow {
|
||||
}
|
||||
}
|
||||
|
||||
class KarooReminderExtension : KarooExtension("karoo-reminder", "1.1.4") {
|
||||
class KarooReminderExtension : KarooExtension("karoo-reminder", "1.1.5") {
|
||||
|
||||
companion object {
|
||||
const val TAG = "karoo-reminder"
|
||||
|
||||
@ -18,7 +18,9 @@ class MainActivity : ComponentActivity() {
|
||||
|
||||
setContent {
|
||||
AppTheme {
|
||||
ReminderAppNavHost()
|
||||
ReminderAppNavHost() {
|
||||
finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,8 +2,10 @@ package de.timklge.karooreminder.screens
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
@ -11,6 +13,7 @@ import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
@ -43,6 +46,7 @@ import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.draw.shadow
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.datastore.preferences.core.edit
|
||||
@ -76,7 +80,7 @@ suspend fun saveReminders(context: Context, reminders: MutableList<Reminder>) {
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun ReminderAppNavHost(modifier: Modifier = Modifier, navController: NavHostController = rememberNavController()){
|
||||
fun ReminderAppNavHost(modifier: Modifier = Modifier, navController: NavHostController = rememberNavController(), onFinish: () -> Unit){
|
||||
val scope = rememberCoroutineScope()
|
||||
val reminders = remember {
|
||||
mutableStateListOf<Reminder>()
|
||||
@ -145,14 +149,14 @@ fun ReminderAppNavHost(modifier: Modifier = Modifier, navController: NavHostCont
|
||||
}, { navController.popBackStack() })
|
||||
}
|
||||
composable(route = "reminders") {
|
||||
MainScreen(reminders, { reminder -> navController.navigate(route = "reminder/${reminder.id}") }, { navController.navigate(route = "create") })
|
||||
MainScreen(reminders, { reminder -> navController.navigate(route = "reminder/${reminder.id}") }, { navController.navigate(route = "create") }, onFinish)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun MainScreen(reminders: MutableList<Reminder>, onNavigateToReminder: (r: Reminder) -> Unit, onNavigateToCreateReminder: () -> Unit) {
|
||||
fun MainScreen(reminders: MutableList<Reminder>, onNavigateToReminder: (r: Reminder) -> Unit, onNavigateToCreateReminder: () -> Unit, onFinish: () -> Unit) {
|
||||
var karooConnected by remember { mutableStateOf(false) }
|
||||
val ctx = LocalContext.current
|
||||
val karooSystem = remember { KarooSystemService(ctx) }
|
||||
@ -167,15 +171,8 @@ fun MainScreen(reminders: MutableList<Reminder>, onNavigateToReminder: (r: Remin
|
||||
|
||||
Scaffold(
|
||||
topBar = { TopAppBar(title = {Text("Reminder")}) },
|
||||
floatingActionButtonPosition = FabPosition.End,
|
||||
floatingActionButton = {
|
||||
FloatingActionButton(onClick = {
|
||||
onNavigateToCreateReminder()
|
||||
}) {
|
||||
Icon(Icons.Rounded.Add, "Add")
|
||||
}
|
||||
},
|
||||
content = {
|
||||
Box(Modifier.fillMaxSize()){
|
||||
Column(
|
||||
Modifier
|
||||
.padding(it)
|
||||
@ -211,6 +208,8 @@ fun MainScreen(reminders: MutableList<Reminder>, onNavigateToReminder: (r: Remin
|
||||
}
|
||||
}
|
||||
|
||||
Spacer(modifier = Modifier.padding(30.dp))
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
karooSystem.connect { connected ->
|
||||
karooConnected = connected
|
||||
@ -225,6 +224,31 @@ fun MainScreen(reminders: MutableList<Reminder>, onNavigateToReminder: (r: Remin
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image(
|
||||
painter = painterResource(id = R.drawable.back),
|
||||
contentDescription = "Back",
|
||||
modifier = Modifier
|
||||
.align(Alignment.BottomStart)
|
||||
.padding(bottom = 10.dp)
|
||||
.size(54.dp)
|
||||
.clickable {
|
||||
onFinish()
|
||||
}
|
||||
)
|
||||
|
||||
Image(
|
||||
painter = painterResource(id = R.drawable.add),
|
||||
contentDescription = "Add",
|
||||
modifier = Modifier
|
||||
.align(Alignment.BottomEnd)
|
||||
.padding(bottom = 10.dp)
|
||||
.size(54.dp)
|
||||
.clickable {
|
||||
onNavigateToCreateReminder()
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
BIN
app/src/main/res/drawable/add.png
Normal file
BIN
app/src/main/res/drawable/add.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/main/res/drawable/back.png
Normal file
BIN
app/src/main/res/drawable/back.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
Loading…
x
Reference in New Issue
Block a user