aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Li <lihongyu@google.com>2024-03-16 13:47:04 +0000
committerRex Hoffman <rexhoffman@google.com>2024-04-02 23:05:06 +0000
commit6c679013d2061f0570092e42bccee1352d13a8c2 (patch)
treec32ec86bd91fb13a4e1c970caedd7ca0f923adb1
parentd99da9c64d690b4dc511f6eee2592d10c2f26088 (diff)
downloadrobolectric-6c679013d2061f0570092e42bccee1352d13a8c2.tar.gz
Add ActivityWindowInfo parameter to ViewRootImpl#dispatchResized
Bug: 287582673 Test: Pass SystemUIGoogleRoboRNGTests Ignore-AOSP-First: internal change for V Change-Id: I6127f7a5226d21de1dc969fa0dee5182d26ddabf Merged-In: I6127f7a5226d21de1dc969fa0dee5182d26ddabf
-rw-r--r--shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewRootImpl.java28
1 files changed, 27 insertions, 1 deletions
diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewRootImpl.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewRootImpl.java
index 744b1c02e..a43874085 100644
--- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewRootImpl.java
+++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewRootImpl.java
@@ -23,6 +23,7 @@ import android.view.View;
import android.view.ViewRootImpl;
import android.view.WindowInsets;
import android.view.WindowManager;
+import android.window.ActivityWindowInfo;
import android.window.ClientWindowFrames;
import java.util.ArrayList;
import java.util.Optional;
@@ -123,7 +124,32 @@ public class ShadowViewRootImpl {
}
public void callDispatchResized() {
- if (RuntimeEnvironment.getApiLevel() > VERSION_CODES.TIRAMISU) {
+ if (RuntimeEnvironment.getApiLevel() > VERSION_CODES.UPSIDE_DOWN_CAKE) {
+ Display display = getDisplay();
+ Rect frame = new Rect();
+ display.getRectSize(frame);
+
+ ClientWindowFrames frames = new ClientWindowFrames();
+ // set the final field
+ ReflectionHelpers.setField(frames, "frame", frame);
+
+ ReflectionHelpers.callInstanceMethod(
+ ViewRootImpl.class,
+ realObject,
+ "dispatchResized",
+ ClassParameter.from(ClientWindowFrames.class, frames),
+ ClassParameter.from(boolean.class, true), /* reportDraw */
+ ClassParameter.from(
+ MergedConfiguration.class, new MergedConfiguration()), /* mergedConfiguration */
+ ClassParameter.from(InsetsState.class, new InsetsState()), /* insetsState */
+ ClassParameter.from(boolean.class, false), /* forceLayout */
+ ClassParameter.from(boolean.class, false), /* alwaysConsumeSystemBars */
+ ClassParameter.from(int.class, 0), /* displayId */
+ ClassParameter.from(int.class, 0), /* syncSeqId */
+ ClassParameter.from(boolean.class, false), /* dragResizing */
+ ClassParameter.from(
+ ActivityWindowInfo.class, new ActivityWindowInfo()) /* activityWindowInfo */);
+ } else if (RuntimeEnvironment.getApiLevel() > VERSION_CODES.TIRAMISU) {
Display display = getDisplay();
Rect frame = new Rect();
display.getRectSize(frame);