Use correct checked value when animating Switch

BUG: 16984959
Change-Id: I1b4ffea568619663e26c097a28b86579d090c0ce
diff --git a/core/java/android/widget/Switch.java b/core/java/android/widget/Switch.java
index 682f2ae..8b97329 100644
--- a/core/java/android/widget/Switch.java
+++ b/core/java/android/widget/Switch.java
@@ -833,6 +833,10 @@
     public void setChecked(boolean checked) {
         super.setChecked(checked);
 
+        // Calling the super method may result in setChecked() getting called
+        // recursively with a different value, so load the REAL value...
+        checked = isChecked();
+
         if (isAttachedToWindow() && isLaidOut()) {
             animateThumbToCheckedState(checked);
         } else {