From 3785e390d2538b11d98be17388af69c97c8995b2 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Tue, 18 Jan 2011 15:14:32 -0800 Subject: [PATCH] Don't show separate option for erasing USB storage On devices with emulated USB storage or SD card, factory reset will wipe all data from that area. Given that, it doesn't make sense to show a different option for wiping USB storage. Bug: 3242568 Change-Id: I257bdde06141f14381c8c09ce6a42c18d7080efd --- res/layout/master_clear.xml | 8 ++++- res/values/strings.xml | 2 ++ src/com/android/settings/MasterClear.java | 29 +++++++++++++++---- .../android/settings/deviceinfo/Memory.java | 4 +-- 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/res/layout/master_clear.xml b/res/layout/master_clear.xml index ec61310b286..e15169ed179 100644 --- a/res/layout/master_clear.xml +++ b/res/layout/master_clear.xml @@ -35,6 +35,12 @@ android:layout_height="wrap_content" android:textSize="18sp" android:text="@string/master_clear_desc" /> + - "This will erase all data from your phone\'s internal storage, including:\n\n
  • Your Google account
  • \n
  • System and application data and settings
  • \n
  • Downloaded applications"
  • "\n\nYou are currently signed into the following accounts:\n" + + "
  • Music
  • \n
  • Photos
  • \n
  • Other user data
  • "
    "\n\nTo also clear music, pictures, and other user data, the USB storage needs to be erased." diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java index 3060d3e1893..1b045eae3a7 100644 --- a/src/com/android/settings/MasterClear.java +++ b/src/com/android/settings/MasterClear.java @@ -29,6 +29,7 @@ import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Bundle; +import android.os.Environment; import android.preference.Preference; import android.preference.PreferenceActivity; import android.util.Log; @@ -133,13 +134,29 @@ public class MasterClear extends Fragment { mExternalStorageContainer = mContentView.findViewById(R.id.erase_external_container); mExternalStorage = (CheckBox) mContentView.findViewById(R.id.erase_external); - mExternalStorageContainer.setOnClickListener(new View.OnClickListener() { + /* + * If the external storage is emulated, it will be erased with a factory + * reset at any rate. There is no need to have a separate option until + * we have a factory reset that only erases some directories and not + * others. + */ + if (Environment.isExternalStorageEmulated()) { + mExternalStorageContainer.setVisibility(View.GONE); - @Override - public void onClick(View v) { - mExternalStorage.toggle(); - } - }); + final View externalOption = mContentView.findViewById(R.id.erase_external_option_text); + externalOption.setVisibility(View.GONE); + + final View externalAlsoErased = mContentView.findViewById(R.id.also_erases_external); + externalAlsoErased.setVisibility(View.VISIBLE); + } else { + mExternalStorageContainer.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + mExternalStorage.toggle(); + } + }); + } loadAccountList(); } diff --git a/src/com/android/settings/deviceinfo/Memory.java b/src/com/android/settings/deviceinfo/Memory.java index 1860d6d3388..c3df2d54529 100644 --- a/src/com/android/settings/deviceinfo/Memory.java +++ b/src/com/android/settings/deviceinfo/Memory.java @@ -171,9 +171,7 @@ public class Memory extends SettingsPreferenceFragment implements OnCancelListen mSdMountPreferenceGroup = (PreferenceGroup)findPreference(MEMORY_SD_GROUP); if (Environment.isExternalStorageEmulated()) { - mSdMountPreferenceGroup.removePreference(mSdSize); - mSdMountPreferenceGroup.removePreference(mSdAvail); - mSdMountPreferenceGroup.removePreference(mSdMountToggle); + getPreferenceScreen().removePreference(mSdMountPreferenceGroup); } mInternalSize = findPreference(MEMORY_INTERNAL_SIZE);