Disable option to format SD card for secondary external storage

This is a temporary workaround for an interoperability problem with MTP

Change-Id: Iaf63ea0ac76e12ffd635765785da027cab0fcb9a
Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
Mike Lockwood
2011-06-11 17:56:34 -04:00
parent 148222fd43
commit d2a6f28fa7

View File

@@ -63,6 +63,8 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen
private StorageMeasurement mMeasurement; private StorageMeasurement mMeasurement;
private boolean mAllowFormat;
static class CategoryInfo { static class CategoryInfo {
final int mTitle; final int mTitle;
final int mColor; final int mColor;
@@ -163,6 +165,12 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen
setTitle(storageVolume.getDescription()); setTitle(storageVolume.getDescription());
mMeasurement = StorageMeasurement.getInstance(context, storageVolume, isPrimary); mMeasurement = StorageMeasurement.getInstance(context, storageVolume, isPrimary);
mMeasurement.setReceiver(this); mMeasurement.setReceiver(this);
// Cannot format emulated storage
mAllowFormat = !mStorageVolume.isEmulated();
// For now we are disabling reformatting secondary external storage
// until some interoperability problems with MTP are fixed
if (!isPrimary) mAllowFormat = false;
} }
public void init() { public void init() {
@@ -190,10 +198,12 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen
mMountTogglePreference.setTitle(R.string.sd_eject); mMountTogglePreference.setTitle(R.string.sd_eject);
mMountTogglePreference.setSummary(R.string.sd_eject_summary); mMountTogglePreference.setSummary(R.string.sd_eject_summary);
if (mAllowFormat) {
mFormatPreference = new Preference(getContext()); mFormatPreference = new Preference(getContext());
mFormatPreference.setTitle(R.string.sd_format); mFormatPreference.setTitle(R.string.sd_format);
mFormatPreference.setSummary(R.string.sd_format_summary); mFormatPreference.setSummary(R.string.sd_format_summary);
} }
}
public StorageVolume getStorageVolume() { public StorageVolume getStorageVolume() {
return mStorageVolume; return mStorageVolume;
@@ -211,14 +221,18 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen
removePreference(mPreferences[i]); removePreference(mPreferences[i]);
} }
removePreference(mMountTogglePreference); removePreference(mMountTogglePreference);
if (mFormatPreference != null) {
removePreference(mFormatPreference); removePreference(mFormatPreference);
}
addPreference(mUsageBarPreference); addPreference(mUsageBarPreference);
for (int i = 0; i < numberOfCategories; i++) { for (int i = 0; i < numberOfCategories; i++) {
addPreference(mPreferences[i]); addPreference(mPreferences[i]);
} }
addPreference(mMountTogglePreference); addPreference(mMountTogglePreference);
if (mFormatPreference != null) {
addPreference(mFormatPreference); addPreference(mFormatPreference);
}
mMountTogglePreference.setEnabled(true); mMountTogglePreference.setEnabled(true);
} }
@@ -232,10 +246,12 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen
if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
state = Environment.MEDIA_MOUNTED; state = Environment.MEDIA_MOUNTED;
readOnly = mResources.getString(R.string.read_only); readOnly = mResources.getString(R.string.read_only);
if (mFormatPreference != null) {
removePreference(mFormatPreference); removePreference(mFormatPreference);
} }
}
if (mStorageVolume.isEmulated()) { if (mFormatPreference != null) {
removePreference(mFormatPreference); removePreference(mFormatPreference);
} }
@@ -266,9 +282,11 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen
removePreference(mUsageBarPreference); removePreference(mUsageBarPreference);
removePreference(mPreferences[TOTAL_SIZE]); removePreference(mPreferences[TOTAL_SIZE]);
removePreference(mPreferences[AVAILABLE]); removePreference(mPreferences[AVAILABLE]);
if (mFormatPreference != null) {
removePreference(mFormatPreference); removePreference(mFormatPreference);
} }
} }
}
public void updateApproximate(long totalSize, long availSize) { public void updateApproximate(long totalSize, long availSize) {
mPreferences[TOTAL_SIZE].setSummary(formatSize(totalSize)); mPreferences[TOTAL_SIZE].setSummary(formatSize(totalSize));