diff --git a/src/com/android/settings/deviceinfo/StorageMeasurement.java b/src/com/android/settings/deviceinfo/StorageMeasurement.java index 14b5108a245..7fb309c4f37 100644 --- a/src/com/android/settings/deviceinfo/StorageMeasurement.java +++ b/src/com/android/settings/deviceinfo/StorageMeasurement.java @@ -478,6 +478,7 @@ public class StorageMeasurement { File top = new File(mStorageVolume.getPath()); mFileInfoForMisc = new ArrayList(); File[] files = top.listFiles(); + if (files == null) return; final int len = files.length; // Get sizes of all top level nodes except the ones already computed... long counter = 0; @@ -524,4 +525,11 @@ public class StorageMeasurement { return mFileName + " : " + mSize + ", id:" + mId; } } + + /** + * TODO remove this method, only used because external SD Card needs a special treatment. + */ + boolean isPrimary() { + return mIsPrimary; + } } diff --git a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java index 83f9ee2d9a0..e326b2b8e14 100644 --- a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java +++ b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java @@ -289,6 +289,12 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen mPreferences[TOTAL_SIZE].setSummary(formatSize(totalSize)); + if (!mMeasurement.isPrimary()) { + // TODO FIXME: external SD card will not report any size. Show used space in bar graph + final long usedSize = totalSize - availSize; + mUsageBarPreference.addEntry(usedSize / (float) totalSize, android.graphics.Color.GRAY); + } + updatePreference(appsSize, totalSize, APPLICATIONS); long totalMediaSize = 0;