Category breakdown size should match total size.

The system apps' base size was not being properly attributed
to the system. This was causing the storage to go totally
unattributed (and causing roughly a 1GB gap in sizes.) On my
test device, the sizes now sum properly.

Change-Id: Ibc13015e40f854090a7a3ec09eef4c5c52918e0f
Fixes: 35144717
Test: Settings robo
This commit is contained in:
Daniel Nishi
2017-03-10 15:15:42 -08:00
parent c1542f1fd4
commit 325d38043f
4 changed files with 8 additions and 3 deletions

View File

@@ -89,6 +89,8 @@ public class StorageAsyncLoader
// code size. // code size.
if (!app.isSystemApp() || app.isUpdatedSystemApp()) { if (!app.isSystemApp() || app.isUpdatedSystemApp()) {
attributedAppSizeInBytes += stats.getCodeBytes(); attributedAppSizeInBytes += stats.getCodeBytes();
} else {
result.systemSize += stats.getCodeBytes();
} }
switch (app.category) { switch (app.category) {
case CATEGORY_GAME: case CATEGORY_GAME:
@@ -117,6 +119,7 @@ public class StorageAsyncLoader
public long gamesSize; public long gamesSize;
public long musicAppsSize; public long musicAppsSize;
public long otherAppsSize; public long otherAppsSize;
public long systemSize;
public StorageStatsSource.ExternalStorageStats externalStats; public StorageStatsSource.ExternalStorageStats externalStats;
} }

View File

@@ -181,7 +181,7 @@ public class StorageItemPreferenceController extends PreferenceController {
mGamePreference.setStorageSize(data.gamesSize); mGamePreference.setStorageSize(data.gamesSize);
mAppPreference.setStorageSize(data.otherAppsSize); mAppPreference.setStorageSize(data.otherAppsSize);
if (mSystemPreference != null) { if (mSystemPreference != null) {
mSystemPreference.setStorageSize(mSystemSize); mSystemPreference.setStorageSize(mSystemSize + data.systemSize);
} }
long unattributedBytes = data.externalStats.totalBytes - data.externalStats.audioBytes long unattributedBytes = data.externalStats.totalBytes - data.externalStats.audioBytes

View File

@@ -216,6 +216,7 @@ public class StorageItemPreferenceControllerTest {
result.gamesSize = KILOBYTE * 8; result.gamesSize = KILOBYTE * 8;
result.musicAppsSize = KILOBYTE * 4; result.musicAppsSize = KILOBYTE * 4;
result.otherAppsSize = KILOBYTE * 9; result.otherAppsSize = KILOBYTE * 9;
result.systemSize = KILOBYTE * 10;
result.externalStats = new StorageStatsSource.ExternalStorageStats( result.externalStats = new StorageStatsSource.ExternalStorageStats(
KILOBYTE * 50, // total KILOBYTE * 50, // total
KILOBYTE * 10, // audio KILOBYTE * 10, // audio
@@ -230,7 +231,7 @@ public class StorageItemPreferenceControllerTest {
assertThat(image.getSummary().toString()).isEqualTo("35.00KB"); // 15KB video + 20KB images assertThat(image.getSummary().toString()).isEqualTo("35.00KB"); // 15KB video + 20KB images
assertThat(games.getSummary().toString()).isEqualTo("8.00KB"); assertThat(games.getSummary().toString()).isEqualTo("8.00KB");
assertThat(apps.getSummary().toString()).isEqualTo("9.00KB"); assertThat(apps.getSummary().toString()).isEqualTo("9.00KB");
assertThat(system.getSummary().toString()).isEqualTo("6.00KB"); assertThat(system.getSummary().toString()).isEqualTo("16.00KB");
assertThat(files.getSummary().toString()).isEqualTo("5.00KB"); assertThat(files.getSummary().toString()).isEqualTo("5.00KB");
} }
} }

View File

@@ -132,7 +132,7 @@ public class StorageAsyncLoaderTest {
} }
@Test @Test
public void testSystemAppsBaseSizeIsIgnored() throws Exception { public void testSystemAppsBaseSizeIsAddedToSystem() throws Exception {
ApplicationInfo systemApp = ApplicationInfo systemApp =
addPackage(PACKAGE_NAME_1, 100, 1, 10, ApplicationInfo.CATEGORY_UNDEFINED); addPackage(PACKAGE_NAME_1, 100, 1, 10, ApplicationInfo.CATEGORY_UNDEFINED);
systemApp.flags = ApplicationInfo.FLAG_SYSTEM; systemApp.flags = ApplicationInfo.FLAG_SYSTEM;
@@ -141,6 +141,7 @@ public class StorageAsyncLoaderTest {
assertThat(result.size()).isEqualTo(1); assertThat(result.size()).isEqualTo(1);
assertThat(result.get(PRIMARY_USER_ID).otherAppsSize).isEqualTo(10L); assertThat(result.get(PRIMARY_USER_ID).otherAppsSize).isEqualTo(10L);
assertThat(result.get(PRIMARY_USER_ID).systemSize).isEqualTo(1L);
} }
@Test @Test