OSDN Git Service

Making sure CustomContent is never visible during overview / springloaded
authorAdam Cohen <adamcohen@google.com>
Mon, 16 Sep 2013 23:52:59 +0000 (16:52 -0700)
committerAdam Cohen <adamcohen@google.com>
Mon, 16 Sep 2013 23:53:18 +0000 (16:53 -0700)
Change-Id: I187f7fcfbd4e24e20959c9e0cf5fd5400d006f45

src/com/android/launcher3/PagedView.java
src/com/android/launcher3/Workspace.java

index dcb71d2..0b0c4b9 100644 (file)
@@ -1079,7 +1079,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
     }
 
     protected boolean shouldDrawChild(View child) {
-        return child.getAlpha() > 0;
+        return child.getAlpha() > 0 && child.getVisibility() == VISIBLE;
     }
 
     @Override
@@ -1546,22 +1546,10 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
         getOverviewModePages(mTempVisiblePagesRange);
         if (!mFreeScroll) {
             snapToPage(snapPage);
-
-            for (int i = 0; i < getPageCount(); ++i) {
-                if (i < mTempVisiblePagesRange[0] || i > mTempVisiblePagesRange[1]) {
-                    getPageAt(i).setAlpha(1f);
-                }
-            }
         } else {
             mFreeScrollMinScrollX = getScrollForPage(mTempVisiblePagesRange[0]);
             mFreeScrollMaxScrollX = getScrollForPage(mTempVisiblePagesRange[1]);
 
-            for (int i = 0; i < getPageCount(); ++i) {
-                if (i < mTempVisiblePagesRange[0] || i > mTempVisiblePagesRange[1]) {
-                    getPageAt(i).setAlpha(0f);
-                }
-            }
-
             if (getCurrentPage() < mTempVisiblePagesRange[0]) {
                 setCurrentPage(mTempVisiblePagesRange[0]);
             } else if (getCurrentPage() > mTempVisiblePagesRange[1]) {
index 3d467a1..e7ea221 100644 (file)
@@ -1756,14 +1756,11 @@ public class Workspace extends SmoothPagedView
 
         Animator workspaceAnim = getChangeStateAnimation(finalState, animated, 0, snapPage);
         if (workspaceAnim != null) {
+            onTransitionPrepare();
             workspaceAnim.addListener(new AnimatorListenerAdapter() {
                 @Override
                 public void onAnimationEnd(Animator arg0) {
-                    mIsSwitchingState = false;
-                }
-                @Override
-                public void onAnimationStart(Animator arg0) {
-                    mIsSwitchingState = true;
+                    onTransitionEnd();
                 }
             });
             workspaceAnim.start();
@@ -1956,13 +1953,11 @@ public class Workspace extends SmoothPagedView
                 view.setVisibility(VISIBLE);
             }
         }
-
     }
 
     @Override
     public void onLauncherTransitionPrepare(Launcher l, boolean animated, boolean toWorkspace) {
-        mIsSwitchingState = true;
-        updateChildrenLayersEnabled(false);
+        onTransitionPrepare();
     }
 
     @Override
@@ -1976,6 +1971,20 @@ public class Workspace extends SmoothPagedView
 
     @Override
     public void onLauncherTransitionEnd(Launcher l, boolean animated, boolean toWorkspace) {
+        onTransitionEnd();
+    }
+
+    private void onTransitionPrepare() {
+        mIsSwitchingState = true;
+        updateChildrenLayersEnabled(false);
+        if (mState != Workspace.State.NORMAL) {
+            if (hasCustomContent()) {
+                mWorkspaceScreens.get(CUSTOM_CONTENT_SCREEN_ID).setVisibility(INVISIBLE);
+            }
+        }
+    }
+
+    private void onTransitionEnd() {
         mIsSwitchingState = false;
         updateChildrenLayersEnabled(false);
         // The code in getChangeStateAnimation to determine initialAlpha and finalAlpha will ensure
@@ -1988,6 +1997,11 @@ public class Workspace extends SmoothPagedView
                 cl.setShortcutAndWidgetAlpha(1f);
             }
         }
+        if (mState == Workspace.State.NORMAL) {
+            if (hasCustomContent()) {
+                mWorkspaceScreens.get(CUSTOM_CONTENT_SCREEN_ID).setVisibility(VISIBLE);
+            }
+        }
     }
 
     @Override