diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index 94d8a3682b2..1cd08f3990a 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -168,6 +168,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment private WifiManager mWifiManager; private SwitchBar mSwitchBar; + private Switch mEnabledSwitch; private boolean mLastEnabledState; private boolean mHaveDebugSettings; private boolean mDontPokeProperties; @@ -388,8 +389,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment final SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); + mEnabledSwitch = mSwitchBar.getSwitch(); if (mUnavailable) { - mSwitchBar.setSwitchEnabled(false); + mEnabledSwitch.setEnabled(false); return; } } @@ -442,7 +444,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment final ContentResolver cr = getActivity().getContentResolver(); mLastEnabledState = Settings.Global.getInt(cr, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0; - mSwitchBar.setSwitchChecked(mLastEnabledState); + mEnabledSwitch.setChecked(mLastEnabledState); setPrefsEnabledState(mLastEnabledState); if (mHaveDebugSettings && !mLastEnabledState) { @@ -453,7 +455,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment Settings.Global.putInt(getActivity().getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1); mLastEnabledState = true; - mSwitchBar.setSwitchChecked(mLastEnabledState); + mEnabledSwitch.setChecked(mLastEnabledState); setPrefsEnabledState(mLastEnabledState); } @@ -1223,6 +1225,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment @Override public void onSwitchChanged(Switch switchView, boolean isChecked) { + if (switchView != mEnabledSwitch) { + return; + } if (isChecked != mLastEnabledState) { if (isChecked) { mDialogClicked = false; @@ -1477,7 +1482,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment setPrefsEnabledState(mLastEnabledState); } else { // Reset the toggle - mSwitchBar.setSwitchChecked(false); + mEnabledSwitch.setChecked(false); } } } @@ -1491,7 +1496,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment mAdbDialog = null; } else if (dialog == mEnableDialog) { if (!mDialogClicked) { - mSwitchBar.setSwitchChecked(false); + mEnabledSwitch.setChecked(false); } mEnableDialog = null; } diff --git a/src/com/android/settings/DreamSettings.java b/src/com/android/settings/DreamSettings.java index d97e616e1ba..1175639deeb 100644 --- a/src/com/android/settings/DreamSettings.java +++ b/src/com/android/settings/DreamSettings.java @@ -61,6 +61,7 @@ public class DreamSettings extends SettingsPreferenceFragment implements private DreamBackend mBackend; private DreamInfoAdapter mAdapter; private SwitchBar mSwitchBar; + private Switch mSwitch; private MenuItem[] mMenuItemsWhenEnabled; private boolean mRefreshing; @@ -123,6 +124,7 @@ public class DreamSettings extends SettingsPreferenceFragment implements final SettingsActivity sa = (SettingsActivity) getActivity(); mSwitchBar = sa.getSwitchBar(); + mSwitch = mSwitchBar.getSwitch(); } @Override @@ -261,8 +263,8 @@ public class DreamSettings extends SettingsPreferenceFragment implements logd("refreshFromBackend()"); mRefreshing = true; boolean dreamsEnabled = mBackend.isEnabled(); - if (mSwitchBar.isSwitchChecked() != dreamsEnabled) - mSwitchBar.setSwitchChecked(dreamsEnabled); + if (mSwitch.isChecked() != dreamsEnabled) + mSwitch.setChecked(dreamsEnabled); mAdapter.clear(); if (dreamsEnabled) { diff --git a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java b/src/com/android/settings/accessibility/CaptionPropertiesFragment.java index 937f3b79947..5dcf121ebc5 100644 --- a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java +++ b/src/com/android/settings/accessibility/CaptionPropertiesFragment.java @@ -70,6 +70,7 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment private SubtitleView mPreviewText; private View mPreviewWindow; private SwitchBar mSwitchBar; + private ToggleSwitch mToggleSwitch; // Standard options. private LocalePreference mLocale; @@ -131,7 +132,8 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); - mSwitchBar.setSwitchChecked(enabled); + mToggleSwitch = mSwitchBar.getSwitch(); + mToggleSwitch.setCheckedInternal(enabled); mPreviewWindow = view.findViewById(R.id.preview_window); @@ -198,10 +200,10 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment } protected void onInstallSwitchBarToggleSwitch() { - mSwitchBar.setSwitchOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { + mToggleSwitch.setOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { @Override public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) { - mSwitchBar.setSwitchChecked(checked); + toggleSwitch.setCheckedInternal(checked); Settings.Secure.putInt(getActivity().getContentResolver(), Settings.Secure.ACCESSIBILITY_CAPTIONING_ENABLED, checked ? 1 : 0); getPreferenceScreen().setEnabled(checked); @@ -220,7 +222,7 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment private void removeSwitchBarToggleSwitch() { mSwitchBar.hide(); - mSwitchBar.setSwitchOnBeforeCheckedChangeListener(null); + mToggleSwitch.setOnBeforeCheckedChangeListener(null); } private void initializeAllPreferences() { diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java index d18c7f37052..a446f4925ff 100644 --- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java @@ -58,7 +58,7 @@ public class ToggleAccessibilityServicePreferenceFragment String settingValue = Settings.Secure.getString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES); final boolean enabled = settingValue.contains(mComponentName.flattenToString()); - mSwitchBar.setSwitchChecked(enabled); + mToggleSwitch.setCheckedInternal(enabled); } }; @@ -265,13 +265,13 @@ public class ToggleAccessibilityServicePreferenceFragment switch (which) { case DialogInterface.BUTTON_POSITIVE: checked = (mShownDialogId == DIALOG_ID_ENABLE_WARNING); - mSwitchBar.setSwitchChecked(checked); + mToggleSwitch.setCheckedInternal(checked); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked); onPreferenceToggled(mPreferenceKey, checked); break; case DialogInterface.BUTTON_NEGATIVE: checked = (mShownDialogId == DIALOG_ID_DISABLE_WARNING); - mSwitchBar.setSwitchChecked(checked); + mToggleSwitch.setCheckedInternal(checked); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked); onPreferenceToggled(mPreferenceKey, checked); break; @@ -283,15 +283,15 @@ public class ToggleAccessibilityServicePreferenceFragment @Override protected void onInstallSwitchBarToggleSwitch() { super.onInstallSwitchBarToggleSwitch(); - mSwitchBar.setSwitchOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { + mToggleSwitch.setOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { @Override public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) { if (checked) { - mSwitchBar.setSwitchChecked(false); + toggleSwitch.setCheckedInternal(false); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, false); showDialog(DIALOG_ID_ENABLE_WARNING); } else { - mSwitchBar.setSwitchChecked(true); + toggleSwitch.setCheckedInternal(true); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, true); showDialog(DIALOG_ID_DISABLE_WARNING); } diff --git a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java index a39c5d8f1c1..b910f796a8b 100644 --- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java @@ -80,7 +80,7 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF protected void onInstallSwitchBarToggleSwitch() { super.onInstallSwitchBarToggleSwitch(); - mSwitchBar.setSwitchChecked( + mToggleSwitch.setCheckedInternal( Settings.Secure.getInt(getContentResolver(), ENABLED, 0) == 1); mSwitchBar.addOnSwitchChangeListener(this); } diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java index cc812891192..331c0e340dc 100644 --- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java @@ -40,6 +40,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreferenceFragment { protected SwitchBar mSwitchBar; + protected ToggleSwitch mToggleSwitch; protected String mPreferenceKey; protected Preference mSummaryPreference; @@ -88,6 +89,7 @@ public abstract class ToggleFeaturePreferenceFragment SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); + mToggleSwitch = mSwitchBar.getSwitch(); onProcessArguments(getArguments()); } @@ -130,7 +132,7 @@ public abstract class ToggleFeaturePreferenceFragment } private void removeActionBarToggleSwitch() { - mSwitchBar.setSwitchOnBeforeCheckedChangeListener(null); + mToggleSwitch.setOnBeforeCheckedChangeListener(null); onRemoveSwitchBarToggleSwitch(); mSwitchBar.hide(); } @@ -151,7 +153,7 @@ public abstract class ToggleFeaturePreferenceFragment // Enabled. if (arguments.containsKey(AccessibilitySettings.EXTRA_CHECKED)) { final boolean enabled = arguments.getBoolean(AccessibilitySettings.EXTRA_CHECKED); - mSwitchBar.setSwitchChecked(enabled); + mToggleSwitch.setCheckedInternal(enabled); } // Title. diff --git a/src/com/android/settings/accessibility/ToggleGlobalGesturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleGlobalGesturePreferenceFragment.java index d815e503853..782e7a5b294 100644 --- a/src/com/android/settings/accessibility/ToggleGlobalGesturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleGlobalGesturePreferenceFragment.java @@ -32,10 +32,10 @@ public class ToggleGlobalGesturePreferenceFragment @Override protected void onInstallSwitchBarToggleSwitch() { super.onInstallSwitchBarToggleSwitch(); - mSwitchBar.setSwitchOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { + mToggleSwitch.setOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { @Override public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) { - mSwitchBar.setSwitchChecked(checked); + toggleSwitch.setCheckedInternal(checked); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked); onPreferenceToggled(mPreferenceKey, checked); return false; diff --git a/src/com/android/settings/accessibility/ToggleInversionPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleInversionPreferenceFragment.java index 594ed223978..b6d5569b605 100644 --- a/src/com/android/settings/accessibility/ToggleInversionPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleInversionPreferenceFragment.java @@ -71,7 +71,7 @@ public class ToggleInversionPreferenceFragment extends ToggleFeaturePreferenceFr protected void onInstallSwitchBarToggleSwitch() { super.onInstallSwitchBarToggleSwitch(); - mSwitchBar.setSwitchChecked( + mToggleSwitch.setCheckedInternal( Settings.Secure.getInt(getContentResolver(), ENABLED, 0) == 1); mSwitchBar.addOnSwitchChangeListener(this); } diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java index 7c01d0e5fdd..8202a2a25f2 100644 --- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java @@ -32,10 +32,10 @@ public class ToggleScreenMagnificationPreferenceFragment @Override protected void onInstallSwitchBarToggleSwitch() { super.onInstallSwitchBarToggleSwitch(); - mSwitchBar.setSwitchOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { + mToggleSwitch.setOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { @Override public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) { - mSwitchBar.setSwitchChecked(checked); + toggleSwitch.setCheckedInternal(checked); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked); onPreferenceToggled(mPreferenceKey, checked); return false; diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java index 4626ed4c397..be03b638058 100644 --- a/src/com/android/settings/bluetooth/BluetoothEnabler.java +++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java @@ -40,6 +40,7 @@ import com.android.settings.widget.SwitchBar; */ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener { private Context mContext; + private Switch mSwitch; private SwitchBar mSwitchBar; private boolean mValidListener; private final LocalBluetoothAdapter mLocalAdapter; @@ -74,13 +75,14 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener public BluetoothEnabler(Context context, SwitchBar switchBar) { mContext = context; mSwitchBar = switchBar; + mSwitch = switchBar.getSwitch(); mValidListener = false; LocalBluetoothManager manager = LocalBluetoothManager.getInstance(context); if (manager == null) { // Bluetooth is not supported mLocalAdapter = null; - mSwitchBar.setSwitchEnabled(false); + mSwitch.setEnabled(false); } else { mLocalAdapter = manager.getBluetoothAdapter(); } @@ -89,7 +91,7 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener public void resume(Context context) { if (mLocalAdapter == null) { - mSwitchBar.setSwitchEnabled(false); + mSwitch.setEnabled(false); return; } @@ -120,36 +122,36 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener void handleStateChanged(int state) { switch (state) { case BluetoothAdapter.STATE_TURNING_ON: - mSwitchBar.setSwitchEnabled(false); + mSwitch.setEnabled(false); break; case BluetoothAdapter.STATE_ON: setChecked(true); - mSwitchBar.setSwitchEnabled(true); + mSwitch.setEnabled(true); updateSearchIndex(true); break; case BluetoothAdapter.STATE_TURNING_OFF: - mSwitchBar.setSwitchEnabled(false); + mSwitch.setEnabled(false); break; case BluetoothAdapter.STATE_OFF: setChecked(false); - mSwitchBar.setSwitchEnabled(true); + mSwitch.setEnabled(true); updateSearchIndex(false); break; default: setChecked(false); - mSwitchBar.setSwitchEnabled(true); + mSwitch.setEnabled(true); updateSearchIndex(false); } } private void setChecked(boolean isChecked) { - if (isChecked != mSwitchBar.isSwitchChecked()) { + if (isChecked != mSwitch.isChecked()) { // set listener to null, so onCheckedChanged won't be called // if the checked status on Switch isn't changed by user click if (mValidListener) { mSwitchBar.removeOnSwitchChangeListener(this); } - mSwitchBar.setSwitchChecked(isChecked); + mSwitch.setChecked(isChecked); if (mValidListener) { mSwitchBar.addOnSwitchChangeListener(this); } @@ -178,6 +180,6 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener if (mLocalAdapter != null) { mLocalAdapter.setBluetoothEnabled(isChecked); } - mSwitchBar.setSwitchEnabled(false); + mSwitch.setEnabled(false); } } diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java index 6eabf36daed..8794a8dca2a 100644 --- a/src/com/android/settings/location/LocationSettings.java +++ b/src/com/android/settings/location/LocationSettings.java @@ -53,6 +53,7 @@ public class LocationSettings extends LocationSettingsBase private static final String KEY_LOCATION_SERVICES = "location_services"; private SwitchBar mSwitchBar; + private Switch mSwitch; private boolean mValidListener; private Preference mLocationMode; private PreferenceCategory mCategoryRecentLocationRequests; @@ -71,6 +72,7 @@ public class LocationSettings extends LocationSettingsBase final SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); + mSwitch = mSwitchBar.getSwitch(); } @Override @@ -219,16 +221,16 @@ public class LocationSettings extends LocationSettingsBase // corner cases, the location might still be enabled. In such case the master switch should // be disabled but checked. boolean enabled = (mode != android.provider.Settings.Secure.LOCATION_MODE_OFF); - mSwitchBar.setSwitchEnabled(!restricted); + mSwitch.setEnabled(!restricted); mLocationMode.setEnabled(enabled && !restricted); mCategoryRecentLocationRequests.setEnabled(enabled); - if (enabled != mSwitchBar.isSwitchChecked()) { + if (enabled != mSwitch.isChecked()) { // set listener to null so that that code below doesn't trigger onCheckedChanged() if (mValidListener) { mSwitchBar.removeOnSwitchChangeListener(this); } - mSwitchBar.setSwitchChecked(enabled); + mSwitch.setChecked(enabled); if (mValidListener) { mSwitchBar.addOnSwitchChangeListener(this); } diff --git a/src/com/android/settings/nfc/AndroidBeam.java b/src/com/android/settings/nfc/AndroidBeam.java index b63a97525d6..eb3ff9bbce2 100644 --- a/src/com/android/settings/nfc/AndroidBeam.java +++ b/src/com/android/settings/nfc/AndroidBeam.java @@ -33,6 +33,7 @@ public class AndroidBeam extends Fragment private View mView; private NfcAdapter mNfcAdapter; private SwitchBar mSwitchBar; + private Switch mSwitch; private CharSequence mOldActivityTitle; @Override @@ -62,7 +63,8 @@ public class AndroidBeam extends Fragment SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); - mSwitchBar.setSwitchChecked(mNfcAdapter.isNdefPushEnabled()); + mSwitch = mSwitchBar.getSwitch(); + mSwitch.setChecked(mNfcAdapter.isNdefPushEnabled()); } @Override @@ -92,15 +94,15 @@ public class AndroidBeam extends Fragment @Override public void onSwitchChanged(Switch switchView, boolean desiredState) { boolean success = false; - mSwitchBar.setSwitchEnabled(false); + mSwitch.setEnabled(false); if (desiredState) { success = mNfcAdapter.enableNdefPush(); } else { success = mNfcAdapter.disableNdefPush(); } if (success) { - mSwitchBar.setSwitchChecked(desiredState); + mSwitch.setChecked(desiredState); } - mSwitchBar.setSwitchEnabled(true); + mSwitch.setEnabled(true); } } diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java index 6482feb0ca0..e69fe951a9c 100644 --- a/src/com/android/settings/notification/ZenModeSettings.java +++ b/src/com/android/settings/notification/ZenModeSettings.java @@ -103,6 +103,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index private final SettingsObserver mSettingsObserver = new SettingsObserver(); private SwitchBar mSwitchBar; + private Switch mSwitch; private Context mContext; private PackageManager mPM; private ZenModeConfig mConfig; @@ -154,6 +155,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index if (DEBUG) Log.d(TAG, "Loaded mConfig=" + mConfig); mSwitchBar = ((SettingsActivity) mContext).getSwitchBar(); + mSwitch = mSwitchBar.getSwitch(); final PreferenceCategory general = (PreferenceCategory) root.findPreference(KEY_GENERAL); @@ -382,8 +384,8 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index private void updateZenMode() { final boolean zenMode = Global.getInt(getContentResolver(), Global.ZEN_MODE, Global.ZEN_MODE_OFF) != Global.ZEN_MODE_OFF; - if (mSwitchBar.isSwitchChecked() != zenMode) { - mSwitchBar.setSwitchChecked(zenMode); + if (mSwitch.isChecked() != zenMode) { + mSwitch.setChecked(zenMode); mIgnoreNext = true; } } diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java index c1ebcb9d3cb..f104a06d8f9 100644 --- a/src/com/android/settings/print/PrintServiceSettingsFragment.java +++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java @@ -112,6 +112,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment }; private SwitchBar mSwitchBar; + private ToggleSwitch mToggleSwitch; private String mPreferenceKey; @@ -208,13 +209,13 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment switch (which) { case DialogInterface.BUTTON_POSITIVE: checked = true; - mSwitchBar.setSwitchChecked(checked); + mToggleSwitch.setCheckedInternal(checked); getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, checked); onPreferenceToggled(mPreferenceKey, checked); break; case DialogInterface.BUTTON_NEGATIVE: checked = false; - mSwitchBar.setSwitchChecked(checked); + mToggleSwitch.setCheckedInternal(checked); getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, checked); onPreferenceToggled(mPreferenceKey, checked); break; @@ -227,7 +228,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment ListView listView = getListView(); ViewGroup contentRoot = (ViewGroup) listView.getParent(); View emptyView = listView.getEmptyView(); - if (!mSwitchBar.isSwitchChecked()) { + if (!mToggleSwitch.isChecked()) { if (emptyView != null && emptyView.getId() != R.id.empty_print_state) { contentRoot.removeView(emptyView); emptyView = null; @@ -276,10 +277,10 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment List services = PrintSettingsUtils.readEnabledPrintServices(getActivity()); mServiceEnabled = services.contains(mComponentName); if (mServiceEnabled) { - mSwitchBar.setSwitchChecked(true); + mToggleSwitch.setCheckedInternal(true); mPrintersAdapter.enable(); } else { - mSwitchBar.setSwitchChecked(false); + mToggleSwitch.setCheckedInternal(false); mPrintersAdapter.disable(); } getActivity().invalidateOptionsMenu(); @@ -292,12 +293,14 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment final SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); - mSwitchBar.setSwitchOnBeforeCheckedChangeListener(new ToggleSwitch.OnBeforeCheckedChangeListener() { + + mToggleSwitch = mSwitchBar.getSwitch(); + mToggleSwitch.setOnBeforeCheckedChangeListener(new ToggleSwitch.OnBeforeCheckedChangeListener() { @Override public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) { if (checked) { if (!TextUtils.isEmpty(mEnableWarningMessage)) { - mSwitchBar.setSwitchChecked(false); + toggleSwitch.setCheckedInternal(false); getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, false); showDialog(DIALOG_ID_ENABLE_WARNING); return true; @@ -328,7 +331,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment // Enabled. final boolean enabled = arguments.getBoolean(PrintSettingsFragment.EXTRA_CHECKED); - mSwitchBar.setSwitchChecked(enabled); + mToggleSwitch.setCheckedInternal(enabled); // Settings title and intent. String settingsTitle = arguments.getString(PrintSettingsFragment.EXTRA_SETTINGS_TITLE); diff --git a/src/com/android/settings/widget/SwitchBar.java b/src/com/android/settings/widget/SwitchBar.java index 1675f2a4864..40c848103fd 100644 --- a/src/com/android/settings/widget/SwitchBar.java +++ b/src/com/android/settings/widget/SwitchBar.java @@ -84,7 +84,10 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC // Default is hide setVisibility(View.GONE); - mSwitch.setVisibility(View.GONE); + } + + public ToggleSwitch getSwitch() { + return mSwitch; } public void show() { @@ -122,39 +125,4 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC } mSwitchChangeListeners.remove(listener); } - - public void setSwitchOnBeforeCheckedChangeListener( - ToggleSwitch.OnBeforeCheckedChangeListener listener) { - mSwitch.setOnBeforeCheckedChangeListener(listener); - } - - public void setSwitchChecked(boolean checked) { - setSwitchChecked(checked, false); - } - - public void setSwitchChecked(boolean checked, boolean checkBefore) { - if (checkBefore) { - ToggleSwitch.OnBeforeCheckedChangeListener listener = - mSwitch.getOnBeforeCheckedChangeListener(); - if (listener != null && listener.onBeforeCheckedChanged(mSwitch, checked)) { - return; - } - - } - mSwitch.setCheckedInternal(checked); - if (mSwitch.getVisibility() == View.GONE) { - mSwitch.setVisibility(View.VISIBLE); - } - } - - public void setSwitchEnabled(boolean enabled) { - mSwitch.setEnabled(enabled); - if (mSwitch.getVisibility() == View.GONE) { - mSwitch.setVisibility(View.VISIBLE); - } - } - - public boolean isSwitchChecked() { - return mSwitch.isChecked(); - } } diff --git a/src/com/android/settings/widget/ToggleSwitch.java b/src/com/android/settings/widget/ToggleSwitch.java index ab0c37e0367..8232ff1c2ef 100644 --- a/src/com/android/settings/widget/ToggleSwitch.java +++ b/src/com/android/settings/widget/ToggleSwitch.java @@ -48,10 +48,6 @@ public class ToggleSwitch extends Switch { mOnBeforeListener = listener; } - public OnBeforeCheckedChangeListener getOnBeforeCheckedChangeListener() { - return mOnBeforeListener; - } - @Override public void setChecked(boolean checked) { if (mOnBeforeListener != null diff --git a/src/com/android/settings/wifi/WifiEnabler.java b/src/com/android/settings/wifi/WifiEnabler.java index 1e86761f975..9f0b6fa53d4 100644 --- a/src/com/android/settings/wifi/WifiEnabler.java +++ b/src/com/android/settings/wifi/WifiEnabler.java @@ -27,6 +27,7 @@ import android.net.wifi.WifiManager; import android.os.Handler; import android.os.Message; import android.provider.Settings; +import android.widget.CompoundButton; import android.widget.Switch; import android.widget.Toast; @@ -39,6 +40,7 @@ import java.util.concurrent.atomic.AtomicBoolean; public class WifiEnabler implements SwitchBar.OnSwitchChangeListener { private Context mContext; + private Switch mSwitch; private SwitchBar mSwitchBar; private AtomicBoolean mConnected = new AtomicBoolean(false); @@ -85,6 +87,7 @@ public class WifiEnabler implements SwitchBar.OnSwitchChangeListener { public WifiEnabler(Context context, SwitchBar switchBar) { mContext = context; mSwitchBar = switchBar; + mSwitch = switchBar.getSwitch(); mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION); @@ -110,24 +113,24 @@ public class WifiEnabler implements SwitchBar.OnSwitchChangeListener { private void handleWifiStateChanged(int state) { switch (state) { case WifiManager.WIFI_STATE_ENABLING: - mSwitchBar.setSwitchEnabled(false); + mSwitch.setEnabled(false); break; case WifiManager.WIFI_STATE_ENABLED: setSwitchChecked(true); - mSwitchBar.setSwitchEnabled(true); + mSwitch.setEnabled(true); updateSearchIndex(true); break; case WifiManager.WIFI_STATE_DISABLING: - mSwitchBar.setSwitchEnabled(false); + mSwitch.setEnabled(false); break; case WifiManager.WIFI_STATE_DISABLED: setSwitchChecked(false); - mSwitchBar.setSwitchEnabled(true); + mSwitch.setEnabled(true); updateSearchIndex(false); break; default: setSwitchChecked(false); - mSwitchBar.setSwitchEnabled(true); + mSwitch.setEnabled(true); updateSearchIndex(false); } } @@ -142,9 +145,9 @@ public class WifiEnabler implements SwitchBar.OnSwitchChangeListener { } private void setSwitchChecked(boolean checked) { - if (checked != mSwitchBar.isSwitchChecked()) { + if (checked != mSwitch.isChecked()) { mStateMachineEvent = true; - mSwitchBar.setSwitchChecked(checked); + mSwitch.setChecked(checked); mStateMachineEvent = false; } } @@ -186,10 +189,10 @@ public class WifiEnabler implements SwitchBar.OnSwitchChangeListener { mWifiManager.setWifiApEnabled(null, false); } - mSwitchBar.setSwitchEnabled(false); + mSwitch.setEnabled(false); if (!mWifiManager.setWifiEnabled(isChecked)) { // Error - mSwitchBar.setSwitchEnabled(true); + mSwitch.setEnabled(true); Toast.makeText(mContext, R.string.wifi_error, Toast.LENGTH_SHORT).show(); } }