From a3594f5d8b3926fde4e33d5775c38f15da9cdbf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1lint=20R=C3=A9thelyi?= <rethelyibalint@gmail.com> Date: Wed, 16 Feb 2022 17:14:36 +0100 Subject: [PATCH] add lost in space functionality --- .../space/rethelyi/mosogepsch/view/AppBar.kt | 5 ++++ .../mosogepsch/view/MachineOnFloor.kt | 1 + .../rethelyi/mosogepsch/view/MachineScreen.kt | 24 +++++++++++++++---- .../mosogepsch/view/MachineViewActivity.kt | 3 +++ .../app/src/main/res/values-hu/strings.xml | 1 + frontend/app/src/main/res/values/strings.xml | 1 + 6 files changed, 31 insertions(+), 4 deletions(-) diff --git a/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/AppBar.kt b/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/AppBar.kt index b346ae3..ed31825 100644 --- a/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/AppBar.kt +++ b/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/AppBar.kt @@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.material.DropdownMenu import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.material3.SmallTopAppBar @@ -37,6 +38,10 @@ fun AppBar(internet: Boolean) { contentDescription = stringResource(R.string.no_internet) ) } +// DropdownMenu() +// { +// +// } }, ) } \ No newline at end of file diff --git a/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineOnFloor.kt b/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineOnFloor.kt index d94574a..a17b534 100644 --- a/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineOnFloor.kt +++ b/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineOnFloor.kt @@ -26,6 +26,7 @@ fun MachineOnFloorView(machine: Machine, modifier: Modifier, lastRequestTime: Da onClick = { val intent = Intent(context, MachineViewActivity::class.java) intent.putExtra("machine", machine) + intent.putExtra("last_request_time", lastRequestTime) context.startActivity(intent) }), color = when { diff --git a/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineScreen.kt b/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineScreen.kt index 843a629..bd70527 100644 --- a/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineScreen.kt +++ b/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineScreen.kt @@ -21,12 +21,13 @@ import com.google.firebase.messaging.ktx.messaging import space.rethelyi.mosogepsch.R import space.rethelyi.mosogepsch.model.Machine import java.text.SimpleDateFormat +import java.util.* val format = SimpleDateFormat.getDateTimeInstance() @Composable @OptIn(ExperimentalMaterial3Api::class) -fun MachineScreen(machine: Machine, onUpdate: (Boolean) -> Unit) { +fun MachineScreen(machine: Machine, lastRequestTime: Date?, onUpdate: (Boolean) -> Unit) { val modifier = Modifier.fillMaxWidth() val ctx = LocalContext.current Scaffold( @@ -61,10 +62,25 @@ fun MachineScreen(machine: Machine, onUpdate: (Boolean) -> Unit) { ) { Card( modifier = modifier, - color = if (machine.status == 1) { MaterialTheme.colorScheme.error } else { MaterialTheme.colorScheme.primary } + color = when { + machine.last_query_time.isLostInSpace(lastRequestTime) -> { + MaterialTheme.colorScheme.surfaceVariant + } + machine.status == 1 -> { + MaterialTheme.colorScheme.error + } + else -> MaterialTheme.colorScheme.primary + }, ) { - val status = if (machine.status == 1) { stringResource(R.string.not_available) } else { stringResource( - R.string.available) } + val status = when { + machine.last_query_time.isLostInSpace(lastRequestTime) -> { + stringResource(R.string.lost_in_space) + } + machine.status == 1 -> { + stringResource(R.string.not_available) + } + else -> stringResource(R.string.available) + } Text( modifier = modifier .padding(16.dp), diff --git a/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineViewActivity.kt b/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineViewActivity.kt index 96673f0..ab183a5 100644 --- a/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineViewActivity.kt +++ b/frontend/app/src/main/java/space/rethelyi/mosogepsch/view/MachineViewActivity.kt @@ -7,12 +7,14 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import space.rethelyi.mosogepsch.model.Machine import space.rethelyi.mosogepsch.ui.theme.MosogepSCHTheme +import java.util.* class MachineViewActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val machine = intent.getSerializableExtra("machine") as? Machine ?: throw IllegalArgumentException("machine must be machine") + val lastRequestTime = intent.getSerializableExtra("last_request_time") as? Date ?: throw IllegalArgumentException("date must be date") setContent { MosogepSCHTheme { @@ -20,6 +22,7 @@ class MachineViewActivity : ComponentActivity() { Surface(color = MaterialTheme.colorScheme.background) { MachineScreen( machine = machine, + lastRequestTime = lastRequestTime ) { false } } } diff --git a/frontend/app/src/main/res/values-hu/strings.xml b/frontend/app/src/main/res/values-hu/strings.xml index 38d6507..65462b2 100644 --- a/frontend/app/src/main/res/values-hu/strings.xml +++ b/frontend/app/src/main/res/values-hu/strings.xml @@ -17,4 +17,5 @@ <string name="title">%1$s. emeleti %2$s</string> <string name="notification_msg">A %1$s. emeleti %2$s %3$s lett.</string> <string name="no_internet">nincs internet kapcsolat</string> + <string name="lost_in_space">elveszett (az űrben)</string> </resources> \ No newline at end of file diff --git a/frontend/app/src/main/res/values/strings.xml b/frontend/app/src/main/res/values/strings.xml index b9e3cab..5e73bdb 100644 --- a/frontend/app/src/main/res/values/strings.xml +++ b/frontend/app/src/main/res/values/strings.xml @@ -19,4 +19,5 @@ <string name="title">%2$s on floor %1$s</string> <string name="notification_msg">The %2$s on floor %1$s became %3$s</string> <string name="no_internet">no internet connection</string> + <string name="lost_in_space">lost in space</string> </resources> \ No newline at end of file -- GitLab