diff options
author | Charles Chen <charlesccchen@google.com> | 2020-02-04 12:18:49 +0800 |
---|---|---|
committer | Charles Chen <charlesccchen@google.com> | 2020-02-07 16:16:48 +0800 |
commit | 47410847161bd941f38a87ca01d836bd8d34455c (patch) | |
tree | c5e477b71f47fbe7a736ba6f5dff0b908c1d2e01 | |
parent | f8df902cbfaa9802ca51fab4faad8f50aa61f319 (diff) |
Fix AccessibilityInputFilterTest
The root cause is that we use WM#getCurrentMetrics(New API) instead of
Display#getSize in ViewConfiguration .
However, we use a stub display in AccessibilityInputFilterTest, which
don't have a corresponding DisplayContent in WMS.
Use getDisplayContentOrCreate to create a DisplayContent if it is not
yet created, and throws exception if display object is invalid.
fixes: 148823816
Test: atest AccessibilityInputFilterTest
Test: atest WindowMetricsTests
Change-Id: I36c6b020faafebbf609a46dfdeb0c9580e115e01
-rw-r--r-- | core/java/android/view/WindowManagerImpl.java | 2 | ||||
-rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerService.java | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/core/java/android/view/WindowManagerImpl.java b/core/java/android/view/WindowManagerImpl.java index 4365d1f5194a..56683dd9a5d1 100644 --- a/core/java/android/view/WindowManagerImpl.java +++ b/core/java/android/view/WindowManagerImpl.java @@ -277,7 +277,7 @@ public final class WindowManagerImpl implements WindowManager { .setStableInsets(Insets.of(stableInsets)) .setDisplayCutout(displayCutout.get()).build(); } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); } - return null; } } diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 6e1f46bb5e42..196434dbb6ee 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -8015,7 +8015,11 @@ public class WindowManagerService extends IWindowManager.Stub int displayId, Rect outContentInsets, Rect outStableInsets, DisplayCutout.ParcelableWrapper displayCutout) { synchronized (mGlobalLock) { - final DisplayContent dc = mRoot.getDisplayContent(displayId); + final DisplayContent dc = mRoot.getDisplayContentOrCreate(displayId); + if (dc == null) { + throw new WindowManager.InvalidDisplayException("Display#" + displayId + + "could not be found!"); + } final WindowToken windowToken = dc.getWindowToken(attrs.token); final ActivityRecord activity; if (windowToken != null && windowToken.asActivityRecord() != null) { |