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

Commit 3809fb6f authored by Fan Wu's avatar Fan Wu Committed by Android (Google) Code Review
Browse files

Merge "Update Usage statistics string to avoid confusion" into main

parents a5e48292 2370adbb
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)