Revert "3/ Add input consumer to capture touches during a Recents transition"
This reverts commit fc78fe9acc589868891d9a35be4447989d7aa511.
Breaks presubmits
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 1c5e871..3bb3a4c 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -98,13 +98,11 @@
int DOCKED_BOTTOM = 4;
/** @hide */
- String INPUT_CONSUMER_PIP = "pip_input_consumer";
+ final static String INPUT_CONSUMER_PIP = "pip_input_consumer";
/** @hide */
- String INPUT_CONSUMER_NAVIGATION = "nav_input_consumer";
+ final static String INPUT_CONSUMER_NAVIGATION = "nav_input_consumer";
/** @hide */
- String INPUT_CONSUMER_WALLPAPER = "wallpaper_input_consumer";
- /** @hide */
- String INPUT_CONSUMER_RECENTS_ANIMATION = "recents_animation_input_consumer";
+ final static String INPUT_CONSUMER_WALLPAPER = "wallpaper_input_consumer";
/**
* Not set up for a transition.
diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java
index 281e0a8..88b7a11 100644
--- a/services/core/java/com/android/server/wm/InputMonitor.java
+++ b/services/core/java/com/android/server/wm/InputMonitor.java
@@ -19,7 +19,6 @@
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.WindowManager.INPUT_CONSUMER_NAVIGATION;
import static android.view.WindowManager.INPUT_CONSUMER_PIP;
-import static android.view.WindowManager.INPUT_CONSUMER_RECENTS_ANIMATION;
import static android.view.WindowManager.INPUT_CONSUMER_WALLPAPER;
import static android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_DISABLE_WALLPAPER_TOUCH_EVENTS;
@@ -87,7 +86,6 @@
private boolean mAddInputConsumerHandle;
private boolean mAddPipInputConsumerHandle;
private boolean mAddWallpaperInputConsumerHandle;
- private boolean mAddRecentsAnimationInputConsumerHandle;
private boolean mDisableWallpaperTouchEvents;
private final Rect mTmpRect = new Rect();
private final UpdateInputForAllWindowsConsumer mUpdateInputForAllWindowsConsumer =
@@ -614,7 +612,7 @@
InputConsumerImpl navInputConsumer;
InputConsumerImpl pipInputConsumer;
InputConsumerImpl wallpaperInputConsumer;
- InputConsumerImpl recentsAnimationInputConsumer;
+ Rect pipTouchableBounds;
boolean inDrag;
WallpaperController wallpaperController;
@@ -624,13 +622,11 @@
navInputConsumer = getInputConsumer(INPUT_CONSUMER_NAVIGATION, DEFAULT_DISPLAY);
pipInputConsumer = getInputConsumer(INPUT_CONSUMER_PIP, DEFAULT_DISPLAY);
wallpaperInputConsumer = getInputConsumer(INPUT_CONSUMER_WALLPAPER, DEFAULT_DISPLAY);
- recentsAnimationInputConsumer = getInputConsumer(INPUT_CONSUMER_RECENTS_ANIMATION,
- DEFAULT_DISPLAY);
mAddInputConsumerHandle = navInputConsumer != null;
mAddPipInputConsumerHandle = pipInputConsumer != null;
mAddWallpaperInputConsumerHandle = wallpaperInputConsumer != null;
- mAddRecentsAnimationInputConsumerHandle = recentsAnimationInputConsumer != null;
mTmpRect.setEmpty();
+ pipTouchableBounds = mAddPipInputConsumerHandle ? mTmpRect : null;
mDisableWallpaperTouchEvents = false;
this.inDrag = inDrag;
wallpaperController = mService.mRoot.mWallpaperController;
@@ -663,28 +659,12 @@
final boolean hasFocus = w == mInputFocus;
final boolean isVisible = w.isVisibleLw();
- if (mAddRecentsAnimationInputConsumerHandle) {
- final RecentsAnimationController recentsAnimationController =
- mService.getRecentsAnimationController();
- if (recentsAnimationController != null
- && recentsAnimationController.hasInputConsumerForApp(w.mAppToken)) {
- if (recentsAnimationController.updateInputConsumerForApp(
- recentsAnimationInputConsumer, hasFocus)) {
- addInputWindowHandle(recentsAnimationInputConsumer.mWindowHandle);
- mAddRecentsAnimationInputConsumerHandle = false;
- }
- // Skip adding the window below regardless of whether there is an input consumer
- // to handle it
- return;
- }
- }
-
if (w.inPinnedWindowingMode()) {
if (mAddPipInputConsumerHandle
&& (inputWindowHandle.layer <= pipInputConsumer.mWindowHandle.layer)) {
// Update the bounds of the Pip input consumer to match the window bounds.
- w.getBounds(mTmpRect);
- pipInputConsumer.mWindowHandle.touchableRegion.set(mTmpRect);
+ w.getBounds(pipTouchableBounds);
+ pipInputConsumer.mWindowHandle.touchableRegion.set(pipTouchableBounds);
addInputWindowHandle(pipInputConsumer.mWindowHandle);
mAddPipInputConsumerHandle = false;
}
diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java
index c7d4b8e..c7ad17b 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimationController.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java
@@ -19,7 +19,6 @@
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
import static android.view.RemoteAnimationTarget.MODE_CLOSING;
-import static android.view.WindowManager.INPUT_CONSUMER_RECENTS_ANIMATION;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
@@ -75,8 +74,6 @@
// enabled for it to start intercepting touch events.
private boolean mInputConsumerEnabled;
- private Rect mTmpRect = new Rect();
-
public interface RecentsAnimationCallbacks {
void onAnimationFinished(boolean moveHomeToTop);
}
@@ -266,7 +263,6 @@
mService.mInputMonitor.updateInputWindowsLw(true /*force*/);
mService.scheduleAnimationLocked();
- mService.destroyInputConsumer(INPUT_CONSUMER_RECENTS_ANIMATION);
}
void checkAnimationReady(WallpaperController wallpaperController) {
@@ -285,33 +281,21 @@
&& isHomeAppOverWallpaper();
}
- boolean hasInputConsumerForApp(AppWindowToken appToken) {
- return mInputConsumerEnabled && isAnimatingApp(appToken);
- }
-
- boolean updateInputConsumerForApp(InputConsumerImpl recentsAnimationInputConsumer,
- boolean hasFocus) {
- // Update the input consumer touchable region to match the home app main window
- final WindowState homeAppMainWindow = mHomeAppToken != null
- ? mHomeAppToken.findMainWindow()
- : null;
- if (homeAppMainWindow != null) {
- homeAppMainWindow.getBounds(mTmpRect);
- recentsAnimationInputConsumer.mWindowHandle.hasFocus = hasFocus;
- recentsAnimationInputConsumer.mWindowHandle.touchableRegion.set(mTmpRect);
- return true;
- }
- return false;
- }
-
- private boolean isHomeAppOverWallpaper() {
+ boolean isHomeAppOverWallpaper() {
if (mHomeAppToken == null) {
return false;
}
return mHomeAppToken.windowsCanBeWallpaperTarget();
}
- private boolean isAnimatingApp(AppWindowToken appToken) {
+ WindowState getHomeAppMainWindow() {
+ if (mHomeAppToken == null) {
+ return null;
+ }
+ return mHomeAppToken.findMainWindow();
+ }
+
+ boolean isAnimatingApp(AppWindowToken appToken) {
for (int i = mPendingAnimations.size() - 1; i >= 0; i--) {
final Task task = mPendingAnimations.get(i).mTask;
for (int j = task.getChildCount() - 1; j >= 0; j--) {
@@ -324,6 +308,10 @@
return false;
}
+ boolean isInputConsumerEnabled() {
+ return mInputConsumerEnabled;
+ }
+
private class TaskAnimationAdapter implements AnimationAdapter {
private Task mTask;