If external storage is emulated, don't show it as separate entries.

The installed app details UI is really complicted for the two-partition
internal and external storage case...  however, in our lovely new world
of emulated external storage, there is no reason for this, since the
external storage is using the same partition as internal storage.  So
in this case, don't show external storage as a separate item, just
combine it into the base app size and data size values.

Change-Id: Iea0e78f2d532ad50e20fef98740c93b2e897890a
This commit is contained in:
Dianne Hackborn
2012-07-12 15:20:13 -07:00
parent bff90a9755
commit 1f6ddac9f4
3 changed files with 33 additions and 18 deletions

View File

@@ -786,7 +786,10 @@ public class ApplicationsState {
private long getTotalExternalSize(PackageStats ps) { private long getTotalExternalSize(PackageStats ps) {
if (ps != null) { if (ps != null) {
// We also include the cache size here because for non-emulated
// we don't automtically clean cache files.
return ps.externalCodeSize + ps.externalDataSize return ps.externalCodeSize + ps.externalDataSize
+ ps.externalCacheSize
+ ps.externalMediaSize + ps.externalObbSize; + ps.externalMediaSize + ps.externalObbSize;
} }
return SIZE_INVALID; return SIZE_INVALID;
@@ -822,7 +825,7 @@ public class ApplicationsState {
long externalCodeSize = stats.externalCodeSize long externalCodeSize = stats.externalCodeSize
+ stats.externalObbSize; + stats.externalObbSize;
long externalDataSize = stats.externalDataSize long externalDataSize = stats.externalDataSize
+ stats.externalMediaSize + stats.externalCacheSize; + stats.externalMediaSize;
long newSize = externalCodeSize + externalDataSize long newSize = externalCodeSize + externalDataSize
+ getTotalInternalSize(stats); + getTotalInternalSize(stats);
if (entry.size != newSize || if (entry.size != newSize ||

View File

@@ -385,6 +385,11 @@ public class InstalledAppDetails extends Fragment
mExternalCodeSize = (TextView)view.findViewById(R.id.external_code_size_text); mExternalCodeSize = (TextView)view.findViewById(R.id.external_code_size_text);
mExternalDataSize = (TextView)view.findViewById(R.id.external_data_size_text); mExternalDataSize = (TextView)view.findViewById(R.id.external_data_size_text);
if (Environment.isExternalStorageEmulated()) {
((View)mExternalCodeSize.getParent()).setVisibility(View.GONE);
((View)mExternalDataSize.getParent()).setVisibility(View.GONE);
}
// Get Control button panel // Get Control button panel
View btnPanel = view.findViewById(R.id.control_buttons_panel); View btnPanel = view.findViewById(R.id.control_buttons_panel);
mForceStopButton = (Button) btnPanel.findViewById(R.id.left_button); mForceStopButton = (Button) btnPanel.findViewById(R.id.left_button);
@@ -675,22 +680,28 @@ public class InstalledAppDetails extends Fragment
} else { } else {
mHaveSizes = true; mHaveSizes = true;
if (mLastCodeSize != mAppEntry.codeSize) { long codeSize = mAppEntry.codeSize;
mLastCodeSize = mAppEntry.codeSize; long dataSize = mAppEntry.dataSize;
mAppSize.setText(getSizeStr(mAppEntry.codeSize)); if (Environment.isExternalStorageEmulated()) {
} codeSize += mAppEntry.externalCodeSize;
if (mLastDataSize != mAppEntry.dataSize) { dataSize += mAppEntry.externalDataSize;
mLastDataSize = mAppEntry.dataSize; } else {
mDataSize.setText(getSizeStr(mAppEntry.dataSize));
}
if (mLastExternalCodeSize != mAppEntry.externalCodeSize) { if (mLastExternalCodeSize != mAppEntry.externalCodeSize) {
mLastExternalCodeSize = mAppEntry.externalCodeSize; mLastExternalCodeSize = mAppEntry.externalCodeSize;
mExternalCodeSize.setText(getSizeStr(mAppEntry.externalCodeSize)); mExternalCodeSize.setText(getSizeStr(mAppEntry.externalCodeSize));
} }
long nonCacheExtDataSize = mAppEntry.externalDataSize - mAppEntry.externalCacheSize; if (mLastExternalDataSize != mAppEntry.externalDataSize) {
if (mLastExternalDataSize != nonCacheExtDataSize) { mLastExternalDataSize = mAppEntry.externalDataSize;
mLastExternalDataSize = nonCacheExtDataSize; mExternalDataSize.setText(getSizeStr( mAppEntry.externalDataSize));
mExternalDataSize.setText(getSizeStr(nonCacheExtDataSize)); }
}
if (mLastCodeSize != codeSize) {
mLastCodeSize = codeSize;
mAppSize.setText(getSizeStr(codeSize));
}
if (mLastDataSize != dataSize) {
mLastDataSize = dataSize;
mDataSize.setText(getSizeStr(dataSize));
} }
long cacheSize = mAppEntry.cacheSize + mAppEntry.externalCacheSize; long cacheSize = mAppEntry.cacheSize + mAppEntry.externalCacheSize;
if (mLastCacheSize != cacheSize) { if (mLastCacheSize != cacheSize) {
@@ -702,7 +713,7 @@ public class InstalledAppDetails extends Fragment
mTotalSize.setText(getSizeStr(mAppEntry.size)); mTotalSize.setText(getSizeStr(mAppEntry.size));
} }
if ((mAppEntry.dataSize+nonCacheExtDataSize) <= 0 || !mCanClearData) { if ((mAppEntry.dataSize+ mAppEntry.externalDataSize) <= 0 || !mCanClearData) {
mClearDataButton.setEnabled(false); mClearDataButton.setEnabled(false);
} else { } else {
mClearDataButton.setEnabled(true); mClearDataButton.setEnabled(true);

View File

@@ -341,7 +341,8 @@ public class ManageApplications extends Fragment implements
final int N = mApplications.getCount(); final int N = mApplications.getCount();
for (int i=0; i<N; i++) { for (int i=0; i<N; i++) {
ApplicationsState.AppEntry ae = mApplications.getAppEntry(i); ApplicationsState.AppEntry ae = mApplications.getAppEntry(i);
mAppStorage += ae.externalCodeSize + ae.externalDataSize; mAppStorage += ae.externalCodeSize + ae.externalDataSize
+ ae.externalCacheSize;
} }
} }
} else { } else {