From 2370adbbcea94f66bfa5bf4da48dafff403c529a Mon Sep 17 00:00:00 2001 From: Fan Wu Date: Fri, 5 Jan 2024 11:56:28 +0800 Subject: [PATCH] Update Usage statistics string to avoid confusion Bug: 314134835 Test: manually by typing *#*#4636#*#* on phone Change-Id: Idac3f58f8c21ff5ecf6a1b7e9d686d770e2e09ba --- res/values/strings.xml | 4 +++- .../spa/development/UsageStatsListModel.kt | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) 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)