Class ScreenUpdateHandler

java.lang.Object
android.os.Handler
org.robolectric.simulator.ScreenUpdateHandler
All Implemented Interfaces:
ViewTreeObserver.OnDrawListener, Executor, Consumer<List<View>>

public class ScreenUpdateHandler extends Handler implements ViewTreeObserver.OnDrawListener, Consumer<List<View>>, Executor
A handler that sends events to take a screenshot and update the Swing UI/VideoRecorder when needed.

Requires ShadowView.useRealDrawTraversals to be enabled.

  • Method Details

    • create

      @Nullable public static ScreenUpdateHandler create(FrameListener... frameListeners)
      Creates a ScreenUpdateHandler if any non-null FrameListeners are provided. Otherwise, returns null.
    • requestStartUi

      public void requestStartUi()
    • handleMessage

      public void handleMessage(Message msg)
      Overrides:
      handleMessage in class Handler
    • registerDrawListener

      public void registerDrawListener()
      Register a listener for draw events.

      This is a global listener that is not reset between tests, so only needs to be called once.

    • registerWindowListener

      public void registerWindowListener()
      Register a Window listener

      This is to support rendering a blank screen when all views have been removed,

      Window listeners are reset between tests so this must be called at the start of each test.

    • onDraw

      public void onDraw()
      The global onDraw listener callback
      Specified by:
      onDraw in interface ViewTreeObserver.OnDrawListener
    • accept

      public void accept(List<View> views)
      The GlobalWindowViewsListener callback. Currently only supported on POST_BAKLAVA
      Specified by:
      accept in interface Consumer<List<View>>
    • execute

      public void execute(Runnable command)
      The executor callback for GlobalWindowViewsListener
      Specified by:
      execute in interface Executor
    • newTestStarted

      public void newTestStarted()