OSDN Git Service

Fix bug 5112702 - switches should have "ON" on the right
authorAdam Powell <adamp@google.com>
Mon, 8 Aug 2011 01:03:39 +0000 (18:03 -0700)
committerAdam Powell <adamp@google.com>
Mon, 8 Aug 2011 01:03:39 +0000 (18:03 -0700)
Make Switches obey the Grand Unified Theory of Button Ordering.
This also matches their behavior with volume/brightness sliders.

Change-Id: I4e72801e81b10002542a05f61c99a57991f130ff

core/java/android/widget/Switch.java

index 57f73ac..9ac170d 100644 (file)
@@ -507,13 +507,13 @@ public class Switch extends CompoundButton {
     }
 
     private boolean getTargetCheckedState() {
-        return mThumbPosition <= getThumbScrollRange() / 2;
+        return mThumbPosition >= getThumbScrollRange() / 2;
     }
 
     @Override
     public void setChecked(boolean checked) {
         super.setChecked(checked);
-        mThumbPosition = checked ? 0 : getThumbScrollRange();
+        mThumbPosition = checked ? getThumbScrollRange() : 0;
         invalidate();
     }
 
@@ -521,7 +521,7 @@ public class Switch extends CompoundButton {
     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
         super.onLayout(changed, left, top, right, bottom);
 
-        mThumbPosition = isChecked() ? 0 : getThumbScrollRange();
+        mThumbPosition = isChecked() ? getThumbScrollRange() : 0;
 
         int switchRight = getWidth() - getPaddingRight();
         int switchLeft = switchRight - mSwitchWidth;