Merge "Skip user restriction check on desktop" into main
diff --git a/res/xml/power_usage_advanced.xml b/res/xml/power_usage_advanced.xml
index f2c3d87..3258b7b 100644
--- a/res/xml/power_usage_advanced.xml
+++ b/res/xml/power_usage_advanced.xml
@@ -59,16 +59,15 @@
<com.android.settingslib.widget.SettingsSpinnerPreference
android:key="battery_usage_spinner"
+ android:order="0"
settings:isPreferenceVisible="false" />
- <PreferenceCategory
- android:key="app_list"
- android:layout="@layout/preference_category_no_label"
- settings:isPreferenceVisible="false" />
+ <!-- App usage preference list will be added here with the order in range [100, 1000). -->
<com.android.settingslib.widget.FooterPreference
android:key="battery_usage_footer"
android:selectable="false"
+ android:order="1000"
settings:isPreferenceVisible="false"
settings:searchable="false" />
diff --git a/src/com/android/settings/fuelgauge/batteryusage/AnomalyAppItemPreference.java b/src/com/android/settings/fuelgauge/batteryusage/AnomalyAppItemPreference.java
index 2f139ec..592d308 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/AnomalyAppItemPreference.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/AnomalyAppItemPreference.java
@@ -16,6 +16,7 @@
package com.android.settings.fuelgauge.batteryusage;
+import android.annotation.Nullable;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
@@ -37,7 +38,7 @@
setLayoutResource(R.layout.anomaly_app_item_preference);
}
- void setAnomalyHint(CharSequence anomalyHintText) {
+ void setAnomalyHint(@Nullable CharSequence anomalyHintText) {
if (!TextUtils.equals(mAnomalyHintText, anomalyHintText)) {
mAnomalyHintText = anomalyHintText;
notifyChanged();
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
index 09940b3..6fd4eb5 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
@@ -31,7 +31,6 @@
import android.widget.AdapterView;
import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
@@ -68,11 +67,11 @@
private static final String ROOT_PREFERENCE_KEY = "battery_usage_breakdown";
private static final String FOOTER_PREFERENCE_KEY = "battery_usage_footer";
private static final String SPINNER_PREFERENCE_KEY = "battery_usage_spinner";
- private static final String APP_LIST_PREFERENCE_KEY = "app_list";
private static final String PACKAGE_NAME_NONE = "none";
private static final String SLOT_TIMESTAMP = "slot_timestamp";
private static final String ANOMALY_KEY = "anomaly_key";
private static final String KEY_SPINNER_POSITION = "spinner_position";
+ private static final int ENTRY_PREF_ORDER_OFFSET = 100;
private static final List<BatteryDiffEntry> EMPTY_ENTRY_LIST = new ArrayList<>();
private static int sUiMode = Configuration.UI_MODE_NIGHT_UNDEFINED;
@@ -89,8 +88,7 @@
private SettingsSpinnerAdapter<CharSequence> mSpinnerAdapter;
@VisibleForTesting Context mPrefContext;
- @VisibleForTesting PreferenceCategory mRootPreference;
- @VisibleForTesting PreferenceGroup mAppListPreferenceGroup;
+ @VisibleForTesting PreferenceGroup mRootPreferenceGroup;
@VisibleForTesting FooterPreference mFooterPreference;
@VisibleForTesting BatteryDiffData mBatteryDiffData;
@VisibleForTesting String mBatteryUsageBreakdownTitleLastFullChargeText;
@@ -143,7 +141,7 @@
public void onDestroy() {
mHandler.removeCallbacksAndMessages(/* token= */ null);
mPreferenceCache.clear();
- mAppListPreferenceGroup.removeAll();
+ mRootPreferenceGroup.removeAll();
}
@Override
@@ -226,9 +224,8 @@
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mPrefContext = screen.getContext();
- mRootPreference = screen.findPreference(ROOT_PREFERENCE_KEY);
+ mRootPreferenceGroup = screen.findPreference(ROOT_PREFERENCE_KEY);
mSpinnerPreference = screen.findPreference(SPINNER_PREFERENCE_KEY);
- mAppListPreferenceGroup = screen.findPreference(APP_LIST_PREFERENCE_KEY);
mFooterPreference = screen.findPreference(FOOTER_PREFERENCE_KEY);
mBatteryUsageBreakdownTitleLastFullChargeText =
mPrefContext.getString(
@@ -242,7 +239,7 @@
R.string.battery_usage_less_than_percent_content_description,
formatPercentage);
- mAppListPreferenceGroup.setOrderingAsAdded(false);
+ mRootPreferenceGroup.setOrderingAsAdded(false);
mSpinnerAdapter = new SettingsSpinnerAdapter<>(mPrefContext);
mSpinnerAdapter.addAll(
new String[] {
@@ -328,8 +325,9 @@
: mPrefContext.getString(
R.string.battery_usage_breakdown_title_for_slot,
accessibilitySlotTimestamp);
- mRootPreference.setTitle(Utils.createAccessibleSequence(displayTitle, accessibilityTitle));
- mRootPreference.setVisible(true);
+ mRootPreferenceGroup.setTitle(
+ Utils.createAccessibleSequence(displayTitle, accessibilityTitle));
+ mRootPreferenceGroup.setVisible(true);
}
private void showFooterPreference(boolean isAllBatteryUsageEmpty) {
@@ -350,7 +348,6 @@
return;
}
mSpinnerPreference.setVisible(true);
- mAppListPreferenceGroup.setVisible(true);
mHandler.post(
() -> {
removeAndCacheAllUnusedPreferences();
@@ -374,7 +371,7 @@
}
final long start = System.currentTimeMillis();
final List<BatteryDiffEntry> entries = getBatteryDiffEntries();
- int prefIndex = mAppListPreferenceGroup.getPreferenceCount();
+ int preferenceOrder = ENTRY_PREF_ORDER_OFFSET;
for (BatteryDiffEntry entry : entries) {
boolean isAdded = false;
final String appLabel = entry.getAppLabel();
@@ -384,33 +381,32 @@
continue;
}
final String prefKey = entry.getKey();
- AnomalyAppItemPreference pref = mAppListPreferenceGroup.findPreference(prefKey);
- if (pref != null) {
+ AnomalyAppItemPreference preference = mRootPreferenceGroup.findPreference(prefKey);
+ if (preference != null) {
isAdded = true;
} else {
- pref = (AnomalyAppItemPreference) mPreferenceCache.get(prefKey);
+ preference = (AnomalyAppItemPreference) mPreferenceCache.get(prefKey);
}
// Creates new instance if cached preference is not found.
- if (pref == null) {
- pref = new AnomalyAppItemPreference(mPrefContext);
- pref.setKey(prefKey);
- mPreferenceCache.put(prefKey, pref);
+ if (preference == null) {
+ preference = new AnomalyAppItemPreference(mPrefContext);
+ preference.setKey(prefKey);
+ mPreferenceCache.put(prefKey, preference);
}
- pref.setIcon(appIcon);
- pref.setTitle(appLabel);
- pref.setOrder(prefIndex);
- pref.setSingleLineTitle(true);
+ preference.setIcon(appIcon);
+ preference.setTitle(appLabel);
+ preference.setOrder(++preferenceOrder);
+ preference.setSingleLineTitle(true);
// Updates App item preference style
- pref.setAnomalyHint(isAnomalyBatteryDiffEntry(entry) ? mAnomalyHintString : null);
+ preference.setAnomalyHint(isAnomalyBatteryDiffEntry(entry) ? mAnomalyHintString : null);
// Sets the BatteryDiffEntry to preference for launching detailed page.
- pref.setBatteryDiffEntry(entry);
- pref.setSelectable(entry.validForRestriction());
- setPreferencePercentage(pref, entry);
- setPreferenceSummary(pref, entry);
+ preference.setBatteryDiffEntry(entry);
+ preference.setSelectable(entry.validForRestriction());
+ setPreferencePercentage(preference, entry);
+ setPreferenceSummary(preference, entry);
if (!isAdded) {
- mAppListPreferenceGroup.addPreference(pref);
+ mRootPreferenceGroup.addPreference(preference);
}
- prefIndex++;
}
Log.d(
TAG,
@@ -424,17 +420,22 @@
List<BatteryDiffEntry> entries = getBatteryDiffEntries();
Set<String> entryKeySet = new ArraySet<>(entries.size());
entries.forEach(entry -> entryKeySet.add(entry.getKey()));
- final int prefsCount = mAppListPreferenceGroup.getPreferenceCount();
- for (int index = prefsCount - 1; index >= 0; index--) {
- final Preference pref = mAppListPreferenceGroup.getPreference(index);
- if (entryKeySet.contains(pref.getKey())) {
- // The pref is still used, don't remove.
+ final int preferenceCount = mRootPreferenceGroup.getPreferenceCount();
+ for (int index = preferenceCount - 1; index >= 0; index--) {
+ final Preference preference = mRootPreferenceGroup.getPreference(index);
+ if ((preference instanceof SettingsSpinnerPreference)
+ || (preference instanceof FooterPreference)) {
+ // Consider the app preference only and skip others
continue;
}
- if (!TextUtils.isEmpty(pref.getKey())) {
- mPreferenceCache.put(pref.getKey(), pref);
+ if (entryKeySet.contains(preference.getKey())) {
+ // Don't remove the preference if it is still in use
+ continue;
}
- mAppListPreferenceGroup.removePreference(pref);
+ if (!TextUtils.isEmpty(preference.getKey())) {
+ mPreferenceCache.put(preference.getKey(), preference);
+ }
+ mRootPreferenceGroup.removePreference(preference);
}
}
diff --git a/src/com/android/settings/network/AirplaneModePreference.kt b/src/com/android/settings/network/AirplaneModePreference.kt
index 5b7903c..2d9fbe9 100644
--- a/src/com/android/settings/network/AirplaneModePreference.kt
+++ b/src/com/android/settings/network/AirplaneModePreference.kt
@@ -18,7 +18,7 @@
import android.content.Context
import android.content.pm.PackageManager
-import android.provider.Settings.Global.AIRPLANE_MODE_ON
+import android.provider.Settings
import androidx.annotation.DrawableRes
import com.android.settings.R
import com.android.settingslib.datastore.SettingsGlobalStore
@@ -27,7 +27,7 @@
// LINT.IfChange
class AirplaneModePreference :
- SwitchPreference(AIRPLANE_MODE_ON, R.string.airplane_mode),
+ SwitchPreference(KEY, R.string.airplane_mode),
PreferenceAvailabilityProvider {
override val icon: Int
@@ -38,5 +38,9 @@
override fun isAvailable(context: Context) =
(context.resources.getBoolean(R.bool.config_show_toggle_airplane)
&& !context.packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK))
+
+ companion object {
+ const val KEY = Settings.Global.AIRPLANE_MODE_ON
+ }
}
// LINT.ThenChange(AirplaneModePreferenceController.java)
diff --git a/src/com/android/settings/network/AirplaneModePreferenceController.java b/src/com/android/settings/network/AirplaneModePreferenceController.java
index 430feb1..ca8595f 100644
--- a/src/com/android/settings/network/AirplaneModePreferenceController.java
+++ b/src/com/android/settings/network/AirplaneModePreferenceController.java
@@ -15,8 +15,6 @@
*/
package com.android.settings.network;
-import static android.provider.SettingsSlicesContract.KEY_AIRPLANE_MODE;
-
import static com.android.settings.network.SatelliteWarningDialogActivity.EXTRA_TYPE_OF_SATELLITE_WARNING_DIALOG;
import static com.android.settings.network.SatelliteWarningDialogActivity.TYPE_IS_AIRPLANE_MODE;
@@ -95,7 +93,7 @@
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
- if (KEY_AIRPLANE_MODE.equals(preference.getKey()) && isAvailable()) {
+ if (AirplaneModePreference.KEY.equals(preference.getKey()) && isAvailable()) {
// In ECM mode launch ECM app dialog
if (mAirplaneModeEnabler.isInEcmMode()) {
if (mFragment != null) {
diff --git a/src/com/android/settings/system/reset/ResetNetworkConfirm.kt b/src/com/android/settings/system/reset/ResetNetworkConfirm.kt
index b353f69..3412825 100644
--- a/src/com/android/settings/system/reset/ResetNetworkConfirm.kt
+++ b/src/com/android/settings/system/reset/ResetNetworkConfirm.kt
@@ -21,6 +21,7 @@
import android.content.DialogInterface
import android.os.Bundle
import android.os.Looper
+import android.telecom.TelecomManager
import android.telephony.SubscriptionManager
import android.util.Log
import android.view.LayoutInflater
@@ -89,7 +90,12 @@
/** Configure the UI for the final confirmation interaction */
private fun View.establishFinalConfirmationState() {
requireViewById<View>(R.id.execute_reset_network).setOnClickListener {
- showResetInternetDialog();
+ val tm = context.getSystemService(TelecomManager::class.java)
+ if (tm != null && tm.isInCall) {
+ showResetInternetDialog();
+ } else {
+ onResetClicked()
+ }
}
}
@@ -138,9 +144,13 @@
* settings to its factory-default state.
*/
@VisibleForTesting
- suspend fun onResetClicked() {
- showProgressDialog()
- resetNetwork()
+ fun onResetClicked() {
+ if (!Utils.isMonkeyRunning() && !resetStarted) {
+ resetStarted = true
+ viewLifecycleOwner.lifecycleScope.launch {
+ showProgressDialog()
+ resetNetwork() }
+ }
}
private fun showProgressDialog() {
@@ -165,10 +175,7 @@
val builder = AlertDialog.Builder(requireContext())
val resetInternetClickListener =
DialogInterface.OnClickListener { dialog, which ->
- if (!Utils.isMonkeyRunning() && !resetStarted) {
- resetStarted = true
- viewLifecycleOwner.lifecycleScope.launch { onResetClicked() }
- }
+ onResetClicked()
}
builder.setTitle(R.string.reset_your_internet_title)
diff --git a/tests/componenttests/src/com/android/settings/network/AirplaneModePreferenceControllerComponentTest.java b/tests/componenttests/src/com/android/settings/network/AirplaneModePreferenceControllerComponentTest.java
index 27e67e5..9617cfd 100644
--- a/tests/componenttests/src/com/android/settings/network/AirplaneModePreferenceControllerComponentTest.java
+++ b/tests/componenttests/src/com/android/settings/network/AirplaneModePreferenceControllerComponentTest.java
@@ -20,7 +20,6 @@
import android.app.Instrumentation;
import android.provider.Settings;
-import android.provider.SettingsSlicesContract;
import android.util.Log;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -64,7 +63,7 @@
public void test_on_off_airplane_mode_multiple_times() {
AirplaneModePreferenceController controller =
new AirplaneModePreferenceController(mInstrumentation.getTargetContext(),
- SettingsSlicesContract.KEY_AIRPLANE_MODE);
+ AirplaneModePreference.KEY);
for (int i = 0; i < 10; ++i) {
Log.d(TAG, "Test #" + (i + 1));
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
index 85fc6e2..c4cbb98 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
@@ -59,11 +59,12 @@
private static final String PREF_KEY2 = "pref_key2";
private static final String PREF_SUMMARY = "fake preference summary";
private static final String KEY_SPINNER_POSITION = "spinner_position";
- private static final long TIME_LESS_THAN_HALF_MINUTE = DateUtils.MINUTE_IN_MILLIS / 2 - 1;
+ private static final int ENTRY_PREF_ORDER_OFFSET = 100;
+ private static final long TIME_LESS_THAN_HALF_MINUTE = DateUtils.MINUTE_IN_MILLIS / 2 - 1;
@Mock private InstrumentedPreferenceFragment mFragment;
@Mock private SettingsActivity mSettingsActivity;
- @Mock private PreferenceGroup mAppListPreferenceGroup;
+ @Mock private PreferenceGroup mRootPreferenceGroup;
@Mock private Drawable mDrawable;
@Mock private BatteryHistEntry mBatteryHistEntry;
@Mock private AnomalyAppItemPreference mAnomalyAppItemPreference;
@@ -90,7 +91,7 @@
.when(mFeatureFactory.powerUsageFeatureProvider)
.getHideApplicationSet();
mBatteryUsageBreakdownController = createController();
- mBatteryUsageBreakdownController.mAppListPreferenceGroup = mAppListPreferenceGroup;
+ mBatteryUsageBreakdownController.mRootPreferenceGroup = mRootPreferenceGroup;
mBatteryDiffEntry =
new BatteryDiffEntry(
mContext,
@@ -130,7 +131,7 @@
BatteryDiffEntry.sResourceCache.put(
"fakeBatteryDiffEntryKey",
new BatteryEntry.NameAndIcon("fakeName", /* icon= */ null, /* iconId= */ 1));
- doReturn(mAnomalyAppItemPreference).when(mAppListPreferenceGroup).findPreference(PREF_KEY);
+ doReturn(mAnomalyAppItemPreference).when(mRootPreferenceGroup).findPreference(PREF_KEY);
}
@Test
@@ -147,7 +148,7 @@
@Test
public void onDestroy_removeAllPreferenceFromPreferenceGroup() {
mBatteryUsageBreakdownController.onDestroy();
- verify(mAppListPreferenceGroup).removeAll();
+ verify(mRootPreferenceGroup).removeAll();
}
@Test
@@ -162,11 +163,11 @@
@Test
public void addAllPreferences_addAllPreferences() {
final String appLabel = "fake app label";
- doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
+ doReturn(1).when(mRootPreferenceGroup).getPreferenceCount();
doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon();
doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel();
doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
- doReturn(null).when(mAppListPreferenceGroup).findPreference(PREF_KEY);
+ doReturn(null).when(mRootPreferenceGroup).findPreference(PREF_KEY);
doReturn(false).when(mBatteryDiffEntry).validForRestriction();
mBatteryUsageBreakdownController.addAllPreferences();
@@ -177,11 +178,11 @@
mBatteryUsageBreakdownController.mPreferenceCache.get(PREF_KEY);
assertThat(pref).isNotNull();
// Verifies the added preference configuration.
- verify(mAppListPreferenceGroup).addPreference(pref);
+ verify(mRootPreferenceGroup).addPreference(pref);
assertThat(pref.getKey()).isEqualTo(PREF_KEY);
assertThat(pref.getTitle().toString()).isEqualTo(appLabel);
assertThat(pref.getIcon()).isEqualTo(mDrawable);
- assertThat(pref.getOrder()).isEqualTo(1);
+ assertThat(pref.getOrder()).isEqualTo(ENTRY_PREF_ORDER_OFFSET + 1);
assertThat(pref.getBatteryDiffEntry()).isSameInstanceAs(mBatteryDiffEntry);
assertThat(pref.isSingleLineTitle()).isTrue();
assertThat(pref.isSelectable()).isFalse();
@@ -190,20 +191,20 @@
@Test
public void addPreferenceToScreen_alreadyInScreen_notAddPreferenceAgain() {
final String appLabel = "fake app label";
- doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
+ doReturn(1).when(mRootPreferenceGroup).getPreferenceCount();
doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon();
doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel();
doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
mBatteryUsageBreakdownController.addAllPreferences();
- verify(mAppListPreferenceGroup, never()).addPreference(any());
+ verify(mRootPreferenceGroup, never()).addPreference(any());
}
@Test
public void removeAndCacheAllUnusedPreferences_removePref_buildCacheAndRemoveAllPreference() {
- doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
- doReturn(mAnomalyAppItemPreference).when(mAppListPreferenceGroup).getPreference(0);
+ doReturn(1).when(mRootPreferenceGroup).getPreferenceCount();
+ doReturn(mAnomalyAppItemPreference).when(mRootPreferenceGroup).getPreference(0);
doReturn(PREF_KEY2).when(mBatteryHistEntry).getKey();
doReturn(PREF_KEY).when(mAnomalyAppItemPreference).getKey();
// Ensures the testing data is correct.
@@ -213,13 +214,13 @@
assertThat(mBatteryUsageBreakdownController.mPreferenceCache.get(PREF_KEY))
.isEqualTo(mAnomalyAppItemPreference);
- verify(mAppListPreferenceGroup).removePreference(mAnomalyAppItemPreference);
+ verify(mRootPreferenceGroup).removePreference(mAnomalyAppItemPreference);
}
@Test
public void removeAndCacheAllUnusedPreferences_keepPref_KeepAllPreference() {
- doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
- doReturn(mAnomalyAppItemPreference).when(mAppListPreferenceGroup).getPreference(0);
+ doReturn(1).when(mRootPreferenceGroup).getPreferenceCount();
+ doReturn(mAnomalyAppItemPreference).when(mRootPreferenceGroup).getPreference(0);
doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
doReturn(PREF_KEY).when(mAnomalyAppItemPreference).getKey();
// Ensures the testing data is correct.
@@ -227,15 +228,13 @@
mBatteryUsageBreakdownController.removeAndCacheAllUnusedPreferences();
- verify(mAppListPreferenceGroup, never()).removePreference(any());
+ verify(mRootPreferenceGroup, never()).removePreference(any());
assertThat(mBatteryUsageBreakdownController.mPreferenceCache).isEmpty();
}
@Test
public void handlePreferenceTreeClick_notPowerGaugePreference_returnFalse() {
- assertThat(
- mBatteryUsageBreakdownController.handlePreferenceTreeClick(
- mAppListPreferenceGroup))
+ assertThat(mBatteryUsageBreakdownController.handlePreferenceTreeClick(mRootPreferenceGroup))
.isFalse();
verify(mMetricsFeatureProvider, never())
diff --git a/tests/unit/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java
index 7612805..2205929 100644
--- a/tests/unit/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java
@@ -16,8 +16,6 @@
package com.android.settings.network;
-import static android.provider.SettingsSlicesContract.KEY_AIRPLANE_MODE;
-
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -78,12 +76,12 @@
mResolver = mContext.getContentResolver();
doReturn(mPackageManager).when(mContext).getPackageManager();
mController = new AirplaneModePreferenceController(mContext,
- KEY_AIRPLANE_MODE);
+ AirplaneModePreference.KEY);
mPreferenceManager = new PreferenceManager(mContext);
mScreen = mPreferenceManager.createPreferenceScreen(mContext);
mPreference = new RestrictedSwitchPreference(mContext);
- mPreference.setKey(KEY_AIRPLANE_MODE);
+ mPreference.setKey(AirplaneModePreference.KEY);
mScreen.addPreference(mPreference);
mController.setFragment(null);
}