Merge "Fix bug 5205275 - SwitchPreference doesn't allow Switch to slide back and forth."
This commit is contained in:
@@ -41,14 +41,16 @@ public class SwitchPreference extends TwoStatePreference {
|
|||||||
private CharSequence mSwitchOff;
|
private CharSequence mSwitchOff;
|
||||||
private final Listener mListener = new Listener();
|
private final Listener mListener = new Listener();
|
||||||
|
|
||||||
private class Listener implements View.OnClickListener, CompoundButton.OnCheckedChangeListener {
|
private class Listener implements CompoundButton.OnCheckedChangeListener {
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
SwitchPreference.this.onClick();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||||
|
if (!callChangeListener(isChecked)) {
|
||||||
|
// Listener didn't like it, change it back.
|
||||||
|
// CompoundButton will make sure we don't recurse.
|
||||||
|
buttonView.setChecked(!isChecked);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SwitchPreference.this.setChecked(isChecked);
|
SwitchPreference.this.setChecked(isChecked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -111,12 +113,6 @@ public class SwitchPreference extends TwoStatePreference {
|
|||||||
switchView.setTextOff(mSwitchOff);
|
switchView.setTextOff(mSwitchOff);
|
||||||
switchView.setOnCheckedChangeListener(mListener);
|
switchView.setOnCheckedChangeListener(mListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (checkableView.hasFocusable()) {
|
|
||||||
// This is a focusable list item. Attach a click handler to toggle the button
|
|
||||||
// for the rest of the item.
|
|
||||||
view.setOnClickListener(mListener);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
syncSummaryView(view);
|
syncSummaryView(view);
|
||||||
|
|||||||
@@ -22,5 +22,4 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:padding="16dip"
|
android:padding="16dip"
|
||||||
android:focusable="false"
|
android:focusable="false" />
|
||||||
android:clickable="false" />
|
|
||||||
|
|||||||
Reference in New Issue
Block a user