summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/applications/ApplicationsState.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/applications/ApplicationsState.java')
-rw-r--r--src/com/android/settings/applications/ApplicationsState.java36
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;