Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2a6f28f authored by Mike Lockwood's avatar Mike Lockwood
Browse files

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: default avatarMike Lockwood <lockwood@android.com>
parent 148222fd
Loading
Loading
Loading
Loading
+26 −8
Original line number Diff line number Diff line
@@ -63,6 +63,8 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen

    private StorageMeasurement mMeasurement;

    private boolean mAllowFormat;

    static class CategoryInfo {
        final int mTitle;
        final int mColor;
@@ -163,6 +165,12 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen
        setTitle(storageVolume.getDescription());
        mMeasurement = StorageMeasurement.getInstance(context, storageVolume, isPrimary);
        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() {
@@ -190,10 +198,12 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen
        mMountTogglePreference.setTitle(R.string.sd_eject);
        mMountTogglePreference.setSummary(R.string.sd_eject_summary);

        if (mAllowFormat) {
            mFormatPreference = new Preference(getContext());
            mFormatPreference.setTitle(R.string.sd_format);
            mFormatPreference.setSummary(R.string.sd_format_summary);
        }
    }

    public StorageVolume getStorageVolume() {
        return mStorageVolume;
@@ -211,14 +221,18 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen
            removePreference(mPreferences[i]);
        }
        removePreference(mMountTogglePreference);
        if (mFormatPreference != null) {
            removePreference(mFormatPreference);
        }

        addPreference(mUsageBarPreference);
        for (int i = 0; i < numberOfCategories; i++) {
            addPreference(mPreferences[i]);
        }
        addPreference(mMountTogglePreference);
        if (mFormatPreference != null) {
            addPreference(mFormatPreference);
        }

        mMountTogglePreference.setEnabled(true);
    }
@@ -232,10 +246,12 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen
        if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
            state = Environment.MEDIA_MOUNTED;
            readOnly = mResources.getString(R.string.read_only);
            if (mFormatPreference != null) {
                removePreference(mFormatPreference);
            }
        }

        if (mStorageVolume.isEmulated()) {
        if (mFormatPreference != null) {
            removePreference(mFormatPreference);
        }

@@ -266,9 +282,11 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory implemen
            removePreference(mUsageBarPreference);
            removePreference(mPreferences[TOTAL_SIZE]);
            removePreference(mPreferences[AVAILABLE]);
            if (mFormatPreference != null) {
                removePreference(mFormatPreference);
            }
        }
    }

    public void updateApproximate(long totalSize, long availSize) {
        mPreferences[TOTAL_SIZE].setSummary(formatSize(totalSize));