From 0c3233fdfacdba8c5f59d10fb933c9b7d5cc5133 Mon Sep 17 00:00:00 2001 From: Paul Sowden Date: Fri, 25 Mar 2022 11:12:30 -0700 Subject: [PATCH] Allow disabling `initialAwakenScrollBars` temporarily To aid in migration of tests in preperation for enabling marking windows visible by default temporarily add a system property to allow disabling initial awaken of scroll bars. This property will be removed after test migration to allow default behavior. PiperOrigin-RevId: 437291434 --- .../java/org/robolectric/shadows/ShadowView.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowView.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowView.java index 3e49ce9f746..6d006300382 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowView.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowView.java @@ -48,6 +48,7 @@ import org.robolectric.annotation.Implements; import org.robolectric.annotation.LooperMode; import org.robolectric.annotation.RealObject; +import org.robolectric.annotation.ReflectorObject; import org.robolectric.annotation.Resetter; import org.robolectric.shadow.api.Shadow; import org.robolectric.util.ReflectionHelpers; @@ -62,6 +63,7 @@ public class ShadowView { @RealObject protected View realView; + @ReflectorObject protected _View_ viewReflector; private static final List globalClickListeners = new CopyOnWriteArrayList<>(); private static final List globalLongClickListeners = @@ -665,6 +667,17 @@ protected void clearAnimation() { } } + @Implementation + protected boolean initialAwakenScrollBars() { + // Temporarily allow disabling initial awaken of scroll bars to aid in migration of tests to + // default to window's being marked visible, this will be removed once migration is complete. + if (Boolean.getBoolean("robolectric.disableInitialAwakenScrollBars")) { + return false; + } else { + return viewReflector.initialAwakenScrollBars(); + } + } + private class AnimationRunner implements Runnable { private final Animation animation; private long startTime, startOffset, elapsedTime; @@ -830,6 +843,9 @@ void removeOnAttachStateChangeListener( @Direct int getSourceLayoutResId(); + + @Direct + boolean initialAwakenScrollBars(); } public void callOnAttachedToWindow() {