From 74184991b7af9edb2c8068476dc31cd77514fc87 Mon Sep 17 00:00:00 2001 From: Manjeet Rulhania Date: Thu, 23 Feb 2023 00:03:48 +0000 Subject: [PATCH] Rely on Display#getRealSize when dumping XML hierarchy * Previously, the height returned by Display#getSize was used to determine visible objects. Based on the API level and the presence of system decorations (e.g. notches), this can cause objects near the bottom of the screen to be considered out of bounds (i.e. only objects within y=0 and y=partial_height are considered even if the omitted decorations are at the top of the screen). cherry pick from aosp/2384832 Bug: 236669488 Test: manual Merged-In: Iba21245c947cec0d0054f6d86e3585ba73233223 Change-Id: I50f143528d1f5a5b677eb2628efbcd658f4cc1b0 (cherry picked from commit afebeb7b43f318a3ebd856f039d74475df92db9d) --- .../src/com/android/commands/uiautomator/DumpCommand.java | 2 +- .../android/uiautomator/core/AccessibilityNodeInfoDumper.java | 2 +- .../library/core-src/com/android/uiautomator/core/UiDevice.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmds/uiautomator/cmds/uiautomator/src/com/android/commands/uiautomator/DumpCommand.java b/cmds/uiautomator/cmds/uiautomator/src/com/android/commands/uiautomator/DumpCommand.java index 3b14be7327f75..24727c5f24482 100644 --- a/cmds/uiautomator/cmds/uiautomator/src/com/android/commands/uiautomator/DumpCommand.java +++ b/cmds/uiautomator/cmds/uiautomator/src/com/android/commands/uiautomator/DumpCommand.java @@ -107,7 +107,7 @@ public class DumpCommand extends Command { DisplayManagerGlobal.getInstance().getRealDisplay(Display.DEFAULT_DISPLAY); int rotation = display.getRotation(); Point size = new Point(); - display.getSize(size); + display.getRealSize(size); AccessibilityNodeInfoDumper.dumpWindowToFile(info, dumpFile, rotation, size.x, size.y); } diff --git a/cmds/uiautomator/library/core-src/com/android/uiautomator/core/AccessibilityNodeInfoDumper.java b/cmds/uiautomator/library/core-src/com/android/uiautomator/core/AccessibilityNodeInfoDumper.java index ab198b319e273..488292d68620e 100644 --- a/cmds/uiautomator/library/core-src/com/android/uiautomator/core/AccessibilityNodeInfoDumper.java +++ b/cmds/uiautomator/library/core-src/com/android/uiautomator/core/AccessibilityNodeInfoDumper.java @@ -139,7 +139,7 @@ public class AccessibilityNodeInfoDumper { serializer.attribute("", "id", Integer.toString(displayId)); int rotation = display.getRotation(); Point size = new Point(); - display.getSize(size); + display.getRealSize(size); for (int i = 0, n = windows.size(); i < n; ++i) { dumpWindowRec(windows.get(i), serializer, i, size.x, size.y, rotation); } diff --git a/cmds/uiautomator/library/core-src/com/android/uiautomator/core/UiDevice.java b/cmds/uiautomator/library/core-src/com/android/uiautomator/core/UiDevice.java index b1b432bf79abf..a31deb0845751 100644 --- a/cmds/uiautomator/library/core-src/com/android/uiautomator/core/UiDevice.java +++ b/cmds/uiautomator/library/core-src/com/android/uiautomator/core/UiDevice.java @@ -767,7 +767,7 @@ public class UiDevice { if(root != null) { Display display = getAutomatorBridge().getDefaultDisplay(); Point size = new Point(); - display.getSize(size); + display.getRealSize(size); AccessibilityNodeInfoDumper.dumpWindowToFile(root, new File(new File(Environment.getDataDirectory(), "local/tmp"), fileName), display.getRotation(), size.x, size.y);