diff --git a/app/src/main/java/com/geeksville/mesh/ui/components/PositionLog.kt b/app/src/main/java/com/geeksville/mesh/ui/components/PositionLog.kt
index 1cc4c6cfc..af2090713 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/components/PositionLog.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/components/PositionLog.kt
@@ -17,8 +17,8 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
-import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.items
import androidx.compose.material.ButtonDefaults
import androidx.compose.material.ContentAlpha
import androidx.compose.material.Icon
@@ -55,6 +55,7 @@ import com.geeksville.mesh.ui.theme.AppTheme
import com.geeksville.mesh.util.metersIn
import com.geeksville.mesh.util.toString
import java.text.DateFormat
+import kotlin.time.Duration.Companion.days
@Composable
private fun RowScope.PositionText(text: String, weight: Float) {
@@ -117,10 +118,26 @@ private fun PositionItem(
PositionText("${position.groundSpeed} Km/h", Weight15)
PositionText("%.0f°".format(position.groundTrack * HeadingDeg), Weight15)
}
- PositionText(dateFormat.format(position.time * SecondsToMillis), Weight40)
+ PositionText(formatPositionTime(position, dateFormat), Weight40)
}
}
+@Composable
+private fun formatPositionTime(
+ position: MeshProtos.Position,
+ dateFormat: DateFormat
+): String {
+ val currentTime = System.currentTimeMillis()
+ val sixMonthsAgo = currentTime - 180.days.inWholeMilliseconds
+ val isOlderThanSixMonths = position.time * SecondsToMillis > sixMonthsAgo
+ val timeText = if (isOlderThanSixMonths) {
+ stringResource(id = R.string.unknown_age)
+ } else {
+ dateFormat.format(position.time * SecondsToMillis)
+ }
+ return timeText
+}
+
@OptIn(ExperimentalLayoutApi::class)
@Composable
private fun ActionButtons(
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e1bec4185..0ed5ff660 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -312,4 +312,5 @@
Max
Selected
Not Selected
+ Unknown Age