Migrate to AppStorageRepository

Bug: 321861088
Flag: EXEMPT bug fix
Test: manual - on All apps and App info
Test: atest AppStorageSizesControllerTest
Test: atest AppStoragePreferenceTest
Change-Id: I3143de720493cb09854621b115d07e76bebf6699
This commit is contained in:
Chaohui Wang
2025-01-09 14:38:11 +08:00
parent 44e13bf11e
commit 7e8e683e60
4 changed files with 25 additions and 27 deletions

View File

@@ -17,7 +17,6 @@
package com.android.settings.applications;
import android.content.Context;
import android.text.format.Formatter;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
@@ -25,6 +24,7 @@ import androidx.preference.Preference;
import com.android.internal.util.Preconditions;
import com.android.settingslib.applications.StorageStatsSource;
import com.android.settingslib.spaprivileged.model.app.AppStorageRepositoryImpl;
/**
* Handles setting the sizes for the app info screen.
@@ -70,27 +70,28 @@ public class AppStorageSizesController {
mCacheSize.setSummary(errorRes);
mTotalSize.setSummary(errorRes);
} else {
var appStorageRepository = new AppStorageRepositoryImpl(context);
long codeSize = mLastResult.getCodeBytes();
long dataSize =
mDataCleared ? 0 : mLastResult.getDataBytes() - mLastResult.getCacheBytes();
if (mLastCodeSize != codeSize) {
mLastCodeSize = codeSize;
mAppSize.setSummary(getSizeStr(context, codeSize));
mAppSize.setSummary(appStorageRepository.formatSizeBytes(codeSize));
}
if (mLastDataSize != dataSize) {
mLastDataSize = dataSize;
mDataSize.setSummary(getSizeStr(context, dataSize));
mDataSize.setSummary(appStorageRepository.formatSizeBytes(dataSize));
}
long cacheSize = (mDataCleared || mCachedCleared) ? 0 : mLastResult.getCacheBytes();
if (mLastCacheSize != cacheSize) {
mLastCacheSize = cacheSize;
mCacheSize.setSummary(getSizeStr(context, cacheSize));
mCacheSize.setSummary(appStorageRepository.formatSizeBytes(cacheSize));
}
long totalSize = codeSize + dataSize + cacheSize;
if (mLastTotalSize != totalSize) {
mLastTotalSize = totalSize;
mTotalSize.setSummary(getSizeStr(context, totalSize));
mTotalSize.setSummary(appStorageRepository.formatSizeBytes(totalSize));
}
}
}
@@ -129,10 +130,6 @@ public class AppStorageSizesController {
return mLastResult;
}
private String getSizeStr(Context context, long size) {
return Formatter.formatFileSize(context, size);
}
public static class Builder {
private Preference mTotalSize;
private Preference mAppSize;

View File

@@ -34,12 +34,12 @@ import com.android.settingslib.spa.framework.util.mapItem
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 com.android.settingslib.spaprivileged.model.app.AppStorageRepositoryImpl
import com.android.settingslib.spaprivileged.template.app.AppList
import com.android.settingslib.spaprivileged.template.app.AppListInput
import com.android.settingslib.spaprivileged.template.app.AppListItem
import com.android.settingslib.spaprivileged.template.app.AppListItemModel
import com.android.settingslib.spaprivileged.template.app.AppListPage
import com.android.settingslib.spaprivileged.template.app.calculateSizeBytes
import com.android.settingslib.spaprivileged.template.app.getStorageSize
import kotlinx.coroutines.flow.Flow
@@ -109,9 +109,11 @@ class StorageAppListModel(
getStorageSize()
}
) : AppListModel<AppRecordWithSize> {
private val appStorageRepository = AppStorageRepositoryImpl(context)
override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) =
appListFlow.mapItem {
AppRecordWithSize(it, it.calculateSizeBytes(context) ?: 0L)
appListFlow.mapItem { app ->
AppRecordWithSize(app, appStorageRepository.calculateSizeBytes(app) ?: 0L)
}
override fun filter(

View File

@@ -83,10 +83,10 @@ public class AppStorageSizesControllerTest {
mController.setResult(result);
mController.updateUi(mContext);
assertThat(mAppPreference.getSummary()).isEqualTo("1 B");
assertThat(mCachePreference.getSummary()).isEqualTo("10 B");
assertThat(mDataPreference.getSummary()).isEqualTo("90 B");
assertThat(mTotalPreference.getSummary()).isEqualTo("101 B");
assertThat(mAppPreference.getSummary()).isEqualTo("1 byte");
assertThat(mCachePreference.getSummary()).isEqualTo("10 byte");
assertThat(mDataPreference.getSummary()).isEqualTo("90 byte");
assertThat(mTotalPreference.getSummary()).isEqualTo("101 byte");
}
@Test
@@ -101,10 +101,10 @@ public class AppStorageSizesControllerTest {
mController.setCacheCleared(true);
mController.updateUi(mContext);
assertThat(mAppPreference.getSummary()).isEqualTo("1 B");
assertThat(mCachePreference.getSummary()).isEqualTo("0 B");
assertThat(mDataPreference.getSummary()).isEqualTo("90 B");
assertThat(mTotalPreference.getSummary()).isEqualTo("91 B");
assertThat(mAppPreference.getSummary()).isEqualTo("1 byte");
assertThat(mCachePreference.getSummary()).isEqualTo("0 byte");
assertThat(mDataPreference.getSummary()).isEqualTo("90 byte");
assertThat(mTotalPreference.getSummary()).isEqualTo("91 byte");
}
@Test
@@ -119,9 +119,9 @@ public class AppStorageSizesControllerTest {
mController.setDataCleared(true);
mController.updateUi(mContext);
assertThat(mAppPreference.getSummary()).isEqualTo("1 B");
assertThat(mCachePreference.getSummary()).isEqualTo("0 B");
assertThat(mDataPreference.getSummary()).isEqualTo("0 B");
assertThat(mTotalPreference.getSummary()).isEqualTo("1 B");
assertThat(mAppPreference.getSummary()).isEqualTo("1 byte");
assertThat(mCachePreference.getSummary()).isEqualTo("0 byte");
assertThat(mDataPreference.getSummary()).isEqualTo("0 byte");
assertThat(mTotalPreference.getSummary()).isEqualTo("1 byte");
}
}

View File

@@ -89,7 +89,7 @@ class AppStoragePreferenceTest {
composeTestRule.onNodeWithText(context.getString(R.string.storage_settings_for_app))
.assertIsDisplayed()
composeTestRule.waitUntilExists(hasText("120 B used in internal storage"))
composeTestRule.waitUntilExists(hasText("120 byte used in internal storage"))
}
@Test
@@ -104,7 +104,7 @@ class AppStoragePreferenceTest {
composeTestRule.onNodeWithText(context.getString(R.string.storage_settings_for_app))
.assertIsDisplayed()
composeTestRule.waitUntilExists(hasText("120 B used in external storage"))
composeTestRule.waitUntilExists(hasText("120 byte used in external storage"))
}
private fun setContent(app: ApplicationInfo) {
@@ -122,7 +122,6 @@ class AppStoragePreferenceTest {
private val STATS = StorageStats().apply {
codeBytes = 100
dataBytes = 20
cacheBytes = 3
}
}
}