am 313ab172: Fix issue #6761130: Clearing app data in settings does not clear app\'s USB storage

* commit '313ab1727014d535790bc89afdcf725ff936e5b4':
  Fix issue #6761130: Clearing app data in settings does not clear app's USB storage
This commit is contained in:
Dianne Hackborn
2012-06-29 15:43:34 -07:00
committed by Android Git Automerger
2 changed files with 25 additions and 11 deletions

View File

@@ -73,6 +73,16 @@ public class ApplicationsState {
long dataSize;
long externalCodeSize;
long externalDataSize;
// This is the part of externalDataSize that is in the cache
// section of external storage. Note that we don't just combine
// this with cacheSize because currently the platform can't
// automatically trim this data when needed, so it is something
// the user may need to manage. The externalDataSize also includes
// this value, since what this is here is really the part of
// externalDataSize that we can just consider to be "cache" files
// for purposes of cleaning them up in the app details UI.
long externalCacheSize;
}
public static class AppEntry extends SizeInfo {
@@ -820,13 +830,15 @@ public class ApplicationsState {
entry.codeSize != stats.codeSize ||
entry.dataSize != stats.dataSize ||
entry.externalCodeSize != externalCodeSize ||
entry.externalDataSize != externalDataSize) {
entry.externalDataSize != externalDataSize ||
entry.externalCacheSize != stats.externalCacheSize) {
entry.size = newSize;
entry.cacheSize = stats.cacheSize;
entry.codeSize = stats.codeSize;
entry.dataSize = stats.dataSize;
entry.externalCodeSize = externalCodeSize;
entry.externalDataSize = externalDataSize;
entry.externalCacheSize = stats.externalCacheSize;
entry.sizeStr = getSizeStr(entry.size);
entry.internalSize = getTotalInternalSize(stats);
entry.internalSizeStr = getSizeStr(entry.internalSize);

View File

@@ -394,8 +394,8 @@ public class InstalledAppDetails extends Fragment
// Initialize clear data and move install location buttons
View data_buttons_panel = view.findViewById(R.id.data_buttons_panel);
mClearDataButton = (Button) data_buttons_panel.findViewById(R.id.left_button);
mMoveAppButton = (Button) data_buttons_panel.findViewById(R.id.right_button);
mClearDataButton = (Button) data_buttons_panel.findViewById(R.id.right_button);
mMoveAppButton = (Button) data_buttons_panel.findViewById(R.id.left_button);
// Cache section
mCacheSize = (TextView) view.findViewById(R.id.cache_size_text);
@@ -687,26 +687,28 @@ public class InstalledAppDetails extends Fragment
mLastExternalCodeSize = mAppEntry.externalCodeSize;
mExternalCodeSize.setText(getSizeStr(mAppEntry.externalCodeSize));
}
if (mLastExternalDataSize != mAppEntry.externalDataSize) {
mLastExternalDataSize = mAppEntry.externalDataSize;
mExternalDataSize.setText(getSizeStr(mAppEntry.externalDataSize));
long nonCacheExtDataSize = mAppEntry.externalDataSize - mAppEntry.externalCacheSize;
if (mLastExternalDataSize != nonCacheExtDataSize) {
mLastExternalDataSize = nonCacheExtDataSize;
mExternalDataSize.setText(getSizeStr(nonCacheExtDataSize));
}
if (mLastCacheSize != mAppEntry.cacheSize) {
mLastCacheSize = mAppEntry.cacheSize;
mCacheSize.setText(getSizeStr(mAppEntry.cacheSize));
long cacheSize = mAppEntry.cacheSize + mAppEntry.externalCacheSize;
if (mLastCacheSize != cacheSize) {
mLastCacheSize = cacheSize;
mCacheSize.setText(getSizeStr(cacheSize));
}
if (mLastTotalSize != mAppEntry.size) {
mLastTotalSize = mAppEntry.size;
mTotalSize.setText(getSizeStr(mAppEntry.size));
}
if (mAppEntry.dataSize <= 0 || !mCanClearData) {
if ((mAppEntry.dataSize+nonCacheExtDataSize) <= 0 || !mCanClearData) {
mClearDataButton.setEnabled(false);
} else {
mClearDataButton.setEnabled(true);
mClearDataButton.setOnClickListener(this);
}
if (mAppEntry.cacheSize <= 0) {
if (cacheSize <= 0) {
mClearCacheButton.setEnabled(false);
} else {
mClearCacheButton.setEnabled(true);