Fix bug #15170508 When I initially load settings, all on/off toggles start in off position then move to on after pane loads
- refactor all the code that was using the Switch to control it thru the SwitchBar - start the Switch as View.GONE and make it View.VISIBLE when it is set as "enabled" or "checked" so that you dont see the Switch transition (it shows only with it final state) Change-Id: I382076bf3c819c530b5b2c06ca2429dfb2cdc6bf
This commit is contained in:
@@ -84,10 +84,7 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
|
||||
|
||||
// Default is hide
|
||||
setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
public ToggleSwitch getSwitch() {
|
||||
return mSwitch;
|
||||
mSwitch.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
public void show() {
|
||||
@@ -125,4 +122,39 @@ 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();
|
||||
}
|
||||
}
|
||||
|
@@ -48,6 +48,10 @@ public class ToggleSwitch extends Switch {
|
||||
mOnBeforeListener = listener;
|
||||
}
|
||||
|
||||
public OnBeforeCheckedChangeListener getOnBeforeCheckedChangeListener() {
|
||||
return mOnBeforeListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setChecked(boolean checked) {
|
||||
if (mOnBeforeListener != null
|
||||
|
Reference in New Issue
Block a user