diff options
Diffstat (limited to 'src/com/android/settings/applications/ApplicationsState.java')
-rw-r--r-- | src/com/android/settings/applications/ApplicationsState.java | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/src/com/android/settings/applications/ApplicationsState.java b/src/com/android/settings/applications/ApplicationsState.java index 11e4aae..519c203 100644 --- a/src/com/android/settings/applications/ApplicationsState.java +++ b/src/com/android/settings/applications/ApplicationsState.java @@ -5,14 +5,11 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.IPackageStatsObserver; import android.content.pm.PackageManager; import android.content.pm.PackageStats; import android.content.pm.PackageManager.NameNotFoundException; -import android.content.res.Configuration; -import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Handler; @@ -74,7 +71,8 @@ public class ApplicationsState { long cacheSize; long codeSize; long dataSize; - long externalSize; + long externalCodeSize; + long externalDataSize; } public static class AppEntry extends SizeInfo { @@ -97,6 +95,8 @@ public class ApplicationsState { ApplicationInfo info; Drawable icon; String sizeStr; + String internalSizeStr; + String externalSizeStr; boolean sizeStale; long sizeLoadStart; @@ -392,6 +392,14 @@ public class ApplicationsState { for (int i=0; i<mApplications.size(); i++) { final ApplicationInfo info = mApplications.get(i); + // Need to trim out any applications that are disabled by + // something different than the user. + if (!info.enabled && info.enabledSetting + != PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER) { + mApplications.remove(i); + i--; + continue; + } final AppEntry entry = mEntriesMap.get(info.packageName); if (entry != null) { entry.info = info; @@ -652,8 +660,8 @@ public class ApplicationsState { private long getTotalExternalSize(PackageStats ps) { if (ps != null) { - return ps.externalDataSize + ps.externalMediaSize + ps.externalCacheSize - + ps.externalObbSize; + return ps.externalCodeSize + ps.externalDataSize + + ps.externalMediaSize + ps.externalObbSize; } return SIZE_INVALID; } @@ -685,19 +693,27 @@ public class ApplicationsState { synchronized (entry) { entry.sizeStale = false; entry.sizeLoadStart = 0; - long externalSize = getTotalExternalSize(stats); - long newSize = externalSize + getTotalInternalSize(stats); + long externalCodeSize = stats.externalCodeSize + + stats.externalObbSize; + long externalDataSize = stats.externalDataSize + + stats.externalMediaSize + stats.externalCacheSize; + long newSize = externalCodeSize + externalDataSize + + getTotalInternalSize(stats); if (entry.size != newSize || entry.cacheSize != stats.cacheSize || entry.codeSize != stats.codeSize || entry.dataSize != stats.dataSize || - entry.externalSize != externalSize) { + entry.externalCodeSize != externalCodeSize || + entry.externalDataSize != externalDataSize) { entry.size = newSize; entry.cacheSize = stats.cacheSize; entry.codeSize = stats.codeSize; entry.dataSize = stats.dataSize; - entry.externalSize = externalSize; + entry.externalCodeSize = externalCodeSize; + entry.externalDataSize = externalDataSize; entry.sizeStr = getSizeStr(entry.size); + entry.internalSizeStr = getSizeStr(getTotalInternalSize(stats)); + entry.externalSizeStr = getSizeStr(getTotalExternalSize(stats)); if (DEBUG) Log.i(TAG, "Set size of " + entry.label + " " + entry + ": " + entry.sizeStr); sizeChanged = true; |