This CL is not working (even after careful testing) but when I tried I was not completely ToT.

Revert "Fix bug #15170508 When I initially load settings, all on/off toggles start in off position then move to on after pane loads"

This reverts commit 1e52db8063.

Change-Id: I73bdfeba4a4b3e993e37cdae1e3733ffe272b9eb
This commit is contained in:
Fabrice Di Meglio
2014-05-28 17:36:21 +00:00
parent 1e52db8063
commit 00b5e6b247
17 changed files with 90 additions and 101 deletions

View File

@@ -168,6 +168,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
private WifiManager mWifiManager; private WifiManager mWifiManager;
private SwitchBar mSwitchBar; private SwitchBar mSwitchBar;
private Switch mEnabledSwitch;
private boolean mLastEnabledState; private boolean mLastEnabledState;
private boolean mHaveDebugSettings; private boolean mHaveDebugSettings;
private boolean mDontPokeProperties; private boolean mDontPokeProperties;
@@ -388,8 +389,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
final SettingsActivity activity = (SettingsActivity) getActivity(); final SettingsActivity activity = (SettingsActivity) getActivity();
mSwitchBar = activity.getSwitchBar(); mSwitchBar = activity.getSwitchBar();
mEnabledSwitch = mSwitchBar.getSwitch();
if (mUnavailable) { if (mUnavailable) {
mSwitchBar.setSwitchEnabled(false); mEnabledSwitch.setEnabled(false);
return; return;
} }
} }
@@ -442,7 +444,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
final ContentResolver cr = getActivity().getContentResolver(); final ContentResolver cr = getActivity().getContentResolver();
mLastEnabledState = Settings.Global.getInt(cr, mLastEnabledState = Settings.Global.getInt(cr,
Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0; Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
mSwitchBar.setSwitchChecked(mLastEnabledState); mEnabledSwitch.setChecked(mLastEnabledState);
setPrefsEnabledState(mLastEnabledState); setPrefsEnabledState(mLastEnabledState);
if (mHaveDebugSettings && !mLastEnabledState) { if (mHaveDebugSettings && !mLastEnabledState) {
@@ -453,7 +455,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
Settings.Global.putInt(getActivity().getContentResolver(), Settings.Global.putInt(getActivity().getContentResolver(),
Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1); Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
mLastEnabledState = true; mLastEnabledState = true;
mSwitchBar.setSwitchChecked(mLastEnabledState); mEnabledSwitch.setChecked(mLastEnabledState);
setPrefsEnabledState(mLastEnabledState); setPrefsEnabledState(mLastEnabledState);
} }
@@ -1223,6 +1225,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
@Override @Override
public void onSwitchChanged(Switch switchView, boolean isChecked) { public void onSwitchChanged(Switch switchView, boolean isChecked) {
if (switchView != mEnabledSwitch) {
return;
}
if (isChecked != mLastEnabledState) { if (isChecked != mLastEnabledState) {
if (isChecked) { if (isChecked) {
mDialogClicked = false; mDialogClicked = false;
@@ -1477,7 +1482,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
setPrefsEnabledState(mLastEnabledState); setPrefsEnabledState(mLastEnabledState);
} else { } else {
// Reset the toggle // Reset the toggle
mSwitchBar.setSwitchChecked(false); mEnabledSwitch.setChecked(false);
} }
} }
} }
@@ -1491,7 +1496,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
mAdbDialog = null; mAdbDialog = null;
} else if (dialog == mEnableDialog) { } else if (dialog == mEnableDialog) {
if (!mDialogClicked) { if (!mDialogClicked) {
mSwitchBar.setSwitchChecked(false); mEnabledSwitch.setChecked(false);
} }
mEnableDialog = null; mEnableDialog = null;
} }

View File

@@ -61,6 +61,7 @@ public class DreamSettings extends SettingsPreferenceFragment implements
private DreamBackend mBackend; private DreamBackend mBackend;
private DreamInfoAdapter mAdapter; private DreamInfoAdapter mAdapter;
private SwitchBar mSwitchBar; private SwitchBar mSwitchBar;
private Switch mSwitch;
private MenuItem[] mMenuItemsWhenEnabled; private MenuItem[] mMenuItemsWhenEnabled;
private boolean mRefreshing; private boolean mRefreshing;
@@ -123,6 +124,7 @@ public class DreamSettings extends SettingsPreferenceFragment implements
final SettingsActivity sa = (SettingsActivity) getActivity(); final SettingsActivity sa = (SettingsActivity) getActivity();
mSwitchBar = sa.getSwitchBar(); mSwitchBar = sa.getSwitchBar();
mSwitch = mSwitchBar.getSwitch();
} }
@Override @Override
@@ -261,8 +263,8 @@ public class DreamSettings extends SettingsPreferenceFragment implements
logd("refreshFromBackend()"); logd("refreshFromBackend()");
mRefreshing = true; mRefreshing = true;
boolean dreamsEnabled = mBackend.isEnabled(); boolean dreamsEnabled = mBackend.isEnabled();
if (mSwitchBar.isSwitchChecked() != dreamsEnabled) if (mSwitch.isChecked() != dreamsEnabled)
mSwitchBar.setSwitchChecked(dreamsEnabled); mSwitch.setChecked(dreamsEnabled);
mAdapter.clear(); mAdapter.clear();
if (dreamsEnabled) { if (dreamsEnabled) {

View File

@@ -70,6 +70,7 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
private SubtitleView mPreviewText; private SubtitleView mPreviewText;
private View mPreviewWindow; private View mPreviewWindow;
private SwitchBar mSwitchBar; private SwitchBar mSwitchBar;
private ToggleSwitch mToggleSwitch;
// Standard options. // Standard options.
private LocalePreference mLocale; private LocalePreference mLocale;
@@ -131,7 +132,8 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
SettingsActivity activity = (SettingsActivity) getActivity(); SettingsActivity activity = (SettingsActivity) getActivity();
mSwitchBar = activity.getSwitchBar(); mSwitchBar = activity.getSwitchBar();
mSwitchBar.setSwitchChecked(enabled); mToggleSwitch = mSwitchBar.getSwitch();
mToggleSwitch.setCheckedInternal(enabled);
mPreviewWindow = view.findViewById(R.id.preview_window); mPreviewWindow = view.findViewById(R.id.preview_window);
@@ -198,10 +200,10 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
} }
protected void onInstallSwitchBarToggleSwitch() { protected void onInstallSwitchBarToggleSwitch() {
mSwitchBar.setSwitchOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { mToggleSwitch.setOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() {
@Override @Override
public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) { public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) {
mSwitchBar.setSwitchChecked(checked); toggleSwitch.setCheckedInternal(checked);
Settings.Secure.putInt(getActivity().getContentResolver(), Settings.Secure.putInt(getActivity().getContentResolver(),
Settings.Secure.ACCESSIBILITY_CAPTIONING_ENABLED, checked ? 1 : 0); Settings.Secure.ACCESSIBILITY_CAPTIONING_ENABLED, checked ? 1 : 0);
getPreferenceScreen().setEnabled(checked); getPreferenceScreen().setEnabled(checked);
@@ -220,7 +222,7 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
private void removeSwitchBarToggleSwitch() { private void removeSwitchBarToggleSwitch() {
mSwitchBar.hide(); mSwitchBar.hide();
mSwitchBar.setSwitchOnBeforeCheckedChangeListener(null); mToggleSwitch.setOnBeforeCheckedChangeListener(null);
} }
private void initializeAllPreferences() { private void initializeAllPreferences() {

View File

@@ -58,7 +58,7 @@ public class ToggleAccessibilityServicePreferenceFragment
String settingValue = Settings.Secure.getString(getContentResolver(), String settingValue = Settings.Secure.getString(getContentResolver(),
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES); Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
final boolean enabled = settingValue.contains(mComponentName.flattenToString()); final boolean enabled = settingValue.contains(mComponentName.flattenToString());
mSwitchBar.setSwitchChecked(enabled); mToggleSwitch.setCheckedInternal(enabled);
} }
}; };
@@ -265,13 +265,13 @@ public class ToggleAccessibilityServicePreferenceFragment
switch (which) { switch (which) {
case DialogInterface.BUTTON_POSITIVE: case DialogInterface.BUTTON_POSITIVE:
checked = (mShownDialogId == DIALOG_ID_ENABLE_WARNING); checked = (mShownDialogId == DIALOG_ID_ENABLE_WARNING);
mSwitchBar.setSwitchChecked(checked); mToggleSwitch.setCheckedInternal(checked);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked);
onPreferenceToggled(mPreferenceKey, checked); onPreferenceToggled(mPreferenceKey, checked);
break; break;
case DialogInterface.BUTTON_NEGATIVE: case DialogInterface.BUTTON_NEGATIVE:
checked = (mShownDialogId == DIALOG_ID_DISABLE_WARNING); checked = (mShownDialogId == DIALOG_ID_DISABLE_WARNING);
mSwitchBar.setSwitchChecked(checked); mToggleSwitch.setCheckedInternal(checked);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked);
onPreferenceToggled(mPreferenceKey, checked); onPreferenceToggled(mPreferenceKey, checked);
break; break;
@@ -283,15 +283,15 @@ public class ToggleAccessibilityServicePreferenceFragment
@Override @Override
protected void onInstallSwitchBarToggleSwitch() { protected void onInstallSwitchBarToggleSwitch() {
super.onInstallSwitchBarToggleSwitch(); super.onInstallSwitchBarToggleSwitch();
mSwitchBar.setSwitchOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { mToggleSwitch.setOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() {
@Override @Override
public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) { public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) {
if (checked) { if (checked) {
mSwitchBar.setSwitchChecked(false); toggleSwitch.setCheckedInternal(false);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, false); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, false);
showDialog(DIALOG_ID_ENABLE_WARNING); showDialog(DIALOG_ID_ENABLE_WARNING);
} else { } else {
mSwitchBar.setSwitchChecked(true); toggleSwitch.setCheckedInternal(true);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, true); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, true);
showDialog(DIALOG_ID_DISABLE_WARNING); showDialog(DIALOG_ID_DISABLE_WARNING);
} }

View File

@@ -80,7 +80,7 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
protected void onInstallSwitchBarToggleSwitch() { protected void onInstallSwitchBarToggleSwitch() {
super.onInstallSwitchBarToggleSwitch(); super.onInstallSwitchBarToggleSwitch();
mSwitchBar.setSwitchChecked( mToggleSwitch.setCheckedInternal(
Settings.Secure.getInt(getContentResolver(), ENABLED, 0) == 1); Settings.Secure.getInt(getContentResolver(), ENABLED, 0) == 1);
mSwitchBar.addOnSwitchChangeListener(this); mSwitchBar.addOnSwitchChangeListener(this);
} }

View File

@@ -40,6 +40,7 @@ public abstract class ToggleFeaturePreferenceFragment
extends SettingsPreferenceFragment { extends SettingsPreferenceFragment {
protected SwitchBar mSwitchBar; protected SwitchBar mSwitchBar;
protected ToggleSwitch mToggleSwitch;
protected String mPreferenceKey; protected String mPreferenceKey;
protected Preference mSummaryPreference; protected Preference mSummaryPreference;
@@ -88,6 +89,7 @@ public abstract class ToggleFeaturePreferenceFragment
SettingsActivity activity = (SettingsActivity) getActivity(); SettingsActivity activity = (SettingsActivity) getActivity();
mSwitchBar = activity.getSwitchBar(); mSwitchBar = activity.getSwitchBar();
mToggleSwitch = mSwitchBar.getSwitch();
onProcessArguments(getArguments()); onProcessArguments(getArguments());
} }
@@ -130,7 +132,7 @@ public abstract class ToggleFeaturePreferenceFragment
} }
private void removeActionBarToggleSwitch() { private void removeActionBarToggleSwitch() {
mSwitchBar.setSwitchOnBeforeCheckedChangeListener(null); mToggleSwitch.setOnBeforeCheckedChangeListener(null);
onRemoveSwitchBarToggleSwitch(); onRemoveSwitchBarToggleSwitch();
mSwitchBar.hide(); mSwitchBar.hide();
} }
@@ -151,7 +153,7 @@ public abstract class ToggleFeaturePreferenceFragment
// Enabled. // Enabled.
if (arguments.containsKey(AccessibilitySettings.EXTRA_CHECKED)) { if (arguments.containsKey(AccessibilitySettings.EXTRA_CHECKED)) {
final boolean enabled = arguments.getBoolean(AccessibilitySettings.EXTRA_CHECKED); final boolean enabled = arguments.getBoolean(AccessibilitySettings.EXTRA_CHECKED);
mSwitchBar.setSwitchChecked(enabled); mToggleSwitch.setCheckedInternal(enabled);
} }
// Title. // Title.

View File

@@ -32,10 +32,10 @@ public class ToggleGlobalGesturePreferenceFragment
@Override @Override
protected void onInstallSwitchBarToggleSwitch() { protected void onInstallSwitchBarToggleSwitch() {
super.onInstallSwitchBarToggleSwitch(); super.onInstallSwitchBarToggleSwitch();
mSwitchBar.setSwitchOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { mToggleSwitch.setOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() {
@Override @Override
public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) { public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) {
mSwitchBar.setSwitchChecked(checked); toggleSwitch.setCheckedInternal(checked);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked);
onPreferenceToggled(mPreferenceKey, checked); onPreferenceToggled(mPreferenceKey, checked);
return false; return false;

View File

@@ -71,7 +71,7 @@ public class ToggleInversionPreferenceFragment extends ToggleFeaturePreferenceFr
protected void onInstallSwitchBarToggleSwitch() { protected void onInstallSwitchBarToggleSwitch() {
super.onInstallSwitchBarToggleSwitch(); super.onInstallSwitchBarToggleSwitch();
mSwitchBar.setSwitchChecked( mToggleSwitch.setCheckedInternal(
Settings.Secure.getInt(getContentResolver(), ENABLED, 0) == 1); Settings.Secure.getInt(getContentResolver(), ENABLED, 0) == 1);
mSwitchBar.addOnSwitchChangeListener(this); mSwitchBar.addOnSwitchChangeListener(this);
} }

View File

@@ -32,10 +32,10 @@ public class ToggleScreenMagnificationPreferenceFragment
@Override @Override
protected void onInstallSwitchBarToggleSwitch() { protected void onInstallSwitchBarToggleSwitch() {
super.onInstallSwitchBarToggleSwitch(); super.onInstallSwitchBarToggleSwitch();
mSwitchBar.setSwitchOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { mToggleSwitch.setOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() {
@Override @Override
public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) { public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) {
mSwitchBar.setSwitchChecked(checked); toggleSwitch.setCheckedInternal(checked);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked); getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked);
onPreferenceToggled(mPreferenceKey, checked); onPreferenceToggled(mPreferenceKey, checked);
return false; return false;

View File

@@ -40,6 +40,7 @@ import com.android.settings.widget.SwitchBar;
*/ */
public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener { public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener {
private Context mContext; private Context mContext;
private Switch mSwitch;
private SwitchBar mSwitchBar; private SwitchBar mSwitchBar;
private boolean mValidListener; private boolean mValidListener;
private final LocalBluetoothAdapter mLocalAdapter; private final LocalBluetoothAdapter mLocalAdapter;
@@ -74,13 +75,14 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener
public BluetoothEnabler(Context context, SwitchBar switchBar) { public BluetoothEnabler(Context context, SwitchBar switchBar) {
mContext = context; mContext = context;
mSwitchBar = switchBar; mSwitchBar = switchBar;
mSwitch = switchBar.getSwitch();
mValidListener = false; mValidListener = false;
LocalBluetoothManager manager = LocalBluetoothManager.getInstance(context); LocalBluetoothManager manager = LocalBluetoothManager.getInstance(context);
if (manager == null) { if (manager == null) {
// Bluetooth is not supported // Bluetooth is not supported
mLocalAdapter = null; mLocalAdapter = null;
mSwitchBar.setSwitchEnabled(false); mSwitch.setEnabled(false);
} else { } else {
mLocalAdapter = manager.getBluetoothAdapter(); mLocalAdapter = manager.getBluetoothAdapter();
} }
@@ -89,7 +91,7 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener
public void resume(Context context) { public void resume(Context context) {
if (mLocalAdapter == null) { if (mLocalAdapter == null) {
mSwitchBar.setSwitchEnabled(false); mSwitch.setEnabled(false);
return; return;
} }
@@ -120,36 +122,36 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener
void handleStateChanged(int state) { void handleStateChanged(int state) {
switch (state) { switch (state) {
case BluetoothAdapter.STATE_TURNING_ON: case BluetoothAdapter.STATE_TURNING_ON:
mSwitchBar.setSwitchEnabled(false); mSwitch.setEnabled(false);
break; break;
case BluetoothAdapter.STATE_ON: case BluetoothAdapter.STATE_ON:
setChecked(true); setChecked(true);
mSwitchBar.setSwitchEnabled(true); mSwitch.setEnabled(true);
updateSearchIndex(true); updateSearchIndex(true);
break; break;
case BluetoothAdapter.STATE_TURNING_OFF: case BluetoothAdapter.STATE_TURNING_OFF:
mSwitchBar.setSwitchEnabled(false); mSwitch.setEnabled(false);
break; break;
case BluetoothAdapter.STATE_OFF: case BluetoothAdapter.STATE_OFF:
setChecked(false); setChecked(false);
mSwitchBar.setSwitchEnabled(true); mSwitch.setEnabled(true);
updateSearchIndex(false); updateSearchIndex(false);
break; break;
default: default:
setChecked(false); setChecked(false);
mSwitchBar.setSwitchEnabled(true); mSwitch.setEnabled(true);
updateSearchIndex(false); updateSearchIndex(false);
} }
} }
private void setChecked(boolean isChecked) { private void setChecked(boolean isChecked) {
if (isChecked != mSwitchBar.isSwitchChecked()) { if (isChecked != mSwitch.isChecked()) {
// set listener to null, so onCheckedChanged won't be called // set listener to null, so onCheckedChanged won't be called
// if the checked status on Switch isn't changed by user click // if the checked status on Switch isn't changed by user click
if (mValidListener) { if (mValidListener) {
mSwitchBar.removeOnSwitchChangeListener(this); mSwitchBar.removeOnSwitchChangeListener(this);
} }
mSwitchBar.setSwitchChecked(isChecked); mSwitch.setChecked(isChecked);
if (mValidListener) { if (mValidListener) {
mSwitchBar.addOnSwitchChangeListener(this); mSwitchBar.addOnSwitchChangeListener(this);
} }
@@ -178,6 +180,6 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener
if (mLocalAdapter != null) { if (mLocalAdapter != null) {
mLocalAdapter.setBluetoothEnabled(isChecked); mLocalAdapter.setBluetoothEnabled(isChecked);
} }
mSwitchBar.setSwitchEnabled(false); mSwitch.setEnabled(false);
} }
} }

View File

@@ -53,6 +53,7 @@ public class LocationSettings extends LocationSettingsBase
private static final String KEY_LOCATION_SERVICES = "location_services"; private static final String KEY_LOCATION_SERVICES = "location_services";
private SwitchBar mSwitchBar; private SwitchBar mSwitchBar;
private Switch mSwitch;
private boolean mValidListener; private boolean mValidListener;
private Preference mLocationMode; private Preference mLocationMode;
private PreferenceCategory mCategoryRecentLocationRequests; private PreferenceCategory mCategoryRecentLocationRequests;
@@ -71,6 +72,7 @@ public class LocationSettings extends LocationSettingsBase
final SettingsActivity activity = (SettingsActivity) getActivity(); final SettingsActivity activity = (SettingsActivity) getActivity();
mSwitchBar = activity.getSwitchBar(); mSwitchBar = activity.getSwitchBar();
mSwitch = mSwitchBar.getSwitch();
} }
@Override @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 // corner cases, the location might still be enabled. In such case the master switch should
// be disabled but checked. // be disabled but checked.
boolean enabled = (mode != android.provider.Settings.Secure.LOCATION_MODE_OFF); boolean enabled = (mode != android.provider.Settings.Secure.LOCATION_MODE_OFF);
mSwitchBar.setSwitchEnabled(!restricted); mSwitch.setEnabled(!restricted);
mLocationMode.setEnabled(enabled && !restricted); mLocationMode.setEnabled(enabled && !restricted);
mCategoryRecentLocationRequests.setEnabled(enabled); mCategoryRecentLocationRequests.setEnabled(enabled);
if (enabled != mSwitchBar.isSwitchChecked()) { if (enabled != mSwitch.isChecked()) {
// set listener to null so that that code below doesn't trigger onCheckedChanged() // set listener to null so that that code below doesn't trigger onCheckedChanged()
if (mValidListener) { if (mValidListener) {
mSwitchBar.removeOnSwitchChangeListener(this); mSwitchBar.removeOnSwitchChangeListener(this);
} }
mSwitchBar.setSwitchChecked(enabled); mSwitch.setChecked(enabled);
if (mValidListener) { if (mValidListener) {
mSwitchBar.addOnSwitchChangeListener(this); mSwitchBar.addOnSwitchChangeListener(this);
} }

View File

@@ -33,6 +33,7 @@ public class AndroidBeam extends Fragment
private View mView; private View mView;
private NfcAdapter mNfcAdapter; private NfcAdapter mNfcAdapter;
private SwitchBar mSwitchBar; private SwitchBar mSwitchBar;
private Switch mSwitch;
private CharSequence mOldActivityTitle; private CharSequence mOldActivityTitle;
@Override @Override
@@ -62,7 +63,8 @@ public class AndroidBeam extends Fragment
SettingsActivity activity = (SettingsActivity) getActivity(); SettingsActivity activity = (SettingsActivity) getActivity();
mSwitchBar = activity.getSwitchBar(); mSwitchBar = activity.getSwitchBar();
mSwitchBar.setSwitchChecked(mNfcAdapter.isNdefPushEnabled()); mSwitch = mSwitchBar.getSwitch();
mSwitch.setChecked(mNfcAdapter.isNdefPushEnabled());
} }
@Override @Override
@@ -92,15 +94,15 @@ public class AndroidBeam extends Fragment
@Override @Override
public void onSwitchChanged(Switch switchView, boolean desiredState) { public void onSwitchChanged(Switch switchView, boolean desiredState) {
boolean success = false; boolean success = false;
mSwitchBar.setSwitchEnabled(false); mSwitch.setEnabled(false);
if (desiredState) { if (desiredState) {
success = mNfcAdapter.enableNdefPush(); success = mNfcAdapter.enableNdefPush();
} else { } else {
success = mNfcAdapter.disableNdefPush(); success = mNfcAdapter.disableNdefPush();
} }
if (success) { if (success) {
mSwitchBar.setSwitchChecked(desiredState); mSwitch.setChecked(desiredState);
} }
mSwitchBar.setSwitchEnabled(true); mSwitch.setEnabled(true);
} }
} }

View File

@@ -103,6 +103,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index
private final SettingsObserver mSettingsObserver = new SettingsObserver(); private final SettingsObserver mSettingsObserver = new SettingsObserver();
private SwitchBar mSwitchBar; private SwitchBar mSwitchBar;
private Switch mSwitch;
private Context mContext; private Context mContext;
private PackageManager mPM; private PackageManager mPM;
private ZenModeConfig mConfig; private ZenModeConfig mConfig;
@@ -154,6 +155,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index
if (DEBUG) Log.d(TAG, "Loaded mConfig=" + mConfig); if (DEBUG) Log.d(TAG, "Loaded mConfig=" + mConfig);
mSwitchBar = ((SettingsActivity) mContext).getSwitchBar(); mSwitchBar = ((SettingsActivity) mContext).getSwitchBar();
mSwitch = mSwitchBar.getSwitch();
final PreferenceCategory general = (PreferenceCategory) root.findPreference(KEY_GENERAL); final PreferenceCategory general = (PreferenceCategory) root.findPreference(KEY_GENERAL);
@@ -382,8 +384,8 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index
private void updateZenMode() { private void updateZenMode() {
final boolean zenMode = Global.getInt(getContentResolver(), final boolean zenMode = Global.getInt(getContentResolver(),
Global.ZEN_MODE, Global.ZEN_MODE_OFF) != Global.ZEN_MODE_OFF; Global.ZEN_MODE, Global.ZEN_MODE_OFF) != Global.ZEN_MODE_OFF;
if (mSwitchBar.isSwitchChecked() != zenMode) { if (mSwitch.isChecked() != zenMode) {
mSwitchBar.setSwitchChecked(zenMode); mSwitch.setChecked(zenMode);
mIgnoreNext = true; mIgnoreNext = true;
} }
} }

View File

@@ -112,6 +112,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
}; };
private SwitchBar mSwitchBar; private SwitchBar mSwitchBar;
private ToggleSwitch mToggleSwitch;
private String mPreferenceKey; private String mPreferenceKey;
@@ -208,13 +209,13 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
switch (which) { switch (which) {
case DialogInterface.BUTTON_POSITIVE: case DialogInterface.BUTTON_POSITIVE:
checked = true; checked = true;
mSwitchBar.setSwitchChecked(checked); mToggleSwitch.setCheckedInternal(checked);
getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, checked); getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, checked);
onPreferenceToggled(mPreferenceKey, checked); onPreferenceToggled(mPreferenceKey, checked);
break; break;
case DialogInterface.BUTTON_NEGATIVE: case DialogInterface.BUTTON_NEGATIVE:
checked = false; checked = false;
mSwitchBar.setSwitchChecked(checked); mToggleSwitch.setCheckedInternal(checked);
getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, checked); getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, checked);
onPreferenceToggled(mPreferenceKey, checked); onPreferenceToggled(mPreferenceKey, checked);
break; break;
@@ -227,7 +228,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
ListView listView = getListView(); ListView listView = getListView();
ViewGroup contentRoot = (ViewGroup) listView.getParent(); ViewGroup contentRoot = (ViewGroup) listView.getParent();
View emptyView = listView.getEmptyView(); View emptyView = listView.getEmptyView();
if (!mSwitchBar.isSwitchChecked()) { if (!mToggleSwitch.isChecked()) {
if (emptyView != null && emptyView.getId() != R.id.empty_print_state) { if (emptyView != null && emptyView.getId() != R.id.empty_print_state) {
contentRoot.removeView(emptyView); contentRoot.removeView(emptyView);
emptyView = null; emptyView = null;
@@ -276,10 +277,10 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
List<ComponentName> services = PrintSettingsUtils.readEnabledPrintServices(getActivity()); List<ComponentName> services = PrintSettingsUtils.readEnabledPrintServices(getActivity());
mServiceEnabled = services.contains(mComponentName); mServiceEnabled = services.contains(mComponentName);
if (mServiceEnabled) { if (mServiceEnabled) {
mSwitchBar.setSwitchChecked(true); mToggleSwitch.setCheckedInternal(true);
mPrintersAdapter.enable(); mPrintersAdapter.enable();
} else { } else {
mSwitchBar.setSwitchChecked(false); mToggleSwitch.setCheckedInternal(false);
mPrintersAdapter.disable(); mPrintersAdapter.disable();
} }
getActivity().invalidateOptionsMenu(); getActivity().invalidateOptionsMenu();
@@ -292,12 +293,14 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
final SettingsActivity activity = (SettingsActivity) getActivity(); final SettingsActivity activity = (SettingsActivity) getActivity();
mSwitchBar = activity.getSwitchBar(); mSwitchBar = activity.getSwitchBar();
mSwitchBar.setSwitchOnBeforeCheckedChangeListener(new ToggleSwitch.OnBeforeCheckedChangeListener() {
mToggleSwitch = mSwitchBar.getSwitch();
mToggleSwitch.setOnBeforeCheckedChangeListener(new ToggleSwitch.OnBeforeCheckedChangeListener() {
@Override @Override
public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) { public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) {
if (checked) { if (checked) {
if (!TextUtils.isEmpty(mEnableWarningMessage)) { if (!TextUtils.isEmpty(mEnableWarningMessage)) {
mSwitchBar.setSwitchChecked(false); toggleSwitch.setCheckedInternal(false);
getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, false); getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, false);
showDialog(DIALOG_ID_ENABLE_WARNING); showDialog(DIALOG_ID_ENABLE_WARNING);
return true; return true;
@@ -328,7 +331,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
// Enabled. // Enabled.
final boolean enabled = arguments.getBoolean(PrintSettingsFragment.EXTRA_CHECKED); final boolean enabled = arguments.getBoolean(PrintSettingsFragment.EXTRA_CHECKED);
mSwitchBar.setSwitchChecked(enabled); mToggleSwitch.setCheckedInternal(enabled);
// Settings title and intent. // Settings title and intent.
String settingsTitle = arguments.getString(PrintSettingsFragment.EXTRA_SETTINGS_TITLE); String settingsTitle = arguments.getString(PrintSettingsFragment.EXTRA_SETTINGS_TITLE);

View File

@@ -84,7 +84,10 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
// Default is hide // Default is hide
setVisibility(View.GONE); setVisibility(View.GONE);
mSwitch.setVisibility(View.GONE); }
public ToggleSwitch getSwitch() {
return mSwitch;
} }
public void show() { public void show() {
@@ -122,39 +125,4 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
} }
mSwitchChangeListeners.remove(listener); 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();
}
} }

View File

@@ -48,10 +48,6 @@ public class ToggleSwitch extends Switch {
mOnBeforeListener = listener; mOnBeforeListener = listener;
} }
public OnBeforeCheckedChangeListener getOnBeforeCheckedChangeListener() {
return mOnBeforeListener;
}
@Override @Override
public void setChecked(boolean checked) { public void setChecked(boolean checked) {
if (mOnBeforeListener != null if (mOnBeforeListener != null

View File

@@ -27,6 +27,7 @@ import android.net.wifi.WifiManager;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.provider.Settings; import android.provider.Settings;
import android.widget.CompoundButton;
import android.widget.Switch; import android.widget.Switch;
import android.widget.Toast; import android.widget.Toast;
@@ -39,6 +40,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
public class WifiEnabler implements SwitchBar.OnSwitchChangeListener { public class WifiEnabler implements SwitchBar.OnSwitchChangeListener {
private Context mContext; private Context mContext;
private Switch mSwitch;
private SwitchBar mSwitchBar; private SwitchBar mSwitchBar;
private AtomicBoolean mConnected = new AtomicBoolean(false); private AtomicBoolean mConnected = new AtomicBoolean(false);
@@ -85,6 +87,7 @@ public class WifiEnabler implements SwitchBar.OnSwitchChangeListener {
public WifiEnabler(Context context, SwitchBar switchBar) { public WifiEnabler(Context context, SwitchBar switchBar) {
mContext = context; mContext = context;
mSwitchBar = switchBar; mSwitchBar = switchBar;
mSwitch = switchBar.getSwitch();
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION); mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);
@@ -110,24 +113,24 @@ public class WifiEnabler implements SwitchBar.OnSwitchChangeListener {
private void handleWifiStateChanged(int state) { private void handleWifiStateChanged(int state) {
switch (state) { switch (state) {
case WifiManager.WIFI_STATE_ENABLING: case WifiManager.WIFI_STATE_ENABLING:
mSwitchBar.setSwitchEnabled(false); mSwitch.setEnabled(false);
break; break;
case WifiManager.WIFI_STATE_ENABLED: case WifiManager.WIFI_STATE_ENABLED:
setSwitchChecked(true); setSwitchChecked(true);
mSwitchBar.setSwitchEnabled(true); mSwitch.setEnabled(true);
updateSearchIndex(true); updateSearchIndex(true);
break; break;
case WifiManager.WIFI_STATE_DISABLING: case WifiManager.WIFI_STATE_DISABLING:
mSwitchBar.setSwitchEnabled(false); mSwitch.setEnabled(false);
break; break;
case WifiManager.WIFI_STATE_DISABLED: case WifiManager.WIFI_STATE_DISABLED:
setSwitchChecked(false); setSwitchChecked(false);
mSwitchBar.setSwitchEnabled(true); mSwitch.setEnabled(true);
updateSearchIndex(false); updateSearchIndex(false);
break; break;
default: default:
setSwitchChecked(false); setSwitchChecked(false);
mSwitchBar.setSwitchEnabled(true); mSwitch.setEnabled(true);
updateSearchIndex(false); updateSearchIndex(false);
} }
} }
@@ -142,9 +145,9 @@ public class WifiEnabler implements SwitchBar.OnSwitchChangeListener {
} }
private void setSwitchChecked(boolean checked) { private void setSwitchChecked(boolean checked) {
if (checked != mSwitchBar.isSwitchChecked()) { if (checked != mSwitch.isChecked()) {
mStateMachineEvent = true; mStateMachineEvent = true;
mSwitchBar.setSwitchChecked(checked); mSwitch.setChecked(checked);
mStateMachineEvent = false; mStateMachineEvent = false;
} }
} }
@@ -186,10 +189,10 @@ public class WifiEnabler implements SwitchBar.OnSwitchChangeListener {
mWifiManager.setWifiApEnabled(null, false); mWifiManager.setWifiApEnabled(null, false);
} }
mSwitchBar.setSwitchEnabled(false); mSwitch.setEnabled(false);
if (!mWifiManager.setWifiEnabled(isChecked)) { if (!mWifiManager.setWifiEnabled(isChecked)) {
// Error // Error
mSwitchBar.setSwitchEnabled(true); mSwitch.setEnabled(true);
Toast.makeText(mContext, R.string.wifi_error, Toast.LENGTH_SHORT).show(); Toast.makeText(mContext, R.string.wifi_error, Toast.LENGTH_SHORT).show();
} }
} }