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
This commit is contained in:
Jeff Sharkey
2015-04-18 16:22:10 -07:00
parent e0a14922ea
commit 90daa80c5b
5 changed files with 16 additions and 19 deletions

View File

@@ -53,10 +53,9 @@ import android.widget.EditText;
import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsLogger;
import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions;
import com.android.settings.R; 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.SettingsPreferenceFragment;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.Settings.StorageUseActivity;
import com.android.settings.applications.ManageApplications; import com.android.settings.applications.ManageApplications;
import com.android.settings.deviceinfo.StorageMeasurement.MeasurementDetails; import com.android.settings.deviceinfo.StorageMeasurement.MeasurementDetails;
import com.android.settings.deviceinfo.StorageMeasurement.MeasurementReceiver; import com.android.settings.deviceinfo.StorageMeasurement.MeasurementReceiver;
@@ -75,6 +74,7 @@ import java.util.Objects;
*/ */
public class PrivateVolumeSettings extends SettingsPreferenceFragment { public class PrivateVolumeSettings extends SettingsPreferenceFragment {
// TODO: disable unmount when providing over MTP/PTP // 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_RENAME = "rename";
private static final String TAG_CONFIRM_CLEAR_CACHE = "confirmClearCache"; 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); addPreferencesFromResource(R.xml.device_info_storage_volume);
// Find the emulated shared storage layered above this private volume // Find the emulated shared storage layered above this private volume
mSharedVolume = mStorageManager.findVolumeById( mSharedVolume = mStorageManager.findEmulatedForPrivate(mVolume);
mVolume.getId().replace("private", "emulated"));
mMeasure = new StorageMeasurement(context, mVolume, mSharedVolume); mMeasure = new StorageMeasurement(context, mVolume, mSharedVolume);
mMeasure.setReceiver(mReceiver); mMeasure.setReceiver(mReceiver);
@@ -171,7 +170,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
screen.removeAll(); screen.removeAll();
if (mVolume.getState() != VolumeInfo.STATE_MOUNTED) { if (!mVolume.isMountedReadable()) {
return; return;
} }
@@ -283,7 +282,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
} else { } else {
rename.setVisible(mVolume.getType() == VolumeInfo.TYPE_PRIVATE); rename.setVisible(mVolume.getType() == VolumeInfo.TYPE_PRIVATE);
mount.setVisible(mVolume.getState() == VolumeInfo.STATE_UNMOUNTED); mount.setVisible(mVolume.getState() == VolumeInfo.STATE_UNMOUNTED);
unmount.setVisible(mVolume.getState() == VolumeInfo.STATE_MOUNTED); unmount.setVisible(mVolume.isMountedReadable());
format.setVisible(true); format.setVisible(true);
} }

View File

@@ -118,7 +118,7 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment {
screen.removeAll(); screen.removeAll();
if (mVolume.getState() == VolumeInfo.STATE_MOUNTED) { if (mVolume.isMountedReadable()) {
screen.addPreference(mGraph); screen.addPreference(mGraph);
screen.addPreference(mTotal); screen.addPreference(mTotal);
screen.addPreference(mAvailable); screen.addPreference(mAvailable);
@@ -139,7 +139,7 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment {
if (mVolume.getState() == VolumeInfo.STATE_UNMOUNTED) { if (mVolume.getState() == VolumeInfo.STATE_UNMOUNTED) {
screen.addPreference(mMount); screen.addPreference(mMount);
} }
if (mVolume.getState() == VolumeInfo.STATE_MOUNTED) { if (mVolume.isMountedReadable()) {
screen.addPreference(mUnmount); screen.addPreference(mUnmount);
} }
screen.addPreference(mFormat); screen.addPreference(mFormat);

View File

@@ -345,7 +345,7 @@ public class StorageMeasurement {
final Message finished = mMeasurementHandler.obtainMessage(MeasurementHandler.MSG_COMPLETED, final Message finished = mMeasurementHandler.obtainMessage(MeasurementHandler.MSG_COMPLETED,
details); details);
if (mSharedVolume != null && mSharedVolume.getState() == VolumeInfo.STATE_MOUNTED) { if (mSharedVolume != null && mSharedVolume.isMountedReadable()) {
final File basePath = mSharedVolume.getPathForUser(currentUser); final File basePath = mSharedVolume.getPathForUser(currentUser);
// Measure media types for emulated storage, or for primary physical // Measure media types for emulated storage, or for primary physical

View File

@@ -186,7 +186,7 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
return true; return true;
} else if (vol.getType() == VolumeInfo.TYPE_PUBLIC) { } else if (vol.getType() == VolumeInfo.TYPE_PUBLIC) {
if (vol.getState() == VolumeInfo.STATE_MOUNTED) { if (vol.isMountedReadable()) {
startActivity(vol.buildBrowseIntent()); startActivity(vol.buildBrowseIntent());
return true; return true;
} else { } else {

View File

@@ -47,14 +47,12 @@ public class StorageVolumePreference extends Preference {
setKey(volume.getId()); setKey(volume.getId());
setTitle(mStorageManager.getBestVolumeDescription(volume)); setTitle(mStorageManager.getBestVolumeDescription(volume));
switch (volume.getState()) { if (volume.isMountedReadable()) {
case VolumeInfo.STATE_MOUNTED: // TODO: move statfs() to background thread
// TODO: move statfs() to background thread final File path = volume.getPath();
final File path = volume.getPath(); final String free = Formatter.formatFileSize(context, path.getFreeSpace());
final String free = Formatter.formatFileSize(context, path.getFreeSpace()); final String total = Formatter.formatFileSize(context, path.getTotalSpace());
final String total = Formatter.formatFileSize(context, path.getTotalSpace()); setSummary(context.getString(R.string.storage_volume_summary, free, total));
setSummary(context.getString(R.string.storage_volume_summary, free, total));
break;
} }
// TODO: better icons // TODO: better icons
@@ -65,7 +63,7 @@ public class StorageVolumePreference extends Preference {
} }
if (volume.getType() == VolumeInfo.TYPE_PUBLIC if (volume.getType() == VolumeInfo.TYPE_PUBLIC
&& volume.getState() == VolumeInfo.STATE_MOUNTED) { && volume.isMountedReadable()) {
setWidgetLayoutResource(R.layout.preference_storage_action); setWidgetLayoutResource(R.layout.preference_storage_action);
} }
} }