Guarantee views are invisible after being faded (issue 11112570)

-> Prevent clicking of hotseat items during non-normal state
-> Update folder text edit highlight color (issue 11072862)

Change-Id: I0292b51dc5f7e318dc59e9a26bf1e39f333bc8eb
diff --git a/src/com/android/launcher3/Hotseat.java b/src/com/android/launcher3/Hotseat.java
index 1f876fd..2aab64d 100644
--- a/src/com/android/launcher3/Hotseat.java
+++ b/src/com/android/launcher3/Hotseat.java
@@ -25,6 +25,7 @@
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.widget.FrameLayout;
 import android.widget.TextView;
@@ -175,6 +176,16 @@
         }
     }
 
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent ev) {
+        // We don't want any clicks to go through to the hotseat unless the workspace is in
+        // the normal state.
+        if (mLauncher.getWorkspace().isSmall()) {
+            return true;
+        }
+        return false;
+    }
+
     void addAllAppsFolder(IconCache iconCache,
             ArrayList<AppInfo> allApps, ArrayList<ComponentName> onWorkspace,
             Launcher launcher, Workspace workspace) {
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 66d4410..cc585f2 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -17,6 +17,7 @@
 package com.android.launcher3;
 
 import android.animation.Animator;
+import android.animation.Animator.AnimatorListener;
 import android.animation.AnimatorListenerAdapter;
 import android.animation.AnimatorSet;
 import android.animation.LayoutTransition;
@@ -2058,15 +2059,14 @@
             ObjectAnimator overviewPanelAlpha = ObjectAnimator.ofFloat(overviewPanel,
                     "alpha", finalOverviewPanelAlpha);
 
-            overviewPanelAlpha.addUpdateListener(new AlphaUpdateListener(overviewPanel));
-            hotseatAlpha.addUpdateListener(new AlphaUpdateListener(hotseat));
-            searchBarAlpha.addUpdateListener(new AlphaUpdateListener(searchBar));
+            overviewPanelAlpha.addListener(new AlphaUpdateListener(overviewPanel));
+            hotseatAlpha.addListener(new AlphaUpdateListener(hotseat));
+            searchBarAlpha.addListener(new AlphaUpdateListener(searchBar));
 
             if (getPageIndicator() != null) {
-                pageIndicatorAlpha.addUpdateListener(new AlphaUpdateListener(getPageIndicator()));
+                pageIndicatorAlpha.addListener(new AlphaUpdateListener(getPageIndicator()));
             }
 
-
             anim.play(overviewPanelAlpha);
             anim.play(hotseatAlpha);
             anim.play(searchBarAlpha);
@@ -2106,7 +2106,7 @@
         return anim;
     }
 
-    static class AlphaUpdateListener implements AnimatorUpdateListener {
+    static class AlphaUpdateListener implements AnimatorUpdateListener, AnimatorListener {
         View view;
         public AlphaUpdateListener(View v) {
             view = v;
@@ -2128,6 +2128,25 @@
                 view.setVisibility(VISIBLE);
             }
         }
+
+        @Override
+        public void onAnimationCancel(Animator arg0) {
+        }
+
+        @Override
+        public void onAnimationEnd(Animator arg0) {
+            updateVisibility(view);
+        }
+
+        @Override
+        public void onAnimationRepeat(Animator arg0) {
+        }
+
+        @Override
+        public void onAnimationStart(Animator arg0) {
+            // We want the views to be visible for animation, so fade-in/out is visible
+            view.setVisibility(VISIBLE);
+        }
     }
 
     @Override