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

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

The newest version!
package org.robolectric.shadows;

import android.os.Build;
import android.os.Build.VERSION_CODES;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.ResourcesMode;
import org.robolectric.annotation.ResourcesMode.Mode;
import org.robolectric.config.ConfigurationRegistry;
import org.robolectric.shadow.api.ShadowPicker;
import org.robolectric.versioning.AndroidVersions.V;

public class ResourceModeShadowPicker implements ShadowPicker {

  private Class binaryShadowClass;
  private Class binary9ShadowClass;
  private Class binary10ShadowClass;
  private Class binary14ShadowClass;
  private Class nativeShadowClass;

  public ResourceModeShadowPicker(
      Class binaryShadowClass, Class binary9ShadowClass) {
    this.binaryShadowClass = binaryShadowClass;
    this.binary9ShadowClass = binary9ShadowClass;
    this.binary10ShadowClass = binary9ShadowClass;
    this.binary14ShadowClass = binary9ShadowClass;
  }

  public ResourceModeShadowPicker(
      Class binaryShadowClass,
      Class binary9ShadowClass,
      Class binary10ShadowClass,
      Class binary14ShadowClass) {
    this.binaryShadowClass = binaryShadowClass;
    this.binary9ShadowClass = binary9ShadowClass;
    this.binary10ShadowClass = binary10ShadowClass;
    this.binary14ShadowClass = binary14ShadowClass;
  }

  public ResourceModeShadowPicker(
      Class binaryShadowClass,
      Class binary9ShadowClass,
      Class binary10ShadowClass,
      Class binary14ShadowClass,
      Class nativeShadowClass) {
    this.binaryShadowClass = binaryShadowClass;
    this.binary9ShadowClass = binary9ShadowClass;
    this.binary10ShadowClass = binary10ShadowClass;
    this.binary14ShadowClass = binary14ShadowClass;
    this.nativeShadowClass = nativeShadowClass;
  }

  @Override
  public Class pickShadowClass() {
    if (RuntimeEnvironment.getApiLevel() >= V.SDK_INT
        && nativeShadowClass != null
        && ConfigurationRegistry.get(ResourcesMode.Mode.class) == Mode.NATIVE) {
      return nativeShadowClass;
    } else if (RuntimeEnvironment.getApiLevel() > VERSION_CODES.TIRAMISU) {
      return binary14ShadowClass;
    } else if (RuntimeEnvironment.getApiLevel() >= Build.VERSION_CODES.Q) {
      return binary10ShadowClass;
    } else if (RuntimeEnvironment.getApiLevel() >= Build.VERSION_CODES.P) {
      return binary9ShadowClass;
    } else {
      return binaryShadowClass;
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy