Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2370adbb authored by Fan Wu's avatar Fan Wu
Browse files

Update Usage statistics string to avoid confusion

Bug: 314134835

Test: manually by typing *#*#4636#*#* on phone
Change-Id: Idac3f58f8c21ff5ecf6a1b7e9d686d770e2e09ba
parent b2364989
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -4511,7 +4511,9 @@
    <!-- Spinner label to indicate sort by app name. [CHAR LIMIT=30] -->
    <string name="usage_stats_sort_by_app_name">Sort by app name</string>
    <!-- label for last time used -->
    <string name="last_time_used_label">Last time used</string>
    <string name="last_time_used_label">Last used</string>
    <!-- label for last time used of never opened apps -->
    <string name="last_time_used_never">never</string>
    <!-- label for usage time -->
    <string name="usage_time_label">Usage time</string>
+15 −4
Original line number Diff line number Diff line
@@ -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<UsageStat
    @Composable
    override fun getSummary(option: Int, record: UsageStatsAppRecord): (() -> 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<String, UsageStats> {
        val startTime = now - TimeUnit.DAYS.toMillis(5)