Fix all apps transition for transposed tablet layouts

Change-Id: I33bf163bc74b3cf703cb88a5209d9a205d80dbfa
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 5d9ff1d..8a3ce25 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -3232,20 +3232,24 @@
 
             float revealRadius = (float) Math.sqrt((width * width) / 4 + (height * height) / 4);
             revealView.setTranslationY(0);
+            revealView.setTranslationX(0);
 
             // Get the y delta between the center of the page and the center of the all apps button
             int[] allAppsToPanelDelta = Utilities.getCenterDeltaInScreenSpace(revealView,
                     getAllAppsButton(), null);
             float yDrift = isWidgetTray ? height / 2 : allAppsToPanelDelta[1];
+            float xDrift = isWidgetTray ? 0 : allAppsToPanelDelta[0];
 
             float initAlpha = isWidgetTray ? 0.3f : 1f;
             revealView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
             PropertyValuesHolder panelAlpha = PropertyValuesHolder.ofFloat("alpha", initAlpha, 1f);
-            PropertyValuesHolder panelDrift =
+            PropertyValuesHolder panelDriftY =
                     PropertyValuesHolder.ofFloat("translationY", yDrift, 0);
+            PropertyValuesHolder panelDriftX =
+                    PropertyValuesHolder.ofFloat("translationX", xDrift, 0);
 
             ObjectAnimator panelAlphaAndDrift =
-                    LauncherAnimUtils.ofPropertyValuesHolder(revealView, panelAlpha, panelDrift);
+                    LauncherAnimUtils.ofPropertyValuesHolder(revealView, panelAlpha, panelDriftY, panelDriftX);
             panelAlphaAndDrift.setDuration(revealDuration);
             panelAlphaAndDrift.setInterpolator(new LogDecelerateInterpolator(100, 0));
 
@@ -3461,17 +3465,24 @@
             int[] allAppsToPanelDelta = Utilities.getCenterDeltaInScreenSpace(revealView,
                     allAppsButton, null);
             float yDrift = isWidgetTray ? height / 2 : allAppsToPanelDelta[1];
+            float xDrift = isWidgetTray ? 0 : allAppsToPanelDelta[0];
 
             revealView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
 
             // The vertical motion of the apps panel should be delayed by one frame
             // from the conceal animation in order to give the right feel. We correpsondingly
             // shorten the duration so that the slide and conceal end at the same time.
-            ObjectAnimator panelDrift = LauncherAnimUtils.ofFloat(revealView, "translationY", 0, yDrift);
-            panelDrift.setDuration(revealDuration - SINGLE_FRAME_DELAY);
-            panelDrift.setStartDelay(itemsAlphaStagger + SINGLE_FRAME_DELAY);
-            panelDrift.setInterpolator(new LogDecelerateInterpolator(100, 0));
-            mStateAnimation.play(panelDrift);
+            ObjectAnimator panelDriftY = LauncherAnimUtils.ofFloat(revealView, "translationY", 0, yDrift);
+            panelDriftY.setDuration(revealDuration - SINGLE_FRAME_DELAY);
+            panelDriftY.setStartDelay(itemsAlphaStagger + SINGLE_FRAME_DELAY);
+            panelDriftY.setInterpolator(new LogDecelerateInterpolator(100, 0));
+            mStateAnimation.play(panelDriftY);
+
+            ObjectAnimator panelDriftX = LauncherAnimUtils.ofFloat(revealView, "translationX", 0, xDrift);
+            panelDriftX.setDuration(revealDuration - SINGLE_FRAME_DELAY);
+            panelDriftX.setStartDelay(itemsAlphaStagger + SINGLE_FRAME_DELAY);
+            panelDriftX.setInterpolator(new LogDecelerateInterpolator(100, 0));
+            mStateAnimation.play(panelDriftX);
 
             if (isWidgetTray) {
                 ObjectAnimator panelAlpha = LauncherAnimUtils.ofFloat(revealView, "alpha", 1f, 0.4f);