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

Commit 0462ffaf authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Reduce flickers when launching Storage Settings" into sc-dev

parents 958e5873 96b6106f
Loading
Loading
Loading
Loading
+21 −26
Original line number Diff line number Diff line
@@ -104,14 +104,16 @@ public class StorageCategoryFragment extends DashboardFragment
            return;
        }

        mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());

        if (!mSelectedStorageEntry.isMounted()) {
            // Set null volume to hide category stats.
            mPreferenceController.setVolume(null);
            return;
        }
        if (mSelectedStorageEntry.isPrivate()) {
            mStorageInfo = null;
            mAppsResult = null;
            maybeSetLoading(isQuotaSupported());

            // Stats data is only available on private volumes.
            getLoaderManager().restartLoader(STORAGE_JOB_ID, Bundle.EMPTY, this);
            getLoaderManager()
@@ -156,7 +158,6 @@ public class StorageCategoryFragment extends DashboardFragment
    public void onViewCreated(View v, Bundle savedInstanceState) {
        super.onViewCreated(v, savedInstanceState);
        initializeCacheProvider();
        maybeSetLoading(isQuotaSupported());

        EntityHeaderController.newInstance(getActivity(), this /*fragment*/,
                null /* header view */)
@@ -179,8 +180,10 @@ public class StorageCategoryFragment extends DashboardFragment
    }

    private void onReceivedSizes() {
        boolean stopLoading = false;
        if (mStorageInfo != null) {
        if (mStorageInfo == null || mAppsResult == null) {
            return;
        }

        final long privateUsedBytes = mStorageInfo.totalBytes - mStorageInfo.freeBytes;
        mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());
        mPreferenceController.setUsedSize(privateUsedBytes);
@@ -192,22 +195,14 @@ public class StorageCategoryFragment extends DashboardFragment
                userController.setTotalSize(mStorageInfo.totalBytes);
            }
        }
            stopLoading = true;
        }

        if (mAppsResult != null) {
        mPreferenceController.onLoadFinished(mAppsResult, mUserId);
        updateSecondaryUserControllers(mSecondaryUsers, mAppsResult);
            stopLoading = true;
        }

        // setLoading always causes a flicker, so let's avoid doing it.
        if (stopLoading) {
        if (getView().findViewById(R.id.loading_container).getVisibility() == View.VISIBLE) {
            setLoading(false, true);
        }
    }
    }

    @Override
    public int getMetricsCategory() {
+21 −26
Original line number Diff line number Diff line
@@ -232,14 +232,16 @@ public class StorageDashboardFragment extends DashboardFragment
        mOptionMenuController.setSelectedStorageEntry(mSelectedStorageEntry);
        getActivity().invalidateOptionsMenu();

        mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());

        if (!mSelectedStorageEntry.isMounted()) {
            // Set null volume to hide category stats.
            mPreferenceController.setVolume(null);
            return;
        }
        if (mSelectedStorageEntry.isPrivate()) {
            mStorageInfo = null;
            mAppsResult = null;
            maybeSetLoading(isQuotaSupported());

            // Stats data is only available on private volumes.
            getLoaderManager().restartLoader(STORAGE_JOB_ID, Bundle.EMPTY, this);
            getLoaderManager()
@@ -315,7 +317,6 @@ public class StorageDashboardFragment extends DashboardFragment
    public void onViewCreated(View v, Bundle savedInstanceState) {
        super.onViewCreated(v, savedInstanceState);
        initializeCacheProvider();
        maybeSetLoading(isQuotaSupported());

        EntityHeaderController.newInstance(getActivity(), this /*fragment*/,
                null /* header view */)
@@ -350,8 +351,10 @@ public class StorageDashboardFragment extends DashboardFragment
    }

    private void onReceivedSizes() {
        boolean stopLoading = false;
        if (mStorageInfo != null) {
        if (mStorageInfo == null || mAppsResult == null) {
            return;
        }

        final long privateUsedBytes = mStorageInfo.totalBytes - mStorageInfo.freeBytes;
        mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());
        mPreferenceController.setUsedSize(privateUsedBytes);
@@ -363,22 +366,14 @@ public class StorageDashboardFragment extends DashboardFragment
                userController.setTotalSize(mStorageInfo.totalBytes);
            }
        }
            stopLoading = true;
        }

        if (mAppsResult != null) {
        mPreferenceController.onLoadFinished(mAppsResult, mUserId);
        updateSecondaryUserControllers(mSecondaryUsers, mAppsResult);
            stopLoading = true;
        }

        // setLoading always causes a flicker, so let's avoid doing it.
        if (stopLoading) {
        if (getView().findViewById(R.id.loading_container).getVisibility() == View.VISIBLE) {
            setLoading(false, true);
        }
    }
    }

    @Override
    public int getMetricsCategory() {
+1 −8
Original line number Diff line number Diff line
@@ -222,7 +222,6 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
        mVolume = volume;

        updateCategoryPreferencesVisibility();
        updatePrivateStorageCategoryPreferencesOrder();
    }

    // Stats data is only available on private volumes.
@@ -353,14 +352,10 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
        mDocumentsAndOtherPreference = screen.findPreference(DOCUMENTS_AND_OTHER_KEY);
        mSystemPreference = screen.findPreference(SYSTEM_KEY);
        mTrashPreference = screen.findPreference(TRASH_KEY);

        updateCategoryPreferencesVisibility();
        updatePrivateStorageCategoryPreferencesOrder();
    }

    /** Fragments use it to set storage result and update UI of this controller. */
    public void onLoadFinished(SparseArray<StorageAsyncLoader.StorageResult> result,
            int userId) {
    public void onLoadFinished(SparseArray<StorageAsyncLoader.StorageResult> result, int userId) {
        final StorageAsyncLoader.StorageResult data = result.get(userId);

        mImagesPreference.setStorageSize(data.imagesSize, mTotalSize);
@@ -374,8 +369,6 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
        if (mSystemPreference != null) {
            // Everything else that hasn't already been attributed is tracked as
            // belonging to system.
            // TODO(b/170918505): Should revamp system size calculation with the data
            // from media provider.
            long attributedSize = 0;
            for (int i = 0; i < result.size(); i++) {
                final StorageAsyncLoader.StorageResult otherData = result.valueAt(i);
+0 −20
Original line number Diff line number Diff line
@@ -397,25 +397,6 @@ public class StorageItemPreferenceControllerTest {
        assertThat(mController.mDocumentsAndOtherPreference.isVisible()).isTrue();
    }

    @Test
    public void displayPreference_hideFilePreferenceWhenEmulatedStorageUnreadable() {
        when(mSvp.findEmulatedForPrivate(nullable(VolumeInfo.class))).thenReturn(mVolume);
        when(mVolume.isMountedReadable()).thenReturn(false);

        mController.displayPreference(mPreferenceScreen);

        assertThat(mController.mDocumentsAndOtherPreference.isVisible()).isFalse();
    }

    @Test
    public void displayPreference_noEmulatedInternalStorage_hidePreference() {
        when(mSvp.findEmulatedForPrivate(nullable(VolumeInfo.class))).thenReturn(null);

        mController.displayPreference(mPreferenceScreen);

        assertThat(mController.mDocumentsAndOtherPreference.isVisible()).isFalse();
    }

    @Test
    public void setVolume_updateFilePreferenceToHideAfterSettingVolume_hidePreference() {
        when(mSvp.findEmulatedForPrivate(nullable(VolumeInfo.class))).thenReturn(mVolume);
@@ -430,7 +411,6 @@ public class StorageItemPreferenceControllerTest {
        assertThat(mController.mDocumentsAndOtherPreference.isVisible()).isFalse();
    }


    @Test
    public void setVolume_updateFilePreferenceToShowAfterSettingVolume_showPreference() {
        // This will hide it initially.