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)