Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cba520fc authored by Daniel Nishi's avatar Daniel Nishi Committed by Android (Google) Code Review
Browse files

Merge "Fake data to be 0B after clearing." into oc-dev

parents 8f9f25c5 278bea73
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ public class AppStorageSettings extends AppInfoWithHeader
    private static final String KEY_CLEAR_URI = "clear_uri_button";

    private static final String KEY_CACHE_CLEARED = "cache_cleared";
    private static final String KEY_DATA_CLEARED = "data_cleared";

    // Views related to cache info
    private Preference mCacheSize;
@@ -115,6 +116,7 @@ public class AppStorageSettings extends AppInfoWithHeader

    private boolean mCanClearData = true;
    private boolean mCacheCleared;
    private boolean mDataCleared;

    private AppStorageSizesController mSizeController;

@@ -130,6 +132,8 @@ public class AppStorageSettings extends AppInfoWithHeader
        super.onCreate(savedInstanceState);
        if (savedInstanceState != null) {
            mCacheCleared = savedInstanceState.getBoolean(KEY_CACHE_CLEARED, false);
            mDataCleared = savedInstanceState.getBoolean(KEY_DATA_CLEARED, false);
            mCacheCleared = mCacheCleared || mDataCleared;
        }

        addPreferencesFromResource(R.xml.app_storage_settings);
@@ -147,6 +151,7 @@ public class AppStorageSettings extends AppInfoWithHeader
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putBoolean(KEY_CACHE_CLEARED, mCacheCleared);
        outState.putBoolean(KEY_DATA_CLEARED, mDataCleared);
    }

    private void setupViews() {
@@ -527,6 +532,9 @@ public class AppStorageSettings extends AppInfoWithHeader
        if (mCacheCleared) {
            mSizeController.setCacheCleared(true);
        }
        if (mDataCleared) {
            mSizeController.setDataCleared(true);
        }

        mSizeController.updateUi(getContext());

@@ -538,7 +546,7 @@ public class AppStorageSettings extends AppInfoWithHeader
            long dataSize = result.getDataBytes();
            long cacheSize = result.getCacheBytes();

            if (dataSize <= 0 || !mCanClearData) {
            if (dataSize <= 0 || !mCanClearData || mDataCleared) {
                mClearDataButton.setEnabled(false);
            } else {
                mClearDataButton.setEnabled(true);
@@ -564,6 +572,8 @@ public class AppStorageSettings extends AppInfoWithHeader
            }
            switch (msg.what) {
                case MSG_CLEAR_USER_DATA:
                    mDataCleared = true;
                    mCacheCleared = true;
                    processClearMsg(msg);
                    break;
                case MSG_CLEAR_CACHE:
+12 −2
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ public class AppStorageSizesController {
    private StorageStatsSource.AppStorageStats mLastResult;
    private boolean mLastResultFailed;
    private boolean mCachedCleared;
    private boolean mDataCleared;
    private long mLastCodeSize = -1;
    private long mLastDataSize = -1;
    private long mLastCacheSize = -1;
@@ -69,7 +70,7 @@ public class AppStorageSizesController {
            mTotalSize.setSummary(errorRes);
        } else {
            long codeSize = mLastResult.getCodeBytes();
            long dataSize = mLastResult.getDataBytes();
            long dataSize = mDataCleared ? 0 : mLastResult.getDataBytes();
            if (mLastCodeSize != codeSize) {
                mLastCodeSize = codeSize;
                mAppSize.setSummary(getSizeStr(context, codeSize));
@@ -78,7 +79,7 @@ public class AppStorageSizesController {
                mLastDataSize = dataSize;
                mDataSize.setSummary(getSizeStr(context, dataSize));
            }
            long cacheSize = mCachedCleared ? 0 : mLastResult.getCacheBytes();
            long cacheSize = (mDataCleared || mCachedCleared) ? 0 : mLastResult.getCacheBytes();
            if (mLastCacheSize != cacheSize) {
                mLastCacheSize = cacheSize;
                mCacheSize.setSummary(getSizeStr(context, cacheSize));
@@ -110,6 +111,15 @@ public class AppStorageSizesController {
        mCachedCleared = isCleared;
    }

    /**
     * Sets if we have cleared data and should zero the data bytes.
     * When the data is cleared, the directory are recreated. Directories have some size, but are
     * empty. We zero this out to best match user expectations.
     */
    public void setDataCleared(boolean isCleared) {
        mDataCleared = isCleared;
    }

    /**
     * Returns the last result calculated, if it exists. If it does not, returns null.
     */
+18 −0
Original line number Diff line number Diff line
@@ -110,4 +110,22 @@ public class AppStorageSizesControllerTest {
        assertThat(mDataPreference.getSummary()).isEqualTo("100B");
        assertThat(mTotalPreference.getSummary()).isEqualTo("101B");
    }

    @Test
    public void fakeDataFlagSetsDataAndCacheToZero() {
        AppStorageStats result = mock(AppStorageStats.class);
        when(result.getCodeBytes()).thenReturn(1L);
        when(result.getCacheBytes()).thenReturn(10L);
        when(result.getDataBytes()).thenReturn(100L);
        when(result.getTotalBytes()).thenReturn(111L);

        mController.setResult(result);
        mController.setDataCleared(true);
        mController.updateUi(mContext);

        assertThat(mAppPreference.getSummary()).isEqualTo("1.00B");
        assertThat(mCachePreference.getSummary()).isEqualTo("0.00B");
        assertThat(mDataPreference.getSummary()).isEqualTo("0.00B");
        assertThat(mTotalPreference.getSummary()).isEqualTo("1.00B");
    }
}