summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Chen <charlesccchen@google.com>2020-02-04 12:18:49 +0800
committerCharles Chen <charlesccchen@google.com>2020-02-07 16:16:48 +0800
commit47410847161bd941f38a87ca01d836bd8d34455c (patch)
treec5e477b71f47fbe7a736ba6f5dff0b908c1d2e01
parentf8df902cbfaa9802ca51fab4faad8f50aa61f319 (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.java2
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java6
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) {