From f02db01ba6c255cffee5a334cd1b0ee7e01f116c Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Wed, 14 May 2014 20:14:27 -0700 Subject: [PATCH] Use SwitchBar for Development Settings - follow up CL to 41937766981423c9252e12e3319b2e7532739627 Related to bug #14898161 On/Off switches must move down from Action Bar Change-Id: I2db49f9d982e4d759f7eeb3623c95cbe53a5ff53 --- .../android/settings/DevelopmentSettings.java | 71 +++++++++---------- 1 file changed, 32 insertions(+), 39 deletions(-) diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index bc783301cba..d21e4ab0fe5 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -66,6 +66,7 @@ import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import com.android.settings.widget.SwitchBar; import dalvik.system.VMRuntime; import java.io.File; @@ -78,7 +79,7 @@ import java.util.List; */ public class DevelopmentSettings extends SettingsPreferenceFragment implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener, - OnPreferenceChangeListener, CompoundButton.OnCheckedChangeListener { + OnPreferenceChangeListener, SwitchBar.OnSwitchChangeListener { private static final String TAG = "DevelopmentSettings"; /** @@ -163,6 +164,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment private DevicePolicyManager mDpm; private UserManager mUm; + private SwitchBar mSwitchBar; private Switch mEnabledSwitch; private boolean mLastEnabledState; private boolean mHaveDebugSettings; @@ -377,37 +379,27 @@ public class DevelopmentSettings extends SettingsPreferenceFragment public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - final Activity activity = getActivity(); - mEnabledSwitch = new Switch(activity.getActionBar().getThemedContext()); + final SettingsActivity activity = (SettingsActivity) getActivity(); - final int padding = activity.getResources().getDimensionPixelSize( - R.dimen.action_bar_switch_padding); - mEnabledSwitch.setPaddingRelative(0, 0, padding, 0); + mSwitchBar = activity.getSwitchBar(); + mEnabledSwitch = mSwitchBar.getSwitch(); if (mUnavailable) { mEnabledSwitch.setEnabled(false); return; } - mEnabledSwitch.setOnCheckedChangeListener(this); + mSwitchBar.addOnSwitchChangeListener(this); } @Override public void onStart() { super.onStart(); - final Activity activity = getActivity(); - activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, - ActionBar.DISPLAY_SHOW_CUSTOM); - activity.getActionBar().setCustomView(mEnabledSwitch, new ActionBar.LayoutParams( - ActionBar.LayoutParams.WRAP_CONTENT, - ActionBar.LayoutParams.WRAP_CONTENT, - Gravity.CENTER_VERTICAL | Gravity.END)); + mSwitchBar.show(); } @Override public void onStop() { super.onStop(); - final Activity activity = getActivity(); - activity.getActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_CUSTOM); - activity.getActionBar().setCustomView(null); + mSwitchBar.hide(); } private boolean removePreferenceForProduction(Preference preference) { @@ -1217,28 +1209,29 @@ public class DevelopmentSettings extends SettingsPreferenceFragment } @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if (buttonView == mEnabledSwitch) { - if (isChecked != mLastEnabledState) { - if (isChecked) { - mDialogClicked = false; - if (mEnableDialog != null) dismissDialogs(); - mEnableDialog = new AlertDialog.Builder(getActivity()).setMessage( - getActivity().getResources().getString( - R.string.dev_settings_warning_message)) - .setTitle(R.string.dev_settings_warning_title) - .setIconAttribute(android.R.attr.alertDialogIcon) - .setPositiveButton(android.R.string.yes, this) - .setNegativeButton(android.R.string.no, this) - .show(); - mEnableDialog.setOnDismissListener(this); - } else { - resetDangerousOptions(); - Settings.Global.putInt(getActivity().getContentResolver(), - Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0); - mLastEnabledState = isChecked; - setPrefsEnabledState(mLastEnabledState); - } + public void onSwitchChanged(Switch switchView, boolean isChecked) { + if (switchView != mEnabledSwitch) { + return; + } + if (isChecked != mLastEnabledState) { + if (isChecked) { + mDialogClicked = false; + if (mEnableDialog != null) dismissDialogs(); + mEnableDialog = new AlertDialog.Builder(getActivity()).setMessage( + getActivity().getResources().getString( + R.string.dev_settings_warning_message)) + .setTitle(R.string.dev_settings_warning_title) + .setIconAttribute(android.R.attr.alertDialogIcon) + .setPositiveButton(android.R.string.yes, this) + .setNegativeButton(android.R.string.no, this) + .show(); + mEnableDialog.setOnDismissListener(this); + } else { + resetDangerousOptions(); + Settings.Global.putInt(getActivity().getContentResolver(), + Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0); + mLastEnabledState = isChecked; + setPrefsEnabledState(mLastEnabledState); } } }