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
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="@string/master_clear_desc" />
+ <TextView android:id="@+id/also_erases_external"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ android:textSize="18sp"
+ android:text="@string/master_clear_desc_also_erases_external" />
<TextView android:id="@+id/accounts_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" />
- <TextView
+ <TextView android:id="@+id/erase_external_option_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
<string name="master_clear_desc" product="default">"This will erase all data from your phone\'s <b>internal storage</b>, including:\n\n<li>Your Google account</li>\n<li>System and application data and settings</li>\n<li>Downloaded applications"</li></string>
<!-- SD card & phone storage settings screen, instructions and list of current accounts. The list of accounts follows this text[CHAR LIMIT=NONE] -->
<string name="master_clear_accounts" product="default">"\n\nYou are currently signed into the following accounts:\n"</string>
+ <!-- SD card & phone storage settings screen, list of items in user data storage (USB storage or SD card) that will be erased during this operation [CHAR LIMIT=NONE] -->
+ <string name="master_clear_desc_also_erases_external">"<li>Music</li>\n<li>Photos</li>\n<li>Other user data</li>"</string>
<!-- SD card & phone storage settings screen, instructions about whether to also erase the external storage (SD card) when erasing the internal storage [CHAR LIMIT=NONE] -->
<string name="master_clear_desc_erase_external_storage" product="nosdcard">"\n\nTo also clear music, pictures, and other user data, the <b>USB storage</b> needs to be erased."</string>
<!-- SD card & phone storage settings screen, instructions about whether to also erase the external storage (SD card) when erasing the internal storage [CHAR LIMIT=NONE] -->
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;
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();
}
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);