diff options
| author | 2017-04-03 11:26:46 -0700 | |
|---|---|---|
| committer | 2017-04-03 13:01:37 -0700 | |
| commit | 2860cf63fdd85a7dda68d0987bbc7976c69efd71 (patch) | |
| tree | d77d096c4547aa735cea73cb3901265784d98923 | |
| parent | a906fb7b43ba26984b8ef304c894244a8ef19188 (diff) | |
Add storage fullness methods to volume provider.
This allows us to mock them out for use in unit tests.
Fixes: 36858638
Change-Id: I2509d9704b531cf3594790f738aaedb7ed5db443
Test: Thin wrapper is used in Settings unittest
3 files changed, 28 insertions, 2 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/PrivateStorageInfo.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/PrivateStorageInfo.java index 40abb6c8c2c4..88f133ce57c2 100644 --- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/PrivateStorageInfo.java +++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/PrivateStorageInfo.java @@ -41,8 +41,8 @@ public class PrivateStorageInfo { long privateTotalBytes = 0; for (VolumeInfo info : sm.getVolumes()) { if (info.getType() == VolumeInfo.TYPE_PRIVATE && info.isMountedReadable()) { - privateTotalBytes += stats.getTotalBytes(info.getFsUuid()); - privateFreeBytes += stats.getFreeBytes(info.getFsUuid()); + privateTotalBytes += sm.getTotalBytes(stats, info); + privateFreeBytes += sm.getFreeBytes(stats, info); } } return new PrivateStorageInfo(privateFreeBytes, privateTotalBytes); diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageManagerVolumeProvider.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageManagerVolumeProvider.java index 320494c68faf..11060e6c1a05 100644 --- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageManagerVolumeProvider.java +++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageManagerVolumeProvider.java @@ -16,6 +16,7 @@ package com.android.settingslib.deviceinfo; +import android.app.usage.StorageStatsManager; import android.os.storage.StorageManager; import android.os.storage.VolumeInfo; @@ -46,4 +47,14 @@ public class StorageManagerVolumeProvider implements StorageVolumeProvider { public VolumeInfo findEmulatedForPrivate(VolumeInfo privateVolume) { return mStorageManager.findEmulatedForPrivate(privateVolume); } + + @Override + public long getTotalBytes(StorageStatsManager stats, VolumeInfo volume) { + return stats.getTotalBytes(volume.getFsUuid()); + } + + @Override + public long getFreeBytes(StorageStatsManager stats, VolumeInfo volume) { + return stats.getFreeBytes(volume.getFsUuid()); + } } diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageVolumeProvider.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageVolumeProvider.java index 646c42f05a8e..e5d85d147bee 100644 --- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageVolumeProvider.java +++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageVolumeProvider.java @@ -16,6 +16,7 @@ package com.android.settingslib.deviceinfo; +import android.app.usage.StorageStatsManager; import android.os.storage.VolumeInfo; import java.util.List; @@ -39,4 +40,18 @@ public interface StorageVolumeProvider { * Returns the emulated volume for a given private volume. */ VolumeInfo findEmulatedForPrivate(VolumeInfo privateVolume); + + /** + * Returns the total bytes for a given storage volume. + * + * @pre The volume is a private volume and is readable. + */ + long getTotalBytes(StorageStatsManager stats, VolumeInfo volume); + + /** + * Returns the free bytes for a given storage volume. + * + * @pre The volume is a private volume and is readable. + */ + long getFreeBytes(StorageStatsManager stats, VolumeInfo volume); } |