Loading core/java/android/app/IActivityTaskManager.aidl +0 −5 Original line number Diff line number Diff line Loading @@ -368,11 +368,6 @@ interface IActivityTaskManager { android.window.BackNavigationInfo startBackNavigation( in RemoteCallback navigationObserver, in BackAnimationAdapter adaptor); /** * Registers a callback to be invoked when the system server requests a back gesture. */ void registerBackGestureDelegate(in RemoteCallback monitor); /** * registers a callback to be invoked when a background activity launch is aborted. * Loading libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java +18 −18 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.content.res.Configuration; import android.graphics.Point; import android.graphics.Rect; import android.hardware.input.InputManager; import android.hardware.input.KeyGestureEvent; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; Loading Loading @@ -95,6 +96,7 @@ import com.android.wm.shell.transition.Transitions; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; /** Loading Loading @@ -138,6 +140,7 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont private final ShellExecutor mShellExecutor; private final WindowManager mWindowManager; private final Transitions mTransitions; private final InputManager mInputManager; @VisibleForTesting final BackTransitionHandler mBackTransitionHandler; @VisibleForTesting Loading Loading @@ -271,6 +274,7 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont mLatencyTracker = LatencyTracker.getInstance(mContext); mShellCommandHandler = shellCommandHandler; mWindowManager = context.getSystemService(WindowManager.class); mInputManager = context.getSystemService(InputManager.class); mTransitions = transitions; mBackTransitionHandler = new BackTransitionHandler(mTransitions); mTransitions.addHandler(mBackTransitionHandler); Loading Loading @@ -1153,10 +1157,9 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont if (!Flags.delegateBackGestureToShell()) { return; } final RemoteCallback requestBackMonitor = new RemoteCallback( new RemoteCallback.OnResultListener() { @Override public void onResult(@Nullable Bundle result) { mInputManager.registerKeyGestureEventHandler(List.of(KeyGestureEvent.KEY_GESTURE_TYPE_BACK), (event, focussedToken) -> { if (event.getKeyGestureType() == KeyGestureEvent.KEY_GESTURE_TYPE_BACK) { mShellExecutor.execute(() -> { if (mBackGestureStarted) { Log.w(TAG, "Back gesture is running, ignore request"); Loading @@ -1166,13 +1169,10 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont setTriggerBack(true); onMotionEvent(0, 0, KeyEvent.ACTION_UP, EDGE_NONE); }); } else { Log.w(TAG, "Unsupported gesture " + event + " received!"); } }); try { mActivityTaskManager.registerBackGestureDelegate(requestBackMonitor); } catch (RemoteException remoteException) { Log.w(TAG, "Failed register back gesture request ", remoteException); } } /** Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +6 −5 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ import static com.android.server.wm.WindowManagerPolicyProto.ROTATION_MODE; import static com.android.server.wm.WindowManagerPolicyProto.SCREEN_ON_FULLY; import static com.android.server.wm.WindowManagerPolicyProto.WINDOW_MANAGER_DRAW_COMPLETE; import static com.android.systemui.shared.Flags.enableLppAssistInvocationEffect; import static com.android.window.flags.Flags.delegateBackGestureToShell; import android.accessibilityservice.AccessibilityService; import android.annotation.Nullable; Loading Loading @@ -249,6 +250,7 @@ import com.android.server.wm.DisplayPolicy; import com.android.server.wm.DisplayRotation; import com.android.server.wm.WindowManagerInternal; import com.android.server.wm.WindowManagerInternal.AppTransitionListener; import com.android.window.flags.Flags; import java.io.File; import java.io.FileNotFoundException; Loading Loading @@ -3387,7 +3389,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_NOTIFICATION_PANEL, KeyGestureEvent.KEY_GESTURE_TYPE_TAKE_SCREENSHOT, KeyGestureEvent.KEY_GESTURE_TYPE_TRIGGER_BUG_REPORT, KeyGestureEvent.KEY_GESTURE_TYPE_BACK, KeyGestureEvent.KEY_GESTURE_TYPE_MULTI_WINDOW_NAVIGATION, KeyGestureEvent.KEY_GESTURE_TYPE_DESKTOP_MODE, KeyGestureEvent.KEY_GESTURE_TYPE_SPLIT_SCREEN_NAVIGATION_LEFT, Loading @@ -3406,6 +3407,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { KeyGestureEvent.KEY_GESTURE_TYPE_GLOBAL_ACTIONS, KeyGestureEvent.KEY_GESTURE_TYPE_TV_TRIGGER_BUG_REPORT )); if (!delegateBackGestureToShell()) { supportedGestures.add(KeyGestureEvent.KEY_GESTURE_TYPE_BACK); } if (enableTalkbackAndMagnifierKeyGestures()) { supportedGestures.add(KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK); } Loading Loading @@ -3497,7 +3501,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } break; case KeyGestureEvent.KEY_GESTURE_TYPE_BACK: if (complete) { if (!delegateBackGestureToShell() && complete) { injectBackGesture(SystemClock.uptimeMillis()); } break; Loading Loading @@ -3722,9 +3726,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { @SuppressLint("MissingPermission") private void injectBackGesture(long downtime) { if (mActivityTaskManagerInternal.requestBackGesture()) { return; } // Create and inject down event KeyEvent downEvent = new KeyEvent(downtime, downtime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK, 0 /* repeat */, 0 /* metaState */, Loading services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java +0 −6 Original line number Diff line number Diff line Loading @@ -803,10 +803,4 @@ public abstract class ActivityTaskManagerInternal { /** Returns whether assist data is allowed. */ public abstract boolean isAssistDataAllowed(); /** * Delegate back gesture request from shell. * Returns true if the back gesture request was successful, false otherwise. */ public abstract boolean requestBackGesture(); } services/core/java/com/android/server/wm/ActivityTaskManagerService.java +0 −17 Original line number Diff line number Diff line Loading @@ -1902,18 +1902,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } } @Override public void registerBackGestureDelegate(RemoteCallback requestObserver) { mAmInternal.enforceCallingPermission(START_TASKS_FROM_RECENTS, "registerBackGestureDelegate()"); final long origId = Binder.clearCallingIdentity(); try { mBackNavigationController.registerBackGestureDelegate(requestObserver); } finally { Binder.restoreCallingIdentity(origId); } } /** * Public API to check if the client is allowed to start an activity on specified display. * Loading Loading @@ -7605,11 +7593,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public boolean isAssistDataAllowed() { return ActivityTaskManagerService.this.isAssistDataAllowed(); } @Override public boolean requestBackGesture() { return mBackNavigationController.requestBackGesture(); } } /** Cache the return value for {@link #isPip2ExperimentEnabled()} */ Loading Loading
core/java/android/app/IActivityTaskManager.aidl +0 −5 Original line number Diff line number Diff line Loading @@ -368,11 +368,6 @@ interface IActivityTaskManager { android.window.BackNavigationInfo startBackNavigation( in RemoteCallback navigationObserver, in BackAnimationAdapter adaptor); /** * Registers a callback to be invoked when the system server requests a back gesture. */ void registerBackGestureDelegate(in RemoteCallback monitor); /** * registers a callback to be invoked when a background activity launch is aborted. * Loading
libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java +18 −18 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.content.res.Configuration; import android.graphics.Point; import android.graphics.Rect; import android.hardware.input.InputManager; import android.hardware.input.KeyGestureEvent; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; Loading Loading @@ -95,6 +96,7 @@ import com.android.wm.shell.transition.Transitions; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; /** Loading Loading @@ -138,6 +140,7 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont private final ShellExecutor mShellExecutor; private final WindowManager mWindowManager; private final Transitions mTransitions; private final InputManager mInputManager; @VisibleForTesting final BackTransitionHandler mBackTransitionHandler; @VisibleForTesting Loading Loading @@ -271,6 +274,7 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont mLatencyTracker = LatencyTracker.getInstance(mContext); mShellCommandHandler = shellCommandHandler; mWindowManager = context.getSystemService(WindowManager.class); mInputManager = context.getSystemService(InputManager.class); mTransitions = transitions; mBackTransitionHandler = new BackTransitionHandler(mTransitions); mTransitions.addHandler(mBackTransitionHandler); Loading Loading @@ -1153,10 +1157,9 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont if (!Flags.delegateBackGestureToShell()) { return; } final RemoteCallback requestBackMonitor = new RemoteCallback( new RemoteCallback.OnResultListener() { @Override public void onResult(@Nullable Bundle result) { mInputManager.registerKeyGestureEventHandler(List.of(KeyGestureEvent.KEY_GESTURE_TYPE_BACK), (event, focussedToken) -> { if (event.getKeyGestureType() == KeyGestureEvent.KEY_GESTURE_TYPE_BACK) { mShellExecutor.execute(() -> { if (mBackGestureStarted) { Log.w(TAG, "Back gesture is running, ignore request"); Loading @@ -1166,13 +1169,10 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont setTriggerBack(true); onMotionEvent(0, 0, KeyEvent.ACTION_UP, EDGE_NONE); }); } else { Log.w(TAG, "Unsupported gesture " + event + " received!"); } }); try { mActivityTaskManager.registerBackGestureDelegate(requestBackMonitor); } catch (RemoteException remoteException) { Log.w(TAG, "Failed register back gesture request ", remoteException); } } /** Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +6 −5 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ import static com.android.server.wm.WindowManagerPolicyProto.ROTATION_MODE; import static com.android.server.wm.WindowManagerPolicyProto.SCREEN_ON_FULLY; import static com.android.server.wm.WindowManagerPolicyProto.WINDOW_MANAGER_DRAW_COMPLETE; import static com.android.systemui.shared.Flags.enableLppAssistInvocationEffect; import static com.android.window.flags.Flags.delegateBackGestureToShell; import android.accessibilityservice.AccessibilityService; import android.annotation.Nullable; Loading Loading @@ -249,6 +250,7 @@ import com.android.server.wm.DisplayPolicy; import com.android.server.wm.DisplayRotation; import com.android.server.wm.WindowManagerInternal; import com.android.server.wm.WindowManagerInternal.AppTransitionListener; import com.android.window.flags.Flags; import java.io.File; import java.io.FileNotFoundException; Loading Loading @@ -3387,7 +3389,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_NOTIFICATION_PANEL, KeyGestureEvent.KEY_GESTURE_TYPE_TAKE_SCREENSHOT, KeyGestureEvent.KEY_GESTURE_TYPE_TRIGGER_BUG_REPORT, KeyGestureEvent.KEY_GESTURE_TYPE_BACK, KeyGestureEvent.KEY_GESTURE_TYPE_MULTI_WINDOW_NAVIGATION, KeyGestureEvent.KEY_GESTURE_TYPE_DESKTOP_MODE, KeyGestureEvent.KEY_GESTURE_TYPE_SPLIT_SCREEN_NAVIGATION_LEFT, Loading @@ -3406,6 +3407,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { KeyGestureEvent.KEY_GESTURE_TYPE_GLOBAL_ACTIONS, KeyGestureEvent.KEY_GESTURE_TYPE_TV_TRIGGER_BUG_REPORT )); if (!delegateBackGestureToShell()) { supportedGestures.add(KeyGestureEvent.KEY_GESTURE_TYPE_BACK); } if (enableTalkbackAndMagnifierKeyGestures()) { supportedGestures.add(KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_TALKBACK); } Loading Loading @@ -3497,7 +3501,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } break; case KeyGestureEvent.KEY_GESTURE_TYPE_BACK: if (complete) { if (!delegateBackGestureToShell() && complete) { injectBackGesture(SystemClock.uptimeMillis()); } break; Loading Loading @@ -3722,9 +3726,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { @SuppressLint("MissingPermission") private void injectBackGesture(long downtime) { if (mActivityTaskManagerInternal.requestBackGesture()) { return; } // Create and inject down event KeyEvent downEvent = new KeyEvent(downtime, downtime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK, 0 /* repeat */, 0 /* metaState */, Loading
services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java +0 −6 Original line number Diff line number Diff line Loading @@ -803,10 +803,4 @@ public abstract class ActivityTaskManagerInternal { /** Returns whether assist data is allowed. */ public abstract boolean isAssistDataAllowed(); /** * Delegate back gesture request from shell. * Returns true if the back gesture request was successful, false otherwise. */ public abstract boolean requestBackGesture(); }
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +0 −17 Original line number Diff line number Diff line Loading @@ -1902,18 +1902,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } } @Override public void registerBackGestureDelegate(RemoteCallback requestObserver) { mAmInternal.enforceCallingPermission(START_TASKS_FROM_RECENTS, "registerBackGestureDelegate()"); final long origId = Binder.clearCallingIdentity(); try { mBackNavigationController.registerBackGestureDelegate(requestObserver); } finally { Binder.restoreCallingIdentity(origId); } } /** * Public API to check if the client is allowed to start an activity on specified display. * Loading Loading @@ -7605,11 +7593,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public boolean isAssistDataAllowed() { return ActivityTaskManagerService.this.isAssistDataAllowed(); } @Override public boolean requestBackGesture() { return mBackNavigationController.requestBackGesture(); } } /** Cache the return value for {@link #isPip2ExperimentEnabled()} */ Loading