diff --git a/res/values/strings.xml b/res/values/strings.xml
index 66e73214285..09cd23ce520 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4511,7 +4511,9 @@
Sort by app name
- Last time used
+ Last used
+
+ never
Usage time
diff --git a/src/com/android/settings/spa/development/UsageStatsListModel.kt b/src/com/android/settings/spa/development/UsageStatsListModel.kt
index d27796d14c8..bb20da6b304 100644
--- a/src/com/android/settings/spa/development/UsageStatsListModel.kt
+++ b/src/com/android/settings/spa/development/UsageStatsListModel.kt
@@ -29,6 +29,7 @@ import com.android.settingslib.spaprivileged.model.app.AppEntry
import com.android.settingslib.spaprivileged.model.app.AppListModel
import com.android.settingslib.spaprivileged.model.app.AppRecord
import java.text.DateFormat
+import java.time.Duration
import java.util.concurrent.TimeUnit
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.combine
@@ -77,15 +78,25 @@ class UsageStatsListModel(private val context: Context) : AppListModel String)? {
val usageStats = record.usageStats ?: return null
- val lastTimeUsed = DateUtils.formatSameDayTime(
- usageStats.lastTimeUsed, now, DateFormat.MEDIUM, DateFormat.MEDIUM
- )
- val lastTimeUsedLine = "${context.getString(R.string.last_time_used_label)}: $lastTimeUsed"
+ val lastTimeUsedLine =
+ "${context.getString(R.string.last_time_used_label)}: ${usageStats.getLastUsedString()}"
val usageTime = DateUtils.formatElapsedTime(usageStats.totalTimeInForeground / 1000)
val usageTimeLine = "${context.getString(R.string.usage_time_label)}: $usageTime"
return { "$lastTimeUsedLine\n$usageTimeLine" }
}
+ private fun UsageStats.getLastUsedString() = when {
+ lastTimeUsed < Duration.ofDays(1)
+ .toMillis() -> context.getString(R.string.last_time_used_never)
+
+ else -> DateUtils.formatSameDayTime(
+ lastTimeUsed,
+ now,
+ DateFormat.MEDIUM,
+ DateFormat.MEDIUM
+ )
+ }
+
private fun getUsageStats(): Map {
val startTime = now - TimeUnit.DAYS.toMillis(5)