Add cache mechanism for secondary users in Storage
To prevent from the flicker happening, the size info for secondary users will be cached. Bug: 220259287 Test: manual test 1) Create secondary user 2) Finish setup flow 3) Install any types of apps and try to change the storage size 4) Navigate to Settings > Storage 5) Observe the storage size and progress bar, they should have animation when storage size info updated. Change-Id: Iff706b20446603f08334a0b782dd505ca78bdab2
This commit is contained in:
@@ -117,7 +117,7 @@ public class StorageCategoryFragment extends DashboardFragment
|
|||||||
if (mStorageCacheHelper.hasCachedSizeInfo() && mSelectedStorageEntry.isPrivate()) {
|
if (mStorageCacheHelper.hasCachedSizeInfo() && mSelectedStorageEntry.isPrivate()) {
|
||||||
StorageCacheHelper.StorageCache cachedData = mStorageCacheHelper.retrieveCachedSize();
|
StorageCacheHelper.StorageCache cachedData = mStorageCacheHelper.retrieveCachedSize();
|
||||||
mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());
|
mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());
|
||||||
mPreferenceController.setUsedSize(cachedData.usedSize);
|
mPreferenceController.setUsedSize(cachedData.totalUsedSize);
|
||||||
mPreferenceController.setTotalSize(cachedData.totalSize);
|
mPreferenceController.setTotalSize(cachedData.totalSize);
|
||||||
}
|
}
|
||||||
if (mSelectedStorageEntry.isPrivate()) {
|
if (mSelectedStorageEntry.isPrivate()) {
|
||||||
@@ -225,7 +225,8 @@ public class StorageCategoryFragment extends DashboardFragment
|
|||||||
mPreferenceController.setUsedSize(privateUsedBytes);
|
mPreferenceController.setUsedSize(privateUsedBytes);
|
||||||
mPreferenceController.setTotalSize(mStorageInfo.totalBytes);
|
mPreferenceController.setTotalSize(mStorageInfo.totalBytes);
|
||||||
// Cache total size infor and used size info
|
// Cache total size infor and used size info
|
||||||
mStorageCacheHelper.cacheTotalSizeAndUsedSize(mStorageInfo.totalBytes, privateUsedBytes);
|
mStorageCacheHelper
|
||||||
|
.cacheTotalSizeAndTotalUsedSize(mStorageInfo.totalBytes, privateUsedBytes);
|
||||||
for (int i = 0, size = mSecondaryUsers.size(); i < size; i++) {
|
for (int i = 0, size = mSecondaryUsers.size(); i < size; i++) {
|
||||||
final AbstractPreferenceController controller = mSecondaryUsers.get(i);
|
final AbstractPreferenceController controller = mSecondaryUsers.get(i);
|
||||||
if (controller instanceof SecondaryUserController) {
|
if (controller instanceof SecondaryUserController) {
|
||||||
|
@@ -246,7 +246,7 @@ public class StorageDashboardFragment extends DashboardFragment
|
|||||||
if (mStorageCacheHelper.hasCachedSizeInfo() && mSelectedStorageEntry.isPrivate()) {
|
if (mStorageCacheHelper.hasCachedSizeInfo() && mSelectedStorageEntry.isPrivate()) {
|
||||||
StorageCacheHelper.StorageCache cachedData = mStorageCacheHelper.retrieveCachedSize();
|
StorageCacheHelper.StorageCache cachedData = mStorageCacheHelper.retrieveCachedSize();
|
||||||
mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());
|
mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());
|
||||||
mPreferenceController.setUsedSize(cachedData.usedSize);
|
mPreferenceController.setUsedSize(cachedData.totalUsedSize);
|
||||||
mPreferenceController.setTotalSize(cachedData.totalSize);
|
mPreferenceController.setTotalSize(cachedData.totalSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -396,7 +396,8 @@ public class StorageDashboardFragment extends DashboardFragment
|
|||||||
mPreferenceController.setUsedSize(privateUsedBytes);
|
mPreferenceController.setUsedSize(privateUsedBytes);
|
||||||
mPreferenceController.setTotalSize(mStorageInfo.totalBytes);
|
mPreferenceController.setTotalSize(mStorageInfo.totalBytes);
|
||||||
// Cache total size and used size
|
// Cache total size and used size
|
||||||
mStorageCacheHelper.cacheTotalSizeAndUsedSize(mStorageInfo.totalBytes, privateUsedBytes);
|
mStorageCacheHelper
|
||||||
|
.cacheTotalSizeAndTotalUsedSize(mStorageInfo.totalBytes, privateUsedBytes);
|
||||||
for (int i = 0, size = mSecondaryUsers.size(); i < size; i++) {
|
for (int i = 0, size = mSecondaryUsers.size(); i < size; i++) {
|
||||||
final AbstractPreferenceController controller = mSecondaryUsers.get(i);
|
final AbstractPreferenceController controller = mSecondaryUsers.get(i);
|
||||||
if (controller instanceof SecondaryUserController) {
|
if (controller instanceof SecondaryUserController) {
|
||||||
|
@@ -46,7 +46,6 @@ public class SecondaryUserController extends AbstractPreferenceController implem
|
|||||||
// PreferenceGroupKey to try to add our preference onto.
|
// PreferenceGroupKey to try to add our preference onto.
|
||||||
private static final String TARGET_PREFERENCE_GROUP_KEY = "pref_secondary_users";
|
private static final String TARGET_PREFERENCE_GROUP_KEY = "pref_secondary_users";
|
||||||
private static final String PREFERENCE_KEY_BASE = "pref_user_";
|
private static final String PREFERENCE_KEY_BASE = "pref_user_";
|
||||||
private static final int USER_PROFILE_INSERTION_LOCATION = 6;
|
|
||||||
private static final int SIZE_NOT_SET = -1;
|
private static final int SIZE_NOT_SET = -1;
|
||||||
|
|
||||||
private @NonNull
|
private @NonNull
|
||||||
@@ -58,6 +57,7 @@ public class SecondaryUserController extends AbstractPreferenceController implem
|
|||||||
private long mSize;
|
private long mSize;
|
||||||
private long mTotalSizeBytes;
|
private long mTotalSizeBytes;
|
||||||
private boolean mIsVisible;
|
private boolean mIsVisible;
|
||||||
|
private StorageCacheHelper mStorageCacheHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the appropriate controllers to a controller list for handling all secondary users on
|
* Adds the appropriate controllers to a controller list for handling all secondary users on
|
||||||
@@ -110,6 +110,7 @@ public class SecondaryUserController extends AbstractPreferenceController implem
|
|||||||
super(context);
|
super(context);
|
||||||
mUser = info;
|
mUser = info;
|
||||||
mSize = SIZE_NOT_SET;
|
mSize = SIZE_NOT_SET;
|
||||||
|
mStorageCacheHelper = new StorageCacheHelper(context, info.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -120,9 +121,7 @@ public class SecondaryUserController extends AbstractPreferenceController implem
|
|||||||
mPreferenceGroup = screen.findPreference(TARGET_PREFERENCE_GROUP_KEY);
|
mPreferenceGroup = screen.findPreference(TARGET_PREFERENCE_GROUP_KEY);
|
||||||
mStoragePreference.setTitle(mUser.name);
|
mStoragePreference.setTitle(mUser.name);
|
||||||
mStoragePreference.setKey(PREFERENCE_KEY_BASE + mUser.id);
|
mStoragePreference.setKey(PREFERENCE_KEY_BASE + mUser.id);
|
||||||
if (mSize != SIZE_NOT_SET) {
|
setSize(mStorageCacheHelper.retrieveUsedSize(), false /* animate */);
|
||||||
mStoragePreference.setStorageSize(mSize, mTotalSizeBytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
mPreferenceGroup.setVisible(mIsVisible);
|
mPreferenceGroup.setVisible(mIsVisible);
|
||||||
mPreferenceGroup.addPreference(mStoragePreference);
|
mPreferenceGroup.addPreference(mStoragePreference);
|
||||||
@@ -153,10 +152,10 @@ public class SecondaryUserController extends AbstractPreferenceController implem
|
|||||||
*
|
*
|
||||||
* @param size Size in bytes.
|
* @param size Size in bytes.
|
||||||
*/
|
*/
|
||||||
public void setSize(long size) {
|
public void setSize(long size, boolean animate) {
|
||||||
mSize = size;
|
mSize = size;
|
||||||
if (mStoragePreference != null) {
|
if (mStoragePreference != null) {
|
||||||
mStoragePreference.setStorageSize(mSize, mTotalSizeBytes);
|
mStoragePreference.setStorageSize(mSize, mTotalSizeBytes, animate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -184,11 +183,14 @@ public class SecondaryUserController extends AbstractPreferenceController implem
|
|||||||
@Override
|
@Override
|
||||||
public void handleResult(SparseArray<StorageAsyncLoader.StorageResult> stats) {
|
public void handleResult(SparseArray<StorageAsyncLoader.StorageResult> stats) {
|
||||||
if (stats == null) {
|
if (stats == null) {
|
||||||
|
setSize(mStorageCacheHelper.retrieveUsedSize(), false /* animate */);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final StorageAsyncLoader.StorageResult result = stats.get(getUser().id);
|
final StorageAsyncLoader.StorageResult result = stats.get(getUser().id);
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
setSize(result.externalStats.totalBytes);
|
setSize(result.externalStats.totalBytes, true /* animate */);
|
||||||
|
// TODO(b/171758224): Update the source of size info
|
||||||
|
mStorageCacheHelper.cacheUsedSize(result.externalStats.totalBytes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -26,7 +26,7 @@ public class StorageCacheHelper {
|
|||||||
|
|
||||||
private static final String SHARED_PREFERENCE_NAME = "StorageCache";
|
private static final String SHARED_PREFERENCE_NAME = "StorageCache";
|
||||||
private static final String TOTAL_SIZE_KEY = "total_size_key";
|
private static final String TOTAL_SIZE_KEY = "total_size_key";
|
||||||
private static final String USED_SIZE_KEY = "used_size_key";
|
private static final String TOTAL_USED_SIZE_KEY = "total_used_size_key";
|
||||||
private static final String IMAGES_SIZE_KEY = "images_size_key";
|
private static final String IMAGES_SIZE_KEY = "images_size_key";
|
||||||
private static final String VIDEOS_SIZE_KEY = "videos_size_key";
|
private static final String VIDEOS_SIZE_KEY = "videos_size_key";
|
||||||
private static final String AUDIO_SIZE_KEY = "audio_size_key";
|
private static final String AUDIO_SIZE_KEY = "audio_size_key";
|
||||||
@@ -35,6 +35,7 @@ public class StorageCacheHelper {
|
|||||||
private static final String DOCUMENTS_AND_OTHER_SIZE_KEY = "documents_and_other_size_key";
|
private static final String DOCUMENTS_AND_OTHER_SIZE_KEY = "documents_and_other_size_key";
|
||||||
private static final String TRASH_SIZE_KEY = "trash_size_key";
|
private static final String TRASH_SIZE_KEY = "trash_size_key";
|
||||||
private static final String SYSTEM_SIZE_KEY = "system_size_key";
|
private static final String SYSTEM_SIZE_KEY = "system_size_key";
|
||||||
|
private static final String USED_SIZE_KEY = "used_size_key";
|
||||||
|
|
||||||
private final SharedPreferences mSharedPreferences;
|
private final SharedPreferences mSharedPreferences;
|
||||||
|
|
||||||
@@ -69,23 +70,37 @@ public class StorageCacheHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cache total size and used size
|
* Cache total size and total used size
|
||||||
*/
|
*/
|
||||||
public void cacheTotalSizeAndUsedSize(long totalSize, long usedSize) {
|
public void cacheTotalSizeAndTotalUsedSize(long totalSize, long totalUsedSize) {
|
||||||
mSharedPreferences
|
mSharedPreferences
|
||||||
.edit()
|
.edit()
|
||||||
.putLong(TOTAL_SIZE_KEY, totalSize)
|
.putLong(TOTAL_SIZE_KEY, totalSize)
|
||||||
.putLong(USED_SIZE_KEY, usedSize)
|
.putLong(TOTAL_USED_SIZE_KEY, totalUsedSize)
|
||||||
.apply();
|
.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cache used size info when a user is treated as a secondary user.
|
||||||
|
*/
|
||||||
|
public void cacheUsedSize(long usedSize) {
|
||||||
|
mSharedPreferences.edit().putLong(USED_SIZE_KEY, usedSize).apply();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns used size for secondary user.
|
||||||
|
*/
|
||||||
|
public long retrieveUsedSize() {
|
||||||
|
return mSharedPreferences.getLong(USED_SIZE_KEY, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a cached data about all file size information.
|
* Returns a cached data about all file size information.
|
||||||
*/
|
*/
|
||||||
public StorageCache retrieveCachedSize() {
|
public StorageCache retrieveCachedSize() {
|
||||||
StorageCache result = new StorageCache();
|
StorageCache result = new StorageCache();
|
||||||
result.totalSize = mSharedPreferences.getLong(TOTAL_SIZE_KEY, 0);
|
result.totalSize = mSharedPreferences.getLong(TOTAL_SIZE_KEY, 0);
|
||||||
result.usedSize = mSharedPreferences.getLong(USED_SIZE_KEY, 0);
|
result.totalUsedSize = mSharedPreferences.getLong(TOTAL_USED_SIZE_KEY, 0);
|
||||||
result.imagesSize = mSharedPreferences.getLong(IMAGES_SIZE_KEY, 0);
|
result.imagesSize = mSharedPreferences.getLong(IMAGES_SIZE_KEY, 0);
|
||||||
result.videosSize = mSharedPreferences.getLong(VIDEOS_SIZE_KEY, 0);
|
result.videosSize = mSharedPreferences.getLong(VIDEOS_SIZE_KEY, 0);
|
||||||
result.audioSize = mSharedPreferences.getLong(AUDIO_SIZE_KEY, 0);
|
result.audioSize = mSharedPreferences.getLong(AUDIO_SIZE_KEY, 0);
|
||||||
@@ -102,7 +117,7 @@ public class StorageCacheHelper {
|
|||||||
*/
|
*/
|
||||||
public static class StorageCache {
|
public static class StorageCache {
|
||||||
public long totalSize;
|
public long totalSize;
|
||||||
public long usedSize;
|
public long totalUsedSize;
|
||||||
public long gamesSize;
|
public long gamesSize;
|
||||||
public long allAppsExceptGamesSize;
|
public long allAppsExceptGamesSize;
|
||||||
public long audioSize;
|
public long audioSize;
|
||||||
|
@@ -78,7 +78,7 @@ public class StorageUsageProgressBarPreferenceController extends BasePreferenceC
|
|||||||
if (mStorageEntry != null && mStorageEntry.isMounted() && mStorageEntry.isPrivate()) {
|
if (mStorageEntry != null && mStorageEntry.isMounted() && mStorageEntry.isPrivate()) {
|
||||||
StorageCacheHelper.StorageCache cachedData = mStorageCacheHelper.retrieveCachedSize();
|
StorageCacheHelper.StorageCache cachedData = mStorageCacheHelper.retrieveCachedSize();
|
||||||
mTotalBytes = cachedData.totalSize;
|
mTotalBytes = cachedData.totalSize;
|
||||||
mUsedBytes = cachedData.usedSize;
|
mUsedBytes = cachedData.totalUsedSize;
|
||||||
mIsUpdateStateFromSelectedStorageEntry = true;
|
mIsUpdateStateFromSelectedStorageEntry = true;
|
||||||
updateState(mUsageProgressBarPreference);
|
updateState(mUsageProgressBarPreference);
|
||||||
}
|
}
|
||||||
|
@@ -97,7 +97,7 @@ public class SecondaryUserControllerTest {
|
|||||||
public void controllerUpdatesSummaryOfNewPreference() {
|
public void controllerUpdatesSummaryOfNewPreference() {
|
||||||
mPrimaryUser.name = TEST_NAME;
|
mPrimaryUser.name = TEST_NAME;
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
mController.setSize(MEGABYTE_IN_BYTES * 10);
|
mController.setSize(MEGABYTE_IN_BYTES * 10, false /* animate */);
|
||||||
final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class);
|
final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class);
|
||||||
|
|
||||||
verify(mGroup).addPreference(argumentCaptor.capture());
|
verify(mGroup).addPreference(argumentCaptor.capture());
|
||||||
@@ -114,7 +114,7 @@ public class SecondaryUserControllerTest {
|
|||||||
when(mUserManager.getUsers()).thenReturn(userInfos);
|
when(mUserManager.getUsers()).thenReturn(userInfos);
|
||||||
final List<AbstractPreferenceController> controllers =
|
final List<AbstractPreferenceController> controllers =
|
||||||
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
||||||
false /* isWorkProfileOnly */);
|
false /* isWorkProfileOnly */);
|
||||||
|
|
||||||
assertThat(controllers).hasSize(1);
|
assertThat(controllers).hasSize(1);
|
||||||
// We should have the NoSecondaryUserController.
|
// We should have the NoSecondaryUserController.
|
||||||
@@ -134,7 +134,7 @@ public class SecondaryUserControllerTest {
|
|||||||
when(mUserManager.getUsers()).thenReturn(userInfos);
|
when(mUserManager.getUsers()).thenReturn(userInfos);
|
||||||
final List<AbstractPreferenceController> controllers =
|
final List<AbstractPreferenceController> controllers =
|
||||||
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
||||||
false /* isWorkProfileOnly */);
|
false /* isWorkProfileOnly */);
|
||||||
|
|
||||||
assertThat(controllers).hasSize(1);
|
assertThat(controllers).hasSize(1);
|
||||||
assertThat(controllers.get(0) instanceof SecondaryUserController).isTrue();
|
assertThat(controllers.get(0) instanceof SecondaryUserController).isTrue();
|
||||||
@@ -153,7 +153,7 @@ public class SecondaryUserControllerTest {
|
|||||||
when(mUserManager.getUsers()).thenReturn(userInfos);
|
when(mUserManager.getUsers()).thenReturn(userInfos);
|
||||||
final List<AbstractPreferenceController> controllers =
|
final List<AbstractPreferenceController> controllers =
|
||||||
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
||||||
false /* isWorkProfileOnly */);
|
false /* isWorkProfileOnly */);
|
||||||
|
|
||||||
assertThat(controllers).hasSize(1);
|
assertThat(controllers).hasSize(1);
|
||||||
assertThat(controllers.get(0) instanceof SecondaryUserController).isTrue();
|
assertThat(controllers.get(0) instanceof SecondaryUserController).isTrue();
|
||||||
@@ -172,7 +172,7 @@ public class SecondaryUserControllerTest {
|
|||||||
when(mUserManager.getUsers()).thenReturn(userInfos);
|
when(mUserManager.getUsers()).thenReturn(userInfos);
|
||||||
final List<AbstractPreferenceController> controllers =
|
final List<AbstractPreferenceController> controllers =
|
||||||
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
||||||
true /* isWorkProfileOnly */);
|
true /* isWorkProfileOnly */);
|
||||||
|
|
||||||
assertThat(controllers).hasSize(1);
|
assertThat(controllers).hasSize(1);
|
||||||
assertThat(controllers.get(0) instanceof SecondaryUserController).isFalse();
|
assertThat(controllers.get(0) instanceof SecondaryUserController).isFalse();
|
||||||
@@ -190,14 +190,14 @@ public class SecondaryUserControllerTest {
|
|||||||
|
|
||||||
final List<AbstractPreferenceController> controllers =
|
final List<AbstractPreferenceController> controllers =
|
||||||
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
||||||
false /* isWorkProfileOnly */);
|
false /* isWorkProfileOnly */);
|
||||||
|
|
||||||
assertThat(controllers).hasSize(1);
|
assertThat(controllers).hasSize(1);
|
||||||
assertThat(controllers.get(0) instanceof SecondaryUserController).isFalse();
|
assertThat(controllers.get(0) instanceof SecondaryUserController).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void controllerUpdatesPreferenceOnAcceptingResult() {
|
public void handleResult_noStatsResult_shouldShowCachedData() {
|
||||||
mPrimaryUser.name = TEST_NAME;
|
mPrimaryUser.name = TEST_NAME;
|
||||||
mPrimaryUser.id = 10;
|
mPrimaryUser.id = 10;
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
@@ -211,8 +211,11 @@ public class SecondaryUserControllerTest {
|
|||||||
MEGABYTE_IN_BYTES * 10,
|
MEGABYTE_IN_BYTES * 10,
|
||||||
MEGABYTE_IN_BYTES * 10, 0);
|
MEGABYTE_IN_BYTES * 10, 0);
|
||||||
result.put(10, userResult);
|
result.put(10, userResult);
|
||||||
|
// Cache size info at first time
|
||||||
mController.handleResult(result);
|
mController.handleResult(result);
|
||||||
|
|
||||||
|
// Retrieve cache size info if stats result is null
|
||||||
|
mController.handleResult(null);
|
||||||
final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class);
|
final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class);
|
||||||
verify(mGroup).addPreference(argumentCaptor.capture());
|
verify(mGroup).addPreference(argumentCaptor.capture());
|
||||||
final Preference preference = argumentCaptor.getValue();
|
final Preference preference = argumentCaptor.getValue();
|
||||||
@@ -233,7 +236,7 @@ public class SecondaryUserControllerTest {
|
|||||||
when(mUserManager.getUsers()).thenReturn(userInfos);
|
when(mUserManager.getUsers()).thenReturn(userInfos);
|
||||||
final List<AbstractPreferenceController> controllers =
|
final List<AbstractPreferenceController> controllers =
|
||||||
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager,
|
||||||
false /* isWorkProfileOnly */);
|
false /* isWorkProfileOnly */);
|
||||||
|
|
||||||
assertThat(controllers).hasSize(1);
|
assertThat(controllers).hasSize(1);
|
||||||
// We should have the NoSecondaryUserController.
|
// We should have the NoSecondaryUserController.
|
||||||
|
@@ -39,7 +39,8 @@ public class StorageCacheHelperTest {
|
|||||||
private static final long FAKE_TRASH_SIZE = 500L;
|
private static final long FAKE_TRASH_SIZE = 500L;
|
||||||
private static final long FAKE_SYSTEM_SIZE = 2300L;
|
private static final long FAKE_SYSTEM_SIZE = 2300L;
|
||||||
private static final long FAKE_TOTAL_SIZE = 256000L;
|
private static final long FAKE_TOTAL_SIZE = 256000L;
|
||||||
private static final long FAKE_USED_SIZE = 50000L;
|
private static final long FAKE_TOTAL_USED_SIZE = 50000L;
|
||||||
|
private static final long FAKE_USED_SIZE = 6500L;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private StorageCacheHelper mHelper;
|
private StorageCacheHelper mHelper;
|
||||||
@@ -74,12 +75,19 @@ public class StorageCacheHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void cacheTotalSizeAndUsedSize_shouldSaveToSharedPreference() {
|
public void cacheTotalSizeAndUsedSize_shouldSaveToSharedPreference() {
|
||||||
mHelper.cacheTotalSizeAndUsedSize(FAKE_TOTAL_SIZE, FAKE_USED_SIZE);
|
mHelper.cacheTotalSizeAndTotalUsedSize(FAKE_TOTAL_SIZE, FAKE_TOTAL_USED_SIZE);
|
||||||
|
|
||||||
StorageCacheHelper.StorageCache storageCache = mHelper.retrieveCachedSize();
|
StorageCacheHelper.StorageCache storageCache = mHelper.retrieveCachedSize();
|
||||||
|
|
||||||
assertThat(storageCache.totalSize).isEqualTo(FAKE_TOTAL_SIZE);
|
assertThat(storageCache.totalSize).isEqualTo(FAKE_TOTAL_SIZE);
|
||||||
assertThat(storageCache.usedSize).isEqualTo(FAKE_USED_SIZE);
|
assertThat(storageCache.totalUsedSize).isEqualTo(FAKE_TOTAL_USED_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void cacheUsedSize_shouldSaveToSharedPreference() {
|
||||||
|
mHelper.cacheUsedSize(FAKE_USED_SIZE);
|
||||||
|
|
||||||
|
assertThat(mHelper.retrieveUsedSize()).isEqualTo(FAKE_USED_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private StorageCacheHelper.StorageCache getFakeStorageCache() {
|
private StorageCacheHelper.StorageCache getFakeStorageCache() {
|
||||||
|
Reference in New Issue
Block a user