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

Commit 69387533 authored by Chaohui Wang's avatar Chaohui Wang Committed by Android (Google) Code Review
Browse files

Merge "Migrate to AppStorageRepository" into main

parents 43138e66 7e8e683e
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.settings.applications;

import android.content.Context;
import android.text.format.Formatter;

import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
@@ -25,6 +24,7 @@ import androidx.preference.Preference;

import com.android.internal.util.Preconditions;
import com.android.settingslib.applications.StorageStatsSource;
import com.android.settingslib.spaprivileged.model.app.AppStorageRepositoryImpl;

/**
 * Handles setting the sizes for the app info screen.
@@ -70,27 +70,28 @@ public class AppStorageSizesController {
            mCacheSize.setSummary(errorRes);
            mTotalSize.setSummary(errorRes);
        } else {
            var appStorageRepository = new AppStorageRepositoryImpl(context);
            long codeSize = mLastResult.getCodeBytes();
            long dataSize =
                    mDataCleared ? 0 : mLastResult.getDataBytes() - mLastResult.getCacheBytes();
            if (mLastCodeSize != codeSize) {
                mLastCodeSize = codeSize;
                mAppSize.setSummary(getSizeStr(context, codeSize));
                mAppSize.setSummary(appStorageRepository.formatSizeBytes(codeSize));
            }
            if (mLastDataSize != dataSize) {
                mLastDataSize = dataSize;
                mDataSize.setSummary(getSizeStr(context, dataSize));
                mDataSize.setSummary(appStorageRepository.formatSizeBytes(dataSize));
            }
            long cacheSize = (mDataCleared || mCachedCleared) ? 0 : mLastResult.getCacheBytes();
            if (mLastCacheSize != cacheSize) {
                mLastCacheSize = cacheSize;
                mCacheSize.setSummary(getSizeStr(context, cacheSize));
                mCacheSize.setSummary(appStorageRepository.formatSizeBytes(cacheSize));
            }

            long totalSize = codeSize + dataSize + cacheSize;
            if (mLastTotalSize != totalSize) {
                mLastTotalSize = totalSize;
                mTotalSize.setSummary(getSizeStr(context, totalSize));
                mTotalSize.setSummary(appStorageRepository.formatSizeBytes(totalSize));
            }
        }
    }
@@ -129,10 +130,6 @@ public class AppStorageSizesController {
        return mLastResult;
    }

    private String getSizeStr(Context context, long size) {
        return Formatter.formatFileSize(context, size);
    }

    public static class Builder {
        private Preference mTotalSize;
        private Preference mAppSize;
+5 −3
Original line number Diff line number Diff line
@@ -34,12 +34,12 @@ import com.android.settingslib.spa.framework.util.mapItem
import com.android.settingslib.spaprivileged.model.app.AppEntry
import com.android.settingslib.spaprivileged.model.app.AppListModel
import com.android.settingslib.spaprivileged.model.app.AppRecord
import com.android.settingslib.spaprivileged.model.app.AppStorageRepositoryImpl
import com.android.settingslib.spaprivileged.template.app.AppList
import com.android.settingslib.spaprivileged.template.app.AppListInput
import com.android.settingslib.spaprivileged.template.app.AppListItem
import com.android.settingslib.spaprivileged.template.app.AppListItemModel
import com.android.settingslib.spaprivileged.template.app.AppListPage
import com.android.settingslib.spaprivileged.template.app.calculateSizeBytes
import com.android.settingslib.spaprivileged.template.app.getStorageSize
import kotlinx.coroutines.flow.Flow

@@ -109,9 +109,11 @@ class StorageAppListModel(
        getStorageSize()
    }
) : AppListModel<AppRecordWithSize> {
    private val appStorageRepository = AppStorageRepositoryImpl(context)

    override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) =
        appListFlow.mapItem {
            AppRecordWithSize(it, it.calculateSizeBytes(context) ?: 0L)
        appListFlow.mapItem { app ->
            AppRecordWithSize(app, appStorageRepository.calculateSizeBytes(app) ?: 0L)
        }

    override fun filter(
+12 −12
Original line number Diff line number Diff line
@@ -83,10 +83,10 @@ public class AppStorageSizesControllerTest {
        mController.setResult(result);
        mController.updateUi(mContext);

        assertThat(mAppPreference.getSummary()).isEqualTo("1 B");
        assertThat(mCachePreference.getSummary()).isEqualTo("10 B");
        assertThat(mDataPreference.getSummary()).isEqualTo("90 B");
        assertThat(mTotalPreference.getSummary()).isEqualTo("101 B");
        assertThat(mAppPreference.getSummary()).isEqualTo("1 byte");
        assertThat(mCachePreference.getSummary()).isEqualTo("10 byte");
        assertThat(mDataPreference.getSummary()).isEqualTo("90 byte");
        assertThat(mTotalPreference.getSummary()).isEqualTo("101 byte");
    }

    @Test
@@ -101,10 +101,10 @@ public class AppStorageSizesControllerTest {
        mController.setCacheCleared(true);
        mController.updateUi(mContext);

        assertThat(mAppPreference.getSummary()).isEqualTo("1 B");
        assertThat(mCachePreference.getSummary()).isEqualTo("0 B");
        assertThat(mDataPreference.getSummary()).isEqualTo("90 B");
        assertThat(mTotalPreference.getSummary()).isEqualTo("91 B");
        assertThat(mAppPreference.getSummary()).isEqualTo("1 byte");
        assertThat(mCachePreference.getSummary()).isEqualTo("0 byte");
        assertThat(mDataPreference.getSummary()).isEqualTo("90 byte");
        assertThat(mTotalPreference.getSummary()).isEqualTo("91 byte");
    }

    @Test
@@ -119,9 +119,9 @@ public class AppStorageSizesControllerTest {
        mController.setDataCleared(true);
        mController.updateUi(mContext);

        assertThat(mAppPreference.getSummary()).isEqualTo("1 B");
        assertThat(mCachePreference.getSummary()).isEqualTo("0 B");
        assertThat(mDataPreference.getSummary()).isEqualTo("0 B");
        assertThat(mTotalPreference.getSummary()).isEqualTo("1 B");
        assertThat(mAppPreference.getSummary()).isEqualTo("1 byte");
        assertThat(mCachePreference.getSummary()).isEqualTo("0 byte");
        assertThat(mDataPreference.getSummary()).isEqualTo("0 byte");
        assertThat(mTotalPreference.getSummary()).isEqualTo("1 byte");
    }
}
+2 −3
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ class AppStoragePreferenceTest {

        composeTestRule.onNodeWithText(context.getString(R.string.storage_settings_for_app))
            .assertIsDisplayed()
        composeTestRule.waitUntilExists(hasText("120 B used in internal storage"))
        composeTestRule.waitUntilExists(hasText("120 byte used in internal storage"))
    }

    @Test
@@ -104,7 +104,7 @@ class AppStoragePreferenceTest {

        composeTestRule.onNodeWithText(context.getString(R.string.storage_settings_for_app))
            .assertIsDisplayed()
        composeTestRule.waitUntilExists(hasText("120 B used in external storage"))
        composeTestRule.waitUntilExists(hasText("120 byte used in external storage"))
    }

    private fun setContent(app: ApplicationInfo) {
@@ -122,7 +122,6 @@ class AppStoragePreferenceTest {
        private val STATS = StorageStats().apply {
            codeBytes = 100
            dataBytes = 20
            cacheBytes = 3
        }
    }
}