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

Commit 3a932f33 authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android (Google) Code Review
Browse files

Merge "Treat cache storage usage as available space." into jb-mr1-dev

parents 8227e303 ec6e6626
Loading
Loading
Loading
Loading
+28 −15
Original line number Diff line number Diff line
@@ -96,6 +96,9 @@ public class StorageMeasurement {
    }

    public static class MeasurementDetails {
        public long totalSize;
        public long availSize;

        /**
         * Total apps disk usage.
         * <p>
@@ -110,6 +113,11 @@ public class StorageMeasurement {
         */
        public long appsSize;

        /**
         * Total cache disk usage by apps.
         */
        public long cacheSize;

        /**
         * Total media disk usage, categorized by types such as
         * {@link Environment#DIRECTORY_MUSIC}.
@@ -237,34 +245,36 @@ public class StorageMeasurement {
        }

        private void addStatsLocked(PackageStats stats) {
            final long externalSize = stats.externalCodeSize + stats.externalDataSize
                    + stats.externalCacheSize + stats.externalMediaSize;

            if (mIsInternal) {
                final long codeSize;
                final long dataSize;
                long codeSize = stats.codeSize;
                long dataSize = stats.dataSize;
                long cacheSize = stats.cacheSize;
                if (Environment.isExternalStorageEmulated()) {
                    // OBB is shared on emulated storage, so count once as code,
                    // and data includes emulated storage.
                    codeSize = stats.codeSize + stats.externalObbSize;
                    dataSize = stats.dataSize + externalSize;
                } else {
                    codeSize = stats.codeSize;
                    dataSize = stats.dataSize;
                    // Include emulated storage when measuring internal. OBB is
                    // shared on emulated storage, so treat as code.
                    codeSize += stats.externalCodeSize + stats.externalObbSize;
                    dataSize += stats.externalDataSize + stats.externalMediaSize;
                    cacheSize += stats.externalCacheSize;
                }

                // Include code and combined data for current user
                // Count code and data for current user
                if (stats.userHandle == mCurrentUser) {
                    mDetails.appsSize += codeSize;
                    mDetails.appsSize += dataSize;
                }

                // Include combined data for user summary
                // User summary only includes data (code is only counted once
                // for the current user)
                addValue(mDetails.usersSize, stats.userHandle, dataSize);

                // Include cache for all users
                mDetails.cacheSize += cacheSize;

            } else {
                // Physical storage; only count external sizes
                mDetails.appsSize += externalSize + stats.externalObbSize;
                mDetails.appsSize += stats.externalCodeSize + stats.externalDataSize
                        + stats.externalMediaSize + stats.externalObbSize;
                mDetails.cacheSize += stats.externalCacheSize;
            }
        }
    }
@@ -389,6 +399,9 @@ public class StorageMeasurement {
            final MeasurementDetails details = new MeasurementDetails();
            final Message finished = obtainMessage(MSG_COMPLETED, details);

            details.totalSize = mTotalSize;
            details.availSize = mAvailSize;

            final UserManager userManager = (UserManager) context.getSystemService(
                    Context.USER_SERVICE);
            final List<UserInfo> users = userManager.getUsers();
+5 −1
Original line number Diff line number Diff line
@@ -312,6 +312,10 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory {
        final boolean showDetails = mVolume == null || mVolume.isPrimary();
        if (!showDetails) return;

        // Count caches as available space, since system manages them
        mItemTotal.setSummary(formatSize(details.totalSize));
        mItemAvailable.setSummary(formatSize(details.availSize + details.cacheSize));

        mUsageBarPreference.clear();

        updatePreference(mItemApps, details.appsSize);
@@ -326,7 +330,7 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory {
        updatePreference(mItemMusic, musicSize);

        final long downloadsSize = totalValues(details.mediaSize, Environment.DIRECTORY_DOWNLOADS);
        updatePreference(mItemDownloads, musicSize);
        updatePreference(mItemDownloads, downloadsSize);

        updatePreference(mItemMisc, details.miscSize);