Loading src/com/android/settings/deviceinfo/StorageSettings.java +10 −38 Original line number Diff line number Diff line Loading @@ -54,6 +54,8 @@ import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; import com.android.settings.search.SearchIndexableRaw; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.deviceinfo.PrivateStorageInfo; import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider; import com.android.settingslib.drawer.SettingsDrawerActivity; import java.io.File; Loading Loading @@ -168,7 +170,8 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index for (VolumeInfo vol : volumes) { if (vol.getType() == VolumeInfo.TYPE_PRIVATE) { final long volumeTotalBytes = getTotalSize(vol); final long volumeTotalBytes = PrivateStorageInfo.getTotalSize(vol, sTotalInternalStorage); final int color = COLOR_PRIVATE[privateCount++ % COLOR_PRIVATE.length]; mInternalCategory.addPreference( new StorageVolumePreference(context, vol, color, volumeTotalBytes)); Loading Loading @@ -277,7 +280,8 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index if (vol.getType() == VolumeInfo.TYPE_PRIVATE) { final Bundle args = new Bundle(); args.putString(VolumeInfo.EXTRA_VOLUME_ID, vol.getId()); PrivateVolumeSettings.setVolumeSize(args, getTotalSize(vol)); PrivateVolumeSettings.setVolumeSize(args, PrivateStorageInfo.getTotalSize(vol, sTotalInternalStorage)); startFragment(this, PrivateVolumeSettings.class.getCanonicalName(), -1, 0, args); return true; Loading Loading @@ -517,47 +521,15 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index private void updateSummary() { // TODO: Register listener. final StorageManager storageManager = mContext.getSystemService(StorageManager.class); if (sTotalInternalStorage <= 0) { sTotalInternalStorage = storageManager.getPrimaryStorageSize(); } final List<VolumeInfo> volumes = storageManager.getVolumes(); long privateFreeBytes = 0; long privateTotalBytes = 0; for (VolumeInfo info : volumes) { final File path = info.getPath(); if (info.getType() != VolumeInfo.TYPE_PRIVATE || path == null) { continue; } privateTotalBytes += getTotalSize(info); privateFreeBytes += path.getFreeSpace(); } long privateUsedBytes = privateTotalBytes - privateFreeBytes; PrivateStorageInfo info = PrivateStorageInfo.getPrivateStorageInfo( new StorageManagerVolumeProvider(storageManager)); long privateUsedBytes = info.totalBytes - info.freeBytes; mLoader.setSummary(this, mContext.getString(R.string.storage_summary, Formatter.formatFileSize(mContext, privateUsedBytes), Formatter.formatFileSize(mContext, privateTotalBytes))); Formatter.formatFileSize(mContext, info.totalBytes))); } } private static long getTotalSize(VolumeInfo info) { // Device could have more than one primary storage, which could be located in the // internal flash (UUID_PRIVATE_INTERNAL) or in an external disk. // If it's internal, try to get its total size from StorageManager first // (sTotalInternalStorage), since that size is more precise because it accounts for // the system partition. if (info.getType() == VolumeInfo.TYPE_PRIVATE && Objects.equals(info.getFsUuid(), StorageManager.UUID_PRIVATE_INTERNAL) && sTotalInternalStorage > 0) { return sTotalInternalStorage; } else { final File path = info.getPath(); if (path == null) { // Should not happen, caller should have checked. Log.e(TAG, "info's path is null on getTotalSize(): " + info); return 0; } return path.getTotalSpace(); } } public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY = new SummaryLoader.SummaryProviderFactory() { Loading Loading
src/com/android/settings/deviceinfo/StorageSettings.java +10 −38 Original line number Diff line number Diff line Loading @@ -54,6 +54,8 @@ import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; import com.android.settings.search.SearchIndexableRaw; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.deviceinfo.PrivateStorageInfo; import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider; import com.android.settingslib.drawer.SettingsDrawerActivity; import java.io.File; Loading Loading @@ -168,7 +170,8 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index for (VolumeInfo vol : volumes) { if (vol.getType() == VolumeInfo.TYPE_PRIVATE) { final long volumeTotalBytes = getTotalSize(vol); final long volumeTotalBytes = PrivateStorageInfo.getTotalSize(vol, sTotalInternalStorage); final int color = COLOR_PRIVATE[privateCount++ % COLOR_PRIVATE.length]; mInternalCategory.addPreference( new StorageVolumePreference(context, vol, color, volumeTotalBytes)); Loading Loading @@ -277,7 +280,8 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index if (vol.getType() == VolumeInfo.TYPE_PRIVATE) { final Bundle args = new Bundle(); args.putString(VolumeInfo.EXTRA_VOLUME_ID, vol.getId()); PrivateVolumeSettings.setVolumeSize(args, getTotalSize(vol)); PrivateVolumeSettings.setVolumeSize(args, PrivateStorageInfo.getTotalSize(vol, sTotalInternalStorage)); startFragment(this, PrivateVolumeSettings.class.getCanonicalName(), -1, 0, args); return true; Loading Loading @@ -517,47 +521,15 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index private void updateSummary() { // TODO: Register listener. final StorageManager storageManager = mContext.getSystemService(StorageManager.class); if (sTotalInternalStorage <= 0) { sTotalInternalStorage = storageManager.getPrimaryStorageSize(); } final List<VolumeInfo> volumes = storageManager.getVolumes(); long privateFreeBytes = 0; long privateTotalBytes = 0; for (VolumeInfo info : volumes) { final File path = info.getPath(); if (info.getType() != VolumeInfo.TYPE_PRIVATE || path == null) { continue; } privateTotalBytes += getTotalSize(info); privateFreeBytes += path.getFreeSpace(); } long privateUsedBytes = privateTotalBytes - privateFreeBytes; PrivateStorageInfo info = PrivateStorageInfo.getPrivateStorageInfo( new StorageManagerVolumeProvider(storageManager)); long privateUsedBytes = info.totalBytes - info.freeBytes; mLoader.setSummary(this, mContext.getString(R.string.storage_summary, Formatter.formatFileSize(mContext, privateUsedBytes), Formatter.formatFileSize(mContext, privateTotalBytes))); Formatter.formatFileSize(mContext, info.totalBytes))); } } private static long getTotalSize(VolumeInfo info) { // Device could have more than one primary storage, which could be located in the // internal flash (UUID_PRIVATE_INTERNAL) or in an external disk. // If it's internal, try to get its total size from StorageManager first // (sTotalInternalStorage), since that size is more precise because it accounts for // the system partition. if (info.getType() == VolumeInfo.TYPE_PRIVATE && Objects.equals(info.getFsUuid(), StorageManager.UUID_PRIVATE_INTERNAL) && sTotalInternalStorage > 0) { return sTotalInternalStorage; } else { final File path = info.getPath(); if (path == null) { // Should not happen, caller should have checked. Log.e(TAG, "info's path is null on getTotalSize(): " + info); return 0; } return path.getTotalSpace(); } } public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY = new SummaryLoader.SummaryProviderFactory() { Loading