diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-05-13 19:21:04 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-05-13 19:21:04 +0000 |
commit | 512a3c59eaccb6cac505258ebfc2795904709d59 (patch) | |
tree | 1c16fa2e8c92f5bdac7b7869d6883935b069b558 /go | |
parent | 0098e382fb0606d1808c49f68b87bb48905f8833 (diff) | |
parent | 8bab8fa3911e7a6a919e37be70388f3a517ce3f2 (diff) | |
download | android_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.java | 29 |
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. * |