Loading services/core/java/com/android/server/wm/InputMonitor.java +8 −5 Original line number Diff line number Diff line Loading @@ -48,6 +48,8 @@ import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; import static com.android.server.wm.WindowManagerService.LOGTAG_INPUT_FOCUS; import static java.lang.Integer.MAX_VALUE; import android.annotation.Nullable; import android.graphics.Rect; import android.graphics.Region; Loading Loading @@ -581,10 +583,11 @@ final class InputMonitor { if (mAddRecentsAnimationInputConsumerHandle && shouldApplyRecentsInputConsumer) { if (recentsAnimationController.updateInputConsumerForApp( mRecentsAnimationInputConsumer.mWindowHandle)) { final WindowState highestLayerWindow = recentsAnimationController.getHighestLayerWindow(); if (highestLayerWindow != null) { mRecentsAnimationInputConsumer.show(mInputTransaction, highestLayerWindow); final DisplayArea targetDA = recentsAnimationController.getTargetAppDisplayArea(); if (targetDA != null) { mRecentsAnimationInputConsumer.reparent(mInputTransaction, targetDA); mRecentsAnimationInputConsumer.show(mInputTransaction, MAX_VALUE - 1); mAddRecentsAnimationInputConsumerHandle = false; } } Loading @@ -597,7 +600,7 @@ final class InputMonitor { rootTask.getSurfaceControl()); // We set the layer to z=MAX-1 so that it's always on top. mPipInputConsumer.reparent(mInputTransaction, rootTask); mPipInputConsumer.show(mInputTransaction, Integer.MAX_VALUE - 1); mPipInputConsumer.show(mInputTransaction, MAX_VALUE - 1); mAddPipInputConsumerHandle = false; } } Loading services/core/java/com/android/server/wm/RecentsAnimationController.java +4 −14 Original line number Diff line number Diff line Loading @@ -1125,21 +1125,11 @@ public class RecentsAnimationController implements DeathRecipient { return mTargetActivityRecord.findMainWindow(); } /** * Returns the window with the highest layer, or null if none is found. */ public WindowState getHighestLayerWindow() { int highestLayer = Integer.MIN_VALUE; Task highestLayerTask = null; for (int i = mPendingAnimations.size() - 1; i >= 0; i--) { TaskAnimationAdapter adapter = mPendingAnimations.get(i); int layer = adapter.mTask.getPrefixOrderIndex(); if (layer > highestLayer) { highestLayer = layer; highestLayerTask = adapter.mTask; } DisplayArea getTargetAppDisplayArea() { if (mTargetActivityRecord == null) { return null; } return highestLayerTask.getTopMostActivity().getTopChild(); return mTargetActivityRecord.getDisplayArea(); } boolean isAnimatingTask(Task task) { Loading Loading
services/core/java/com/android/server/wm/InputMonitor.java +8 −5 Original line number Diff line number Diff line Loading @@ -48,6 +48,8 @@ import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; import static com.android.server.wm.WindowManagerService.LOGTAG_INPUT_FOCUS; import static java.lang.Integer.MAX_VALUE; import android.annotation.Nullable; import android.graphics.Rect; import android.graphics.Region; Loading Loading @@ -581,10 +583,11 @@ final class InputMonitor { if (mAddRecentsAnimationInputConsumerHandle && shouldApplyRecentsInputConsumer) { if (recentsAnimationController.updateInputConsumerForApp( mRecentsAnimationInputConsumer.mWindowHandle)) { final WindowState highestLayerWindow = recentsAnimationController.getHighestLayerWindow(); if (highestLayerWindow != null) { mRecentsAnimationInputConsumer.show(mInputTransaction, highestLayerWindow); final DisplayArea targetDA = recentsAnimationController.getTargetAppDisplayArea(); if (targetDA != null) { mRecentsAnimationInputConsumer.reparent(mInputTransaction, targetDA); mRecentsAnimationInputConsumer.show(mInputTransaction, MAX_VALUE - 1); mAddRecentsAnimationInputConsumerHandle = false; } } Loading @@ -597,7 +600,7 @@ final class InputMonitor { rootTask.getSurfaceControl()); // We set the layer to z=MAX-1 so that it's always on top. mPipInputConsumer.reparent(mInputTransaction, rootTask); mPipInputConsumer.show(mInputTransaction, Integer.MAX_VALUE - 1); mPipInputConsumer.show(mInputTransaction, MAX_VALUE - 1); mAddPipInputConsumerHandle = false; } } Loading
services/core/java/com/android/server/wm/RecentsAnimationController.java +4 −14 Original line number Diff line number Diff line Loading @@ -1125,21 +1125,11 @@ public class RecentsAnimationController implements DeathRecipient { return mTargetActivityRecord.findMainWindow(); } /** * Returns the window with the highest layer, or null if none is found. */ public WindowState getHighestLayerWindow() { int highestLayer = Integer.MIN_VALUE; Task highestLayerTask = null; for (int i = mPendingAnimations.size() - 1; i >= 0; i--) { TaskAnimationAdapter adapter = mPendingAnimations.get(i); int layer = adapter.mTask.getPrefixOrderIndex(); if (layer > highestLayer) { highestLayer = layer; highestLayerTask = adapter.mTask; } DisplayArea getTargetAppDisplayArea() { if (mTargetActivityRecord == null) { return null; } return highestLayerTask.getTopMostActivity().getTopChild(); return mTargetActivityRecord.getDisplayArea(); } boolean isAnimatingTask(Task task) { Loading