Class ShadowViewRootImpl

java.lang.Object
org.robolectric.shadows.ShadowViewRootImpl

@Implements(value=android.view.ViewRootImpl.class, isInAndroidSdk=false) public class ShadowViewRootImpl extends Object
  • Field Details

  • Constructor Details

    • ShadowViewRootImpl

      public ShadowViewRootImpl()
  • Method Details

    • setIsStatusBarVisible

      protected static void setIsStatusBarVisible(boolean isStatusBarVisible)
      Allows other shadows to set the state of isStatusBarVisible.
    • clearIsStatusBarVisible

      protected static void clearIsStatusBarVisible()
      Clears the last known state of isStatusBarVisible.
    • setIsNavigationBarVisible

      protected static void setIsNavigationBarVisible(boolean isNavigationBarVisible)
      Allows other shadows to set the state of isNavigationBarVisible.
    • clearIsNavigationBarVisible

      protected static void clearIsNavigationBarVisible()
      Clears the last known state of isNavigationBarVisible.
    • playSoundEffect

      @Implementation public void playSoundEffect(int effectId)
    • relayoutWindow

      @Implementation protected int relayoutWindow(WindowManager.LayoutParams params, int viewVisibility, boolean insetsPending) throws RemoteException
      Throws:
      RemoteException
    • callDispatchResized

      public void callDispatchResized()
    • getDisplay

      protected Display getDisplay()
    • setView

      @Implementation protected void setView(View view, WindowManager.LayoutParams attrs, View panelParentView)
    • setView

      @Implementation(minSdk=30) protected void setView(View view, WindowManager.LayoutParams attrs, View panelParentView, int userId)
    • getWindowInsets

      @Implementation(minSdk=30) protected WindowInsets getWindowInsets(boolean forceConstruct)
      On Android R+ WindowInsets supports checking visibility of specific inset types.

      For those SDK levels, override the real WindowInsets with the tracked system bar visibility status (isStatusBarVisible/isNavigationBarVisible), if set.

      NOTE: We use state tracking in place of a longer term solution of implementing the insets calculations and broadcast (via listeners) for now. Once we have insets calculations working we should remove this mechanism.

    • reset

      @Resetter public static void reset()
    • callWindowFocusChanged

      public void callWindowFocusChanged(boolean hasFocus)