Merge "Override View.drawableStateChanged to detect state_pressed"
diff --git a/java/src/com/android/inputmethod/latin/setup/SetupStartIndicatorView.java b/java/src/com/android/inputmethod/latin/setup/SetupStartIndicatorView.java
index ca974f6..974dfdd 100644
--- a/java/src/com/android/inputmethod/latin/setup/SetupStartIndicatorView.java
+++ b/java/src/com/android/inputmethod/latin/setup/SetupStartIndicatorView.java
@@ -51,11 +51,32 @@
             mIndicatorView = indicatorView;
         }
 
+        // TODO: Once we stop supporting ICS, uncomment {@link #setPressed(boolean)} method and
+        // remove this method.
         @Override
-        public void setPressed(final boolean pressed) {
-            super.setPressed(pressed);
+        protected void drawableStateChanged() {
+            super.drawableStateChanged();
+            for (final int state : getDrawableState()) {
+                if (state == android.R.attr.state_pressed) {
+                    updateIndicatorView(true /* pressed */);
+                    return;
+                }
+            }
+            updateIndicatorView(false /* pressed */);
+        }
+
+        // TODO: Once we stop supporting ICS, uncomment this method and remove
+        // {@link #drawableStateChanged()} method.
+//        @Override
+//        public void setPressed(final boolean pressed) {
+//            super.setPressed(pressed);
+//            updateIndicatorView(pressed);
+//        }
+
+        private void updateIndicatorView(final boolean pressed) {
             if (mIndicatorView != null) {
                 mIndicatorView.setPressed(pressed);
+                mIndicatorView.invalidate();
             }
         }
     }
@@ -73,12 +94,6 @@
         }
 
         @Override
-        public void setPressed(final boolean pressed) {
-            super.setPressed(pressed);
-            invalidate();
-        }
-
-        @Override
         protected void onDraw(final Canvas canvas) {
             super.onDraw(canvas);
             final int layoutDirection = ViewCompatUtils.getLayoutDirection(this);