Improve global actions dialog animation

By translating a container instead of only the power menu row

Test: visual
Fixes: 154541485
Change-Id: I2742bb14a71a34869cfb83c86e4072fe3811bb74
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
index b88350f..b6ed906 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
@@ -127,7 +127,6 @@
 import com.android.systemui.util.EmergencyDialerConstants;
 import com.android.systemui.util.RingerModeTracker;
 import com.android.systemui.util.leak.RotationUtils;
-import com.android.systemui.volume.SystemUIInterpolators.LogAccelerateInterpolator;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -1895,6 +1894,7 @@
 
         private ControlsUiController mControlsUiController;
         private ViewGroup mControlsView;
+        private ViewGroup mContainer;
 
         ActionsDialog(Context context, MyAdapter adapter, MyOverflowAdapter overflowAdapter,
                 GlobalActionsPanelPlugin.PanelViewController plugin,
@@ -2047,6 +2047,11 @@
             });
             mGlobalActionsLayout.setRotationListener(this::onRotate);
             mGlobalActionsLayout.setAdapter(mAdapter);
+            mContainer = findViewById(com.android.systemui.R.id.global_actions_container);
+            // Some legacy dialog layouts don't have the outer container
+            if (mContainer == null) {
+                mContainer = mGlobalActionsLayout;
+            }
 
             mOverflowPopup = createPowerOverflowPopup();
 
@@ -2173,10 +2178,10 @@
             mHadTopUi = mNotificationShadeWindowController.getForceHasTopUi();
             mNotificationShadeWindowController.setForceHasTopUi(true);
             mBackgroundDrawable.setAlpha(0);
-            mGlobalActionsLayout.setTranslationX(mGlobalActionsLayout.getAnimationOffsetX());
-            mGlobalActionsLayout.setTranslationY(mGlobalActionsLayout.getAnimationOffsetY());
-            mGlobalActionsLayout.setAlpha(0);
-            mGlobalActionsLayout.animate()
+            mContainer.setTranslationX(mGlobalActionsLayout.getAnimationOffsetX());
+            mContainer.setTranslationY(mGlobalActionsLayout.getAnimationOffsetY());
+            mContainer.setAlpha(0);
+            mContainer.animate()
                     .alpha(1)
                     .translationX(0)
                     .translationY(0)
@@ -2208,16 +2213,16 @@
         @Override
         public void dismiss() {
             dismissWithAnimation(() -> {
-                mGlobalActionsLayout.setTranslationX(0);
-                mGlobalActionsLayout.setTranslationY(0);
-                mGlobalActionsLayout.setAlpha(1);
-                mGlobalActionsLayout.animate()
+                mContainer.setTranslationX(0);
+                mContainer.setTranslationY(0);
+                mContainer.setAlpha(1);
+                mContainer.animate()
                         .alpha(0)
                         .translationX(mGlobalActionsLayout.getAnimationOffsetX())
                         .translationY(mGlobalActionsLayout.getAnimationOffsetY())
-                        .setDuration(550)
+                        .setDuration(450)
                         .withEndAction(this::completeDismiss)
-                        .setInterpolator(new LogAccelerateInterpolator())
+                        .setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
                         .setUpdateListener(animation -> {
                             float animatedValue = 1f - animation.getAnimatedFraction();
                             int alpha = (int) (animatedValue * mScrimAlpha * 255);