[automerge] Removing unnecessary AM.getTasks() call on every touch 2p: 8e5a164e05
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/17005155 Bug: 220906427 Change-Id: Iedf1d7086d1f9ee1ae167f2a975612de9c84521c
This commit is contained in:
@@ -554,15 +554,13 @@ public class RecentsAnimationDeviceState implements
|
||||
|
||||
/**
|
||||
* @param ev An ACTION_DOWN motion event
|
||||
* @param task Info for the currently running task
|
||||
* @return whether the given motion event can trigger the assistant over the current task.
|
||||
*/
|
||||
public boolean canTriggerAssistantAction(MotionEvent ev, ActivityManager.RunningTaskInfo task) {
|
||||
public boolean canTriggerAssistantAction(MotionEvent ev) {
|
||||
return mAssistantAvailable
|
||||
&& !QuickStepContract.isAssistantGestureDisabled(mSystemUiStateFlags)
|
||||
&& mRotationTouchHelper.touchInAssistantRegion(ev)
|
||||
&& !isLockToAppActive()
|
||||
&& !isGestureBlockedActivity(task);
|
||||
&& !isLockToAppActive();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -37,7 +37,6 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_N
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_TRACING_ENABLED;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.app.RemoteAction;
|
||||
import android.app.Service;
|
||||
@@ -600,26 +599,14 @@ public class TouchInteractionService extends Service
|
||||
|
||||
ActiveGestureLog.INSTANCE.addLog("setInputConsumer: " + mConsumer.getName());
|
||||
mUncheckedConsumer = mConsumer;
|
||||
} else if (mDeviceState.isUserUnlocked() && mDeviceState.isFullyGesturalNavMode()) {
|
||||
} else if (mDeviceState.isUserUnlocked() && mDeviceState.isFullyGesturalNavMode()
|
||||
&& mDeviceState.canTriggerAssistantAction(event)) {
|
||||
mGestureState = createGestureState(mGestureState);
|
||||
ActivityManager.RunningTaskInfo runningTask = mGestureState.getRunningTask();
|
||||
if (mDeviceState.canTriggerAssistantAction(event, runningTask)) {
|
||||
// Do not change mConsumer as if there is an ongoing QuickSwitch gesture, we
|
||||
// should not interrupt it. QuickSwitch assumes that interruption can only
|
||||
// happen if the next gesture is also quick switch.
|
||||
mUncheckedConsumer = new AssistantInputConsumer(
|
||||
this,
|
||||
mGestureState,
|
||||
InputConsumer.NO_OP, mInputMonitorCompat,
|
||||
mDeviceState,
|
||||
event);
|
||||
} else if (mDeviceState.canTriggerOneHandedAction(event)) {
|
||||
// Consume gesture event for triggering one handed feature.
|
||||
mUncheckedConsumer = new OneHandedModeInputConsumer(this, mDeviceState,
|
||||
InputConsumer.NO_OP, mInputMonitorCompat);
|
||||
} else {
|
||||
mUncheckedConsumer = InputConsumer.NO_OP;
|
||||
}
|
||||
// Do not change mConsumer as if there is an ongoing QuickSwitch gesture, we
|
||||
// should not interrupt it. QuickSwitch assumes that interruption can only
|
||||
// happen if the next gesture is also quick switch.
|
||||
mUncheckedConsumer = tryCreateAssistantInputConsumer(
|
||||
InputConsumer.NO_OP, mGestureState, event);
|
||||
} else if (mDeviceState.canTriggerOneHandedAction(event)) {
|
||||
// Consume gesture event for triggering one handed feature.
|
||||
mUncheckedConsumer = new OneHandedModeInputConsumer(this, mDeviceState,
|
||||
@@ -666,6 +653,14 @@ public class TouchInteractionService extends Service
|
||||
ProtoTracer.INSTANCE.get(this).scheduleFrameUpdate();
|
||||
}
|
||||
|
||||
private InputConsumer tryCreateAssistantInputConsumer(InputConsumer base,
|
||||
GestureState gestureState, MotionEvent motionEvent) {
|
||||
return mDeviceState.isGestureBlockedActivity(gestureState.getRunningTask())
|
||||
? base
|
||||
: new AssistantInputConsumer(this, gestureState, base, mInputMonitorCompat,
|
||||
mDeviceState, motionEvent);
|
||||
}
|
||||
|
||||
public GestureState createGestureState(GestureState previousGestureState) {
|
||||
GestureState gestureState = new GestureState(mOverviewComponentObserver,
|
||||
ActiveGestureLog.INSTANCE.generateAndSetLogId());
|
||||
@@ -711,9 +706,8 @@ public class TouchInteractionService extends Service
|
||||
handleOrientationSetup(base);
|
||||
}
|
||||
if (mDeviceState.isFullyGesturalNavMode()) {
|
||||
if (mDeviceState.canTriggerAssistantAction(event, newGestureState.getRunningTask())) {
|
||||
base = new AssistantInputConsumer(this, newGestureState, base, mInputMonitorCompat,
|
||||
mDeviceState, event);
|
||||
if (mDeviceState.canTriggerAssistantAction(event)) {
|
||||
base = tryCreateAssistantInputConsumer(base, newGestureState, event);
|
||||
}
|
||||
|
||||
// If Taskbar is present, we listen for long press to unstash it.
|
||||
|
||||
Reference in New Issue
Block a user