summaryrefslogtreecommitdiffstats
path: root/go
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-05-13 19:21:04 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-05-13 19:21:04 +0000
commit512a3c59eaccb6cac505258ebfc2795904709d59 (patch)
tree1c16fa2e8c92f5bdac7b7869d6883935b069b558 /go
parent0098e382fb0606d1808c49f68b87bb48905f8833 (diff)
parent8bab8fa3911e7a6a919e37be70388f3a517ce3f2 (diff)
downloadandroid_packages_apps_Trebuchet-512a3c59eaccb6cac505258ebfc2795904709d59.tar.gz
android_packages_apps_Trebuchet-512a3c59eaccb6cac505258ebfc2795904709d59.tar.bz2
android_packages_apps_Trebuchet-512a3c59eaccb6cac505258ebfc2795904709d59.zip
Merge "Fallback recents should wait for remote anim ready" into ub-launcher3-qt-dev
Diffstat (limited to 'go')
-rw-r--r--go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java b/go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java
index fe10a7a21..fe159b5f0 100644
--- a/go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java
+++ b/go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java
@@ -15,6 +15,7 @@
*/
package com.android.quickstep;
+import static com.android.launcher3.Utilities.postAsyncCallback;
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
import static com.android.quickstep.views.IconRecentsView.REMOTE_APP_TO_OVERVIEW_DURATION;
import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.ACTIVITY_TYPE_HOME;
@@ -23,12 +24,17 @@ import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.MOD
import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
+import android.app.ActivityOptions;
+import android.os.Handler;
import android.util.Log;
import com.android.launcher3.BaseDraggingActivity;
+import com.android.launcher3.LauncherAnimationRunner;
import com.android.quickstep.util.RemoteAnimationProvider;
import com.android.quickstep.util.RemoteAnimationTargetSet;
import com.android.quickstep.views.IconRecentsView;
+import com.android.systemui.shared.system.ActivityOptionsCompat;
+import com.android.systemui.shared.system.RemoteAnimationAdapterCompat;
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
/**
@@ -144,6 +150,29 @@ final class AppToOverviewAnimationProvider<T extends BaseDraggingActivity> imple
return anim;
}
+ @Override
+ public ActivityOptions toActivityOptions(Handler handler, long duration) {
+ LauncherAnimationRunner runner = new LauncherAnimationRunner(handler,
+ false /* startAtFrontOfQueue */) {
+
+ @Override
+ public void onCreateAnimation(RemoteAnimationTargetCompat[] targetCompats,
+ AnimationResult result) {
+ IconRecentsView recentsView = mRecentsView;
+ if (!recentsView.isReadyForRemoteAnim()) {
+ recentsView.setOnReadyForRemoteAnimCallback(() -> postAsyncCallback(handler,
+ () -> onCreateAnimation(targetCompats, result))
+ );
+ return;
+ }
+ result.setAnimation(createWindowAnimation(targetCompats));
+ }
+ };
+ return ActivityOptionsCompat.makeRemoteAnimation(
+ new RemoteAnimationAdapterCompat(runner, duration,
+ 0 /* statusBarTransitionDelay */));
+ }
+
/**
* Get duration of animation from app to overview.
*