diff options
author | Chris Li <lihongyu@google.com> | 2024-03-16 13:47:04 +0000 |
---|---|---|
committer | Rex Hoffman <rexhoffman@google.com> | 2024-04-02 23:05:06 +0000 |
commit | 6c679013d2061f0570092e42bccee1352d13a8c2 (patch) | |
tree | c32ec86bd91fb13a4e1c970caedd7ca0f923adb1 | |
parent | d99da9c64d690b4dc511f6eee2592d10c2f26088 (diff) | |
download | robolectric-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.java | 28 |
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); |