summaryrefslogtreecommitdiffstats
path: root/go/quickstep/src/com/android/quickstep/OverviewCommandHelper.java
diff options
context:
space:
mode:
authorKevin <kevhan@google.com>2019-05-10 12:03:29 -0700
committerKevin <kevhan@google.com>2019-05-10 12:19:11 -0700
commit8f1ac1efeb5862dcabc1382755232f74ad207012 (patch)
tree185b2ce4a01d06f7c6336d89b097c96946154069 /go/quickstep/src/com/android/quickstep/OverviewCommandHelper.java
parent7b48548546fc51947358e18d0700a62bca2d3268 (diff)
downloadandroid_packages_apps_Trebuchet-8f1ac1efeb5862dcabc1382755232f74ad207012.tar.gz
android_packages_apps_Trebuchet-8f1ac1efeb5862dcabc1382755232f74ad207012.tar.bz2
android_packages_apps_Trebuchet-8f1ac1efeb5862dcabc1382755232f74ad207012.zip
Refactor lambda to use listener instead
We should not use an in-line lambda here as we allocate a new RemoteAnimationProvider object to do so which hooks into the already existing AppToOverviewAnimationProvider. This can be a problem if AppToOverviewAnimationProvider overrides methods as we would not use the overridden methods but instead the default ones. Instead, we use the same AppToOverviewAnimationProvider object but hook into the activity ready and window animation calls with a listener to add on the logging logic. Bug: 132112131 Test: Manual test; app to overview functions as before Change-Id: Ie70541691ed420c33770d6ed4f54d9555374dc0a
Diffstat (limited to 'go/quickstep/src/com/android/quickstep/OverviewCommandHelper.java')
-rw-r--r--go/quickstep/src/com/android/quickstep/OverviewCommandHelper.java60
1 files changed, 30 insertions, 30 deletions
diff --git a/go/quickstep/src/com/android/quickstep/OverviewCommandHelper.java b/go/quickstep/src/com/android/quickstep/OverviewCommandHelper.java
index 379cc100e..0fa3d866f 100644
--- a/go/quickstep/src/com/android/quickstep/OverviewCommandHelper.java
+++ b/go/quickstep/src/com/android/quickstep/OverviewCommandHelper.java
@@ -18,7 +18,6 @@ package com.android.quickstep;
import static com.android.systemui.shared.system.ActivityManagerWrapper
.CLOSE_SYSTEM_WINDOWS_REASON_RECENTS;
-import android.animation.AnimatorSet;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
@@ -30,10 +29,10 @@ import com.android.launcher3.MainThreadExecutor;
import com.android.launcher3.logging.UserEventDispatcher;
import com.android.launcher3.userevent.nano.LauncherLogProto;
import com.android.quickstep.ActivityControlHelper.ActivityInitListener;
+import com.android.quickstep.AppToOverviewAnimationProvider.AppToOverviewAnimationListener;
import com.android.quickstep.views.IconRecentsView;
import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.shared.system.LatencyTrackerCompat;
-import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
/**
* Helper class to handle various atomic commands for switching between Overview.
@@ -105,7 +104,6 @@ public class OverviewCommandHelper {
protected final ActivityControlHelper<T> mHelper;
private final long mCreateTime;
- private final AppToOverviewAnimationProvider<T> mAnimationProvider;
private final long mToggleClickedTime = SystemClock.uptimeMillis();
private boolean mUserEventLogged;
@@ -114,8 +112,6 @@ public class OverviewCommandHelper {
public RecentsActivityCommand() {
mHelper = mOverviewComponentObserver.getActivityControlHelper();
mCreateTime = SystemClock.elapsedRealtime();
- mAnimationProvider =
- new AppToOverviewAnimationProvider<>(mHelper, RecentsModel.getRunningTaskId());
// Preload the plan
mRecentsModel.getTasks(null);
@@ -136,11 +132,37 @@ public class OverviewCommandHelper {
return;
}
+ AppToOverviewAnimationProvider<T> provider =
+ new AppToOverviewAnimationProvider<>(mHelper, RecentsModel.getRunningTaskId());
+ provider.setAnimationListener(
+ new AppToOverviewAnimationListener() {
+ @Override
+ public void onActivityReady(BaseDraggingActivity activity) {
+ if (!mUserEventLogged) {
+ activity.getUserEventDispatcher().logActionCommand(
+ LauncherLogProto.Action.Command.RECENTS_BUTTON,
+ mHelper.getContainerType(),
+ LauncherLogProto.ContainerType.TASKSWITCHER);
+ mUserEventLogged = true;
+ }
+ }
+
+ @Override
+ public void onWindowAnimationCreated() {
+ if (LatencyTrackerCompat.isEnabled(mContext)) {
+ LatencyTrackerCompat.logToggleRecents(
+ (int) (SystemClock.uptimeMillis() - mToggleClickedTime));
+ }
+
+ mListener.unregister();
+ }
+ });
+
// Otherwise, start overview.
- mListener = mHelper.createActivityInitListener(this::onActivityReady);
+ mListener = mHelper.createActivityInitListener(provider::onActivityReady);
mListener.registerAndStartActivity(mOverviewComponentObserver.getOverviewIntent(),
- this::createWindowAnimation, mContext, mMainThreadExecutor.getHandler(),
- mAnimationProvider.getRecentsLaunchDuration());
+ provider, mContext, mMainThreadExecutor.getHandler(),
+ provider.getRecentsLaunchDuration());
}
protected boolean handleCommand(long elapsedTime) {
@@ -155,27 +177,5 @@ public class OverviewCommandHelper {
}
return false;
}
-
- private boolean onActivityReady(T activity, Boolean wasVisible) {
- if (!mUserEventLogged) {
- activity.getUserEventDispatcher().logActionCommand(
- LauncherLogProto.Action.Command.RECENTS_BUTTON,
- mHelper.getContainerType(),
- LauncherLogProto.ContainerType.TASKSWITCHER);
- mUserEventLogged = true;
- }
- return mAnimationProvider.onActivityReady(activity, wasVisible);
- }
-
- private AnimatorSet createWindowAnimation(RemoteAnimationTargetCompat[] targetCompats) {
- if (LatencyTrackerCompat.isEnabled(mContext)) {
- LatencyTrackerCompat.logToggleRecents(
- (int) (SystemClock.uptimeMillis() - mToggleClickedTime));
- }
-
- mListener.unregister();
-
- return mAnimationProvider.createWindowAnimation(targetCompats);
- }
}
}