All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.robolectric.shadows.GraphicsShadowPicker Maven / Gradle / Ivy

The newest version!
package org.robolectric.shadows;

import static android.os.Build.VERSION_CODES.O;

import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.GraphicsMode;
import org.robolectric.annotation.GraphicsMode.Mode;
import org.robolectric.config.ConfigurationRegistry;
import org.robolectric.shadow.api.ShadowPicker;

/** A {@link ShadowPicker} that selects between shadows given the Graphics mode. */
public class GraphicsShadowPicker implements ShadowPicker {

  private final Class legacyShadowClass;
  private final Class nativeShadowClass;

  public GraphicsShadowPicker(
      Class legacyShadowClass, Class nativeShadowClass) {
    this.legacyShadowClass = legacyShadowClass;
    this.nativeShadowClass = nativeShadowClass;
  }

  @Override
  public Class pickShadowClass() {
    if (RuntimeEnvironment.getApiLevel() >= getMinApiLevel()
        && ConfigurationRegistry.get(GraphicsMode.Mode.class) == Mode.NATIVE) {
      return nativeShadowClass;
    } else {
      return legacyShadowClass;
    }
  }

  protected int getMinApiLevel() {
    return O;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy