OSDN Git Service

Fix all apps becoming clipped when screen is rotated with all apps opened.
authorHyunyoung Song <hyunyoungs@google.com>
Tue, 12 Jul 2016 18:14:41 +0000 (11:14 -0700)
committerHyunyoung Song <hyunyoungs@google.com>
Tue, 12 Jul 2016 22:37:15 +0000 (15:37 -0700)
b/30040068

Change-Id: I5e89a82310fddd5aa89a8f5d855b2efa526f8244

src/com/android/launcher3/LauncherStateTransitionAnimation.java
src/com/android/launcher3/allapps/AllAppsContainerView.java
src/com/android/launcher3/allapps/AllAppsTransitionController.java

index e94153d..6843d60 100644 (file)
@@ -252,7 +252,10 @@ public class LauncherStateTransitionAnimation {
         playCommonTransitionAnimations(toWorkspaceState, fromView, toView,
                 animated, initialized, animation, revealDuration, layerViews);
         if (!animated || !initialized) {
-
+            if (FeatureFlags.LAUNCHER3_ALL_APPS_PULL_UP &&
+                    toWorkspaceState == Workspace.State.NORMAL_HIDDEN) {
+                mAllAppsController.finishPullUp();
+            }
             toView.setTranslationX(0.0f);
             toView.setTranslationY(0.0f);
             toView.setScaleX(1.0f);
@@ -672,7 +675,8 @@ public class LauncherStateTransitionAnimation {
         playCommonTransitionAnimations(toWorkspaceState, fromView, toView,
                 animated, initialized, animation, revealDuration, layerViews);
         if (!animated || !initialized) {
-            if (FeatureFlags.LAUNCHER3_ALL_APPS_PULL_UP) {
+            if (FeatureFlags.LAUNCHER3_ALL_APPS_PULL_UP &&
+                    fromWorkspaceState == Workspace.State.NORMAL_HIDDEN) {
                 mAllAppsController.finishPullDown();
             }
             fromView.setVisibility(View.GONE);
index 717ce74..c7e08db 100644 (file)
@@ -397,14 +397,13 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
 
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        updatePaddingsAndMargins();
-        mContentBounds.set(mHorizontalPadding, 0,
-                MeasureSpec.getSize(widthMeasureSpec) - mHorizontalPadding,
-                MeasureSpec.getSize(heightMeasureSpec));
+        int widthPx = MeasureSpec.getSize(widthMeasureSpec);
+        int heightPx = MeasureSpec.getSize(heightMeasureSpec);
+        updatePaddingsAndMargins(widthPx, heightPx);
+        mContentBounds.set(mHorizontalPadding, 0, widthPx - mHorizontalPadding, heightPx);
 
         DeviceProfile grid = mLauncher.getDeviceProfile();
-        int availableWidth = (!mContentBounds.isEmpty() ? mContentBounds.width() :
-                MeasureSpec.getSize(widthMeasureSpec))
+        int availableWidth = (!mContentBounds.isEmpty() ? mContentBounds.width() : widthPx)
                 - 2 * mAppsRecyclerView.getMaxScrollbarWidth();
         grid.updateAppsViewNumCols(getResources(), availableWidth);
         if (FeatureFlags.LAUNCHER3_ALL_APPS_PULL_UP) {
@@ -470,7 +469,7 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
      * container view, we inset the background and padding of the recycler view to allow for the
      * recycler view to handle touch events (for fast scrolling) all the way to the edge.
      */
-    private void updatePaddingsAndMargins() {
+    private void updatePaddingsAndMargins(int widthPx, int heightPx) {
         Rect bgPadding = new Rect();
         getRevealView().getBackground().getPadding(bgPadding);
 
@@ -497,11 +496,7 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
         // Clip the view to the left and right edge of the background to
         // to prevent shadows from rendering beyond the edges
         final Rect newClipBounds = new Rect(
-                bgPadding.left,
-                0,
-                getWidth() - bgPadding.right,
-                getHeight()
-        );
+                bgPadding.left, 0, widthPx - bgPadding.right, heightPx);
         setClipBounds(newClipBounds);
 
         // Allow the overscroll effect to reach the edges of the view
index b42b762..028f065 100644 (file)
@@ -256,7 +256,7 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
     }
 
     private void updateLightStatusBar(float progress) {
-        boolean enable = (progress < mStatusBarHeight / 2);
+        boolean enable = progress <= mStatusBarHeight / 2;
         // Do not modify status bar on landscape as all apps is not full bleed.
         if (mLauncher.getDeviceProfile().isVerticalBarLayout()) {
             return;
@@ -404,7 +404,7 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
         }
     }
 
-    private void finishPullUp() {
+    public void finishPullUp() {
         mHotseat.setVisibility(View.INVISIBLE);
         setProgress(0f);
     }