diff options
| author | 2020-08-19 15:34:01 +0000 | |
|---|---|---|
| committer | 2020-08-19 15:34:01 +0000 | |
| commit | cfd825ef5c869c2710e314a8fe650eab70abea58 (patch) | |
| tree | aeed07d5911a7afedcbcae137572ff114277cc52 | |
| parent | 51143b5d996eba10b020d394a1ab52e5ea42183f (diff) | |
| parent | 4541a3234c6f5fd531ee6665306f9f3e2140395f (diff) | |
Merge "Rename InputWindowHandle hasFocus to focusable"
8 files changed, 15 insertions, 29 deletions
diff --git a/core/java/android/view/InputWindowHandle.java b/core/java/android/view/InputWindowHandle.java index e341845277d4..1ef701f732ff 100644 --- a/core/java/android/view/InputWindowHandle.java +++ b/core/java/android/view/InputWindowHandle.java @@ -70,11 +70,8 @@ public final class InputWindowHandle { // Window is visible. public boolean visible; - // Window can receive keys. - public boolean canReceiveKeys; - - // Window has focus. - public boolean hasFocus; + // Window can be focused. + public boolean focusable; // Window has wallpaper. (window is the current wallpaper target) public boolean hasWallpaper; diff --git a/core/jni/android_hardware_input_InputWindowHandle.cpp b/core/jni/android_hardware_input_InputWindowHandle.cpp index ecdba3fcb023..a0638207a841 100644 --- a/core/jni/android_hardware_input_InputWindowHandle.cpp +++ b/core/jni/android_hardware_input_InputWindowHandle.cpp @@ -56,8 +56,7 @@ static struct { jfieldID scaleFactor; jfieldID touchableRegion; jfieldID visible; - jfieldID canReceiveKeys; - jfieldID hasFocus; + jfieldID focusable; jfieldID hasWallpaper; jfieldID paused; jfieldID trustedOverlay; @@ -145,10 +144,7 @@ bool NativeInputWindowHandle::updateInfo() { mInfo.visible = env->GetBooleanField(obj, gInputWindowHandleClassInfo.visible); - mInfo.canReceiveKeys = env->GetBooleanField(obj, - gInputWindowHandleClassInfo.canReceiveKeys); - mInfo.hasFocus = env->GetBooleanField(obj, - gInputWindowHandleClassInfo.hasFocus); + mInfo.focusable = env->GetBooleanField(obj, gInputWindowHandleClassInfo.focusable); mInfo.hasWallpaper = env->GetBooleanField(obj, gInputWindowHandleClassInfo.hasWallpaper); mInfo.paused = env->GetBooleanField(obj, @@ -320,11 +316,7 @@ int register_android_view_InputWindowHandle(JNIEnv* env) { GET_FIELD_ID(gInputWindowHandleClassInfo.visible, clazz, "visible", "Z"); - GET_FIELD_ID(gInputWindowHandleClassInfo.canReceiveKeys, clazz, - "canReceiveKeys", "Z"); - - GET_FIELD_ID(gInputWindowHandleClassInfo.hasFocus, clazz, - "hasFocus", "Z"); + GET_FIELD_ID(gInputWindowHandleClassInfo.focusable, clazz, "focusable", "Z"); GET_FIELD_ID(gInputWindowHandleClassInfo.hasWallpaper, clazz, "hasWallpaper", "Z"); diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java index 133b11116460..c9f463b8fbeb 100644 --- a/services/core/java/com/android/server/wm/DragState.java +++ b/services/core/java/com/android/server/wm/DragState.java @@ -283,8 +283,9 @@ class DragState { mDragWindowHandle.layoutParamsType = WindowManager.LayoutParams.TYPE_DRAG; mDragWindowHandle.dispatchingTimeoutMillis = DEFAULT_DISPATCHING_TIMEOUT_MILLIS; mDragWindowHandle.visible = true; - mDragWindowHandle.canReceiveKeys = false; - mDragWindowHandle.hasFocus = true; + // Allows the system to consume keys when dragging is active. This can also be used to + // modify the drag state on key press. Example, cancel drag on escape key. + mDragWindowHandle.focusable = true; mDragWindowHandle.hasWallpaper = false; mDragWindowHandle.paused = false; mDragWindowHandle.ownerPid = Process.myPid(); diff --git a/services/core/java/com/android/server/wm/InputConsumerImpl.java b/services/core/java/com/android/server/wm/InputConsumerImpl.java index 3b24584b0357..a79d3bb00907 100644 --- a/services/core/java/com/android/server/wm/InputConsumerImpl.java +++ b/services/core/java/com/android/server/wm/InputConsumerImpl.java @@ -80,8 +80,7 @@ class InputConsumerImpl implements IBinder.DeathRecipient { mWindowHandle.layoutParamsFlags = 0; mWindowHandle.dispatchingTimeoutMillis = DEFAULT_DISPATCHING_TIMEOUT_MILLIS; mWindowHandle.visible = true; - mWindowHandle.canReceiveKeys = false; - mWindowHandle.hasFocus = false; + mWindowHandle.focusable = false; mWindowHandle.hasWallpaper = false; mWindowHandle.paused = false; mWindowHandle.ownerPid = Process.myPid(); diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java index cec797c43bcd..16c4942ee972 100644 --- a/services/core/java/com/android/server/wm/InputMonitor.java +++ b/services/core/java/com/android/server/wm/InputMonitor.java @@ -281,8 +281,7 @@ final class InputMonitor { inputWindowHandle.layoutParamsType = type; inputWindowHandle.dispatchingTimeoutMillis = child.getInputDispatchingTimeoutMillis(); inputWindowHandle.visible = isVisible; - inputWindowHandle.canReceiveKeys = child.canReceiveKeys(); - inputWindowHandle.hasFocus = hasFocus; + inputWindowHandle.focusable = hasFocus; inputWindowHandle.hasWallpaper = hasWallpaper; inputWindowHandle.paused = child.mActivityRecord != null ? child.mActivityRecord.paused : false; inputWindowHandle.ownerPid = child.mSession.mPid; @@ -579,8 +578,7 @@ final class InputMonitor { inputWindowHandle.layoutParamsType = type; inputWindowHandle.dispatchingTimeoutMillis = 0; // it should never receive input inputWindowHandle.visible = isVisible; - inputWindowHandle.canReceiveKeys = false; - inputWindowHandle.hasFocus = false; + inputWindowHandle.focusable = false; inputWindowHandle.inputFeatures = INPUT_FEATURE_NO_INPUT_CHANNEL; inputWindowHandle.scaleFactor = 1; inputWindowHandle.layoutParamsFlags = diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java index 143fbb0fe48b..6882dc4ca151 100644 --- a/services/core/java/com/android/server/wm/RecentsAnimationController.java +++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java @@ -821,7 +821,7 @@ public class RecentsAnimationController implements DeathRecipient { : null; if (targetAppMainWindow != null) { targetAppMainWindow.getBounds(mTmpRect); - inputWindowHandle.hasFocus = hasFocus; + inputWindowHandle.focusable = hasFocus; inputWindowHandle.touchableRegion.set(mTmpRect); return true; } diff --git a/services/core/java/com/android/server/wm/TaskPositioner.java b/services/core/java/com/android/server/wm/TaskPositioner.java index a66cd846e8be..f32781a8fcb8 100644 --- a/services/core/java/com/android/server/wm/TaskPositioner.java +++ b/services/core/java/com/android/server/wm/TaskPositioner.java @@ -242,8 +242,8 @@ class TaskPositioner implements IBinder.DeathRecipient { mDragWindowHandle.layoutParamsType = WindowManager.LayoutParams.TYPE_DRAG; mDragWindowHandle.dispatchingTimeoutMillis = DEFAULT_DISPATCHING_TIMEOUT_MILLIS; mDragWindowHandle.visible = true; - mDragWindowHandle.canReceiveKeys = false; - mDragWindowHandle.hasFocus = true; + // When dragging the window around, we do not want to steal focus for the window. + mDragWindowHandle.focusable = false; mDragWindowHandle.hasWallpaper = false; mDragWindowHandle.paused = false; mDragWindowHandle.ownerPid = Process.myPid(); diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index bf900f7a91c8..2ce16b2fdd79 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -8076,8 +8076,7 @@ public class WindowManagerService extends IWindowManager.Stub h.layoutParamsFlags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | sanitizedFlags; h.layoutParamsType = type; h.dispatchingTimeoutMillis = DEFAULT_DISPATCHING_TIMEOUT_MILLIS; - h.canReceiveKeys = false; - h.hasFocus = false; + h.focusable = false; h.hasWallpaper = false; h.paused = false; |