package org.robolectric.shadows; import android.hardware.display.DisplayManagerGlobal; import android.hardware.display.IDisplayManager; import android.view.Display; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; import org.robolectric.shadow.api.Shadow; import org.robolectric.util.ReflectionHelpers; import org.robolectric.util.ReflectionHelpers.ClassParameter; import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR1; import static android.os.Build.VERSION_CODES.M; import static org.robolectric.RuntimeEnvironment.getApiLevel; @Implements(value = DisplayManagerGlobal.class, isInAndroidSdk = false, minSdk = JELLY_BEAN_MR1) public class ShadowDisplayManagerGlobal { private static final IDisplayManager displayManager = ReflectionHelpers.createNullProxy(IDisplayManager.class); @Implementation public static Object getInstance() { return ReflectionHelpers.callConstructor(DisplayManagerGlobal.class, ClassParameter.from(IDisplayManager.class, displayManager)); } @Implementation public Object getDisplayInfo(int displayId) { Object result = Shadow.newInstanceOf("android.view.DisplayInfo"); if (getApiLevel() >= M) { ReflectionHelpers.setField(result, "supportedModes", new Display.Mode[]{new Display.Mode(0, 0, 0, 0.0f)}); } return result; } }