From 43575897715b8935b43c9dd0fd289137c69bf5c3 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Wed, 12 Oct 2022 14:47:28 +0800 Subject: [PATCH] Use getStorageSize from SpaPrivilegedLib Bug: 236346018 Test: Manual with "All App" App List Change-Id: If05f334eea365f23e8fc7d7452aed4603c9cdc30 --- .../android/settings/spa/app/AllAppList.kt | 28 ++++--------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/src/com/android/settings/spa/app/AllAppList.kt b/src/com/android/settings/spa/app/AllAppList.kt index 7ecc28b9a90..cac9e5a486c 100644 --- a/src/com/android/settings/spa/app/AllAppList.kt +++ b/src/com/android/settings/spa/app/AllAppList.kt @@ -16,13 +16,10 @@ package com.android.settings.spa.app -import android.app.usage.StorageStatsManager -import android.content.Context import android.content.pm.ApplicationInfo import android.os.Bundle -import android.text.format.Formatter import androidx.compose.runtime.Composable -import androidx.compose.runtime.State +import androidx.compose.runtime.remember import androidx.compose.ui.res.stringResource import com.android.settings.R import com.android.settings.spa.app.appsettings.AppSettingsProvider @@ -30,16 +27,14 @@ import com.android.settingslib.spa.framework.common.SettingsEntryBuilder import com.android.settingslib.spa.framework.common.SettingsPage import com.android.settingslib.spa.framework.common.SettingsPageProvider import com.android.settingslib.spa.framework.compose.navigator -import com.android.settingslib.spa.framework.compose.rememberContext -import com.android.settingslib.spa.framework.compose.toState import com.android.settingslib.spa.framework.util.asyncMapItem import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spaprivileged.model.app.AppListModel import com.android.settingslib.spaprivileged.model.app.AppRecord -import com.android.settingslib.spaprivileged.model.app.userHandle import com.android.settingslib.spaprivileged.template.app.AppListItem import com.android.settingslib.spaprivileged.template.app.AppListPage +import com.android.settingslib.spaprivileged.template.app.getStorageSize import kotlinx.coroutines.flow.Flow object AllAppListPageProvider : SettingsPageProvider { @@ -65,7 +60,7 @@ object AllAppListPageProvider : SettingsPageProvider { private fun AllAppListPage() { AppListPage( title = stringResource(R.string.all_apps), - listModel = rememberContext(::AllAppListModel), + listModel = remember { AllAppListModel() }, showInstantApps = true, ) { itemModel -> AppListItem( @@ -77,11 +72,9 @@ private fun AllAppListPage() { data class AppRecordWithSize( override val app: ApplicationInfo, - var sizeBytes: Long? = null, ) : AppRecord -private class AllAppListModel(private val context: Context) : AppListModel { - private val storageStatsManager = context.getSystemService(StorageStatsManager::class.java)!! +private class AllAppListModel : AppListModel { override fun transform(userIdFlow: Flow, appListFlow: Flow>) = appListFlow.asyncMapItem { app -> @@ -95,16 +88,5 @@ private class AllAppListModel(private val context: Context) : AppListModel = - Formatter.formatFileSize(context, record.calculateSizeBytes()).toState() - - private fun AppRecordWithSize.calculateSizeBytes(): Long { - sizeBytes?.let { return it } - val stats = storageStatsManager.queryStatsForPackage( - app.storageUuid, app.packageName, app.userHandle - ) - return (stats.codeBytes + stats.dataBytes + stats.cacheBytes).also { - sizeBytes = it - } - } + override fun getSummary(option: Int, record: AppRecordWithSize) = record.app.getStorageSize() }