From 90daa80c5bf3fdba3489be776640018ca578d955 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Sat, 18 Apr 2015 16:22:10 -0700 Subject: [PATCH] Use new VolumeInfo helper methods. Makes it clearer if we're checking for readable/writable state, and puts emulated/private conversion logic in single place. Bug: 19993667 Change-Id: I953f5c184ca62afc631d855e64cd8a4972320148 --- .../deviceinfo/PrivateVolumeSettings.java | 11 +++++------ .../deviceinfo/PublicVolumeSettings.java | 4 ++-- .../settings/deviceinfo/StorageMeasurement.java | 2 +- .../settings/deviceinfo/StorageSettings.java | 2 +- .../deviceinfo/StorageVolumePreference.java | 16 +++++++--------- 5 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java index a280b2ddd40..00fb0941835 100644 --- a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java +++ b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java @@ -53,10 +53,9 @@ import android.widget.EditText; import com.android.internal.logging.MetricsLogger; import com.android.internal.util.Preconditions; import com.android.settings.R; -import com.android.settings.Settings; +import com.android.settings.Settings.StorageUseActivity; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.Utils; -import com.android.settings.Settings.StorageUseActivity; import com.android.settings.applications.ManageApplications; import com.android.settings.deviceinfo.StorageMeasurement.MeasurementDetails; import com.android.settings.deviceinfo.StorageMeasurement.MeasurementReceiver; @@ -75,6 +74,7 @@ import java.util.Objects; */ public class PrivateVolumeSettings extends SettingsPreferenceFragment { // TODO: disable unmount when providing over MTP/PTP + // TODO: warn when mounted read-only private static final String TAG_RENAME = "rename"; private static final String TAG_CONFIRM_CLEAR_CACHE = "confirmClearCache"; @@ -129,8 +129,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { addPreferencesFromResource(R.xml.device_info_storage_volume); // Find the emulated shared storage layered above this private volume - mSharedVolume = mStorageManager.findVolumeById( - mVolume.getId().replace("private", "emulated")); + mSharedVolume = mStorageManager.findEmulatedForPrivate(mVolume); mMeasure = new StorageMeasurement(context, mVolume, mSharedVolume); mMeasure.setReceiver(mReceiver); @@ -171,7 +170,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { screen.removeAll(); - if (mVolume.getState() != VolumeInfo.STATE_MOUNTED) { + if (!mVolume.isMountedReadable()) { return; } @@ -283,7 +282,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { } else { rename.setVisible(mVolume.getType() == VolumeInfo.TYPE_PRIVATE); mount.setVisible(mVolume.getState() == VolumeInfo.STATE_UNMOUNTED); - unmount.setVisible(mVolume.getState() == VolumeInfo.STATE_MOUNTED); + unmount.setVisible(mVolume.isMountedReadable()); format.setVisible(true); } diff --git a/src/com/android/settings/deviceinfo/PublicVolumeSettings.java b/src/com/android/settings/deviceinfo/PublicVolumeSettings.java index 94a505bc686..e0b684327fc 100644 --- a/src/com/android/settings/deviceinfo/PublicVolumeSettings.java +++ b/src/com/android/settings/deviceinfo/PublicVolumeSettings.java @@ -118,7 +118,7 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment { screen.removeAll(); - if (mVolume.getState() == VolumeInfo.STATE_MOUNTED) { + if (mVolume.isMountedReadable()) { screen.addPreference(mGraph); screen.addPreference(mTotal); screen.addPreference(mAvailable); @@ -139,7 +139,7 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment { if (mVolume.getState() == VolumeInfo.STATE_UNMOUNTED) { screen.addPreference(mMount); } - if (mVolume.getState() == VolumeInfo.STATE_MOUNTED) { + if (mVolume.isMountedReadable()) { screen.addPreference(mUnmount); } screen.addPreference(mFormat); diff --git a/src/com/android/settings/deviceinfo/StorageMeasurement.java b/src/com/android/settings/deviceinfo/StorageMeasurement.java index a3c4aeca745..b6c35e30ee1 100644 --- a/src/com/android/settings/deviceinfo/StorageMeasurement.java +++ b/src/com/android/settings/deviceinfo/StorageMeasurement.java @@ -345,7 +345,7 @@ public class StorageMeasurement { final Message finished = mMeasurementHandler.obtainMessage(MeasurementHandler.MSG_COMPLETED, details); - if (mSharedVolume != null && mSharedVolume.getState() == VolumeInfo.STATE_MOUNTED) { + if (mSharedVolume != null && mSharedVolume.isMountedReadable()) { final File basePath = mSharedVolume.getPathForUser(currentUser); // Measure media types for emulated storage, or for primary physical diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java index 74040ef20c8..7a7d90d631b 100644 --- a/src/com/android/settings/deviceinfo/StorageSettings.java +++ b/src/com/android/settings/deviceinfo/StorageSettings.java @@ -186,7 +186,7 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index return true; } else if (vol.getType() == VolumeInfo.TYPE_PUBLIC) { - if (vol.getState() == VolumeInfo.STATE_MOUNTED) { + if (vol.isMountedReadable()) { startActivity(vol.buildBrowseIntent()); return true; } else { diff --git a/src/com/android/settings/deviceinfo/StorageVolumePreference.java b/src/com/android/settings/deviceinfo/StorageVolumePreference.java index f127dfb8937..852aa3997b0 100644 --- a/src/com/android/settings/deviceinfo/StorageVolumePreference.java +++ b/src/com/android/settings/deviceinfo/StorageVolumePreference.java @@ -47,14 +47,12 @@ public class StorageVolumePreference extends Preference { setKey(volume.getId()); setTitle(mStorageManager.getBestVolumeDescription(volume)); - switch (volume.getState()) { - case VolumeInfo.STATE_MOUNTED: - // TODO: move statfs() to background thread - final File path = volume.getPath(); - final String free = Formatter.formatFileSize(context, path.getFreeSpace()); - final String total = Formatter.formatFileSize(context, path.getTotalSpace()); - setSummary(context.getString(R.string.storage_volume_summary, free, total)); - break; + if (volume.isMountedReadable()) { + // TODO: move statfs() to background thread + final File path = volume.getPath(); + final String free = Formatter.formatFileSize(context, path.getFreeSpace()); + final String total = Formatter.formatFileSize(context, path.getTotalSpace()); + setSummary(context.getString(R.string.storage_volume_summary, free, total)); } // TODO: better icons @@ -65,7 +63,7 @@ public class StorageVolumePreference extends Preference { } if (volume.getType() == VolumeInfo.TYPE_PUBLIC - && volume.getState() == VolumeInfo.STATE_MOUNTED) { + && volume.isMountedReadable()) { setWidgetLayoutResource(R.layout.preference_storage_action); } }