Loading src/com/android/settings/spa/app/AllAppList.kt +5 −23 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 { Loading @@ -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( Loading @@ -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<AppRecordWithSize> { private val storageStatsManager = context.getSystemService(StorageStatsManager::class.java)!! private class AllAppListModel : AppListModel<AppRecordWithSize> { override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) = appListFlow.asyncMapItem { app -> Loading @@ -95,16 +88,5 @@ private class AllAppListModel(private val context: Context) : AppListModel<AppRe ) = recordListFlow @Composable override fun getSummary(option: Int, record: AppRecordWithSize): State<String> = 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() } Loading
src/com/android/settings/spa/app/AllAppList.kt +5 −23 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 { Loading @@ -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( Loading @@ -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<AppRecordWithSize> { private val storageStatsManager = context.getSystemService(StorageStatsManager::class.java)!! private class AllAppListModel : AppListModel<AppRecordWithSize> { override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) = appListFlow.asyncMapItem { app -> Loading @@ -95,16 +88,5 @@ private class AllAppListModel(private val context: Context) : AppListModel<AppRe ) = recordListFlow @Composable override fun getSummary(option: Int, record: AppRecordWithSize): State<String> = 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() }