@Override protected BaseVariant getBaseVariant() { return getLibraryVariant().getTestVariant(); }
String getFlavor() { return getBaseVariant().getFlavorName(); }
public Set<File> getJavaResources(BaseVariant variant) { return variant .getSourceSets() .stream() .map(SourceProvider::getResourcesDirectories) .flatMap(Collection::stream) .collect(Collectors.toSet()); }
String getBuildType() { return getBaseVariant().getBuildType().getName(); }
static List<String> getJavaCompilerOptions(BaseVariant baseVariant) { if (baseVariant != null && baseVariant.getJavaCompiler() instanceof JavaCompile) { List<String> options = ((JavaCompile) baseVariant.getJavaCompiler()).getOptions().getCompilerArgs(); // Remove options added by apt plugin since they are handled by apt scope separately filterOptions(options, ImmutableList.of("-s", "-processorpath")); return options; } else { return ImmutableList.of(); } }
@Override public Scope getProvided() { return Scope.builder(getProject()) .configuration(getBaseVariant().getCompileConfiguration()) .build(); }
@Override public Scope getMain() { return Scope.builder(getProject()) .configuration(getBaseVariant().getRuntimeConfiguration()) .sourceDirs(getSources(getBaseVariant())) .javaResourceDirs(getJavaResources(getBaseVariant())) .compilerOptions(Scope.Builder.COMPILER.JAVA, getJavaCompilerOptions(getBaseVariant())) .build(); }
@Override public Scope getApt() { if (getIsKapt()) { return getAptScopeForConfiguration(KAPT_ANDROID_TEST); } else { return getAptScopeForConfiguration(getBaseVariant().getAnnotationProcessorConfiguration()); } }
@Override Map<String, String> getResVariantDirs() { Map<String, String> variantDirs = new HashMap<>(); getLibraryVariant() .getSourceSets() .forEach( provider -> getAvailable(provider.getResDirectories()) .forEach(dir -> variantDirs.put(dir, provider.getName()))); return variantDirs; }
@Override public Scope getTestProvided() { return Scope.builder(getProject()) .configuration( getUnitTestVariant() != null ? getUnitTestVariant().getCompileConfiguration() : null) .build(); }
@Override public Scope getTest() { Scope.Builder builder = Scope.builder(getProject()); UnitTestVariant unitTestVariant = getUnitTestVariant(); if (unitTestVariant != null) { builder.configuration(unitTestVariant.getRuntimeConfiguration()); builder.sourceDirs(getSources(unitTestVariant)); builder.javaResourceDirs(getJavaResources(unitTestVariant)); builder.compilerOptions(Scope.Builder.COMPILER.JAVA, getJavaCompilerOptions(unitTestVariant)); builder.compilerOptions(Scope.Builder.COMPILER.KOTLIN, getKotlinCompilerOptions(true)); } return builder.build(); }
public Set<String> getAidl() { return getBaseVariant() .getSourceSets() .stream() .map(i -> getAvailable(i.getAidlDirectories())) .flatMap(Collection::stream) .collect(Collectors.toSet()); }
@Override public Scope getProvided() { return Scope.builder(getProject()) .configuration(getBaseVariant().getCompileConfiguration()) .build(); }
@Override public Scope getMain() { return Scope.builder(getProject()) .configuration(getBaseVariant().getRuntimeConfiguration()) .sourceDirs(getSources(getBaseVariant())) .javaResourceDirs(getJavaResources(getBaseVariant())) .compilerOptions(Scope.Builder.COMPILER.JAVA, getJavaCompilerOptions(getBaseVariant())) .compilerOptions(Scope.Builder.COMPILER.KOTLIN, getKotlinCompilerOptions(false)) .build(); }
@Override public List<Scope> getAptScopes() { AnnotationProcessorCache apCache = ProjectUtil.getAnnotationProcessorCache(getProject()); if (getIsKapt()) { return apCache.getAnnotationProcessorScopes(getProject(), KAPT_ANDROID_TEST); } else { return apCache.getAnnotationProcessorScopes( getProject(), getBaseVariant().getAnnotationProcessorConfiguration()); } }
public Set<String> getAssetDirs() { return getBaseVariant() .getSourceSets() .stream() .map(i -> getAvailable(i.getAssetsDirectories())) .flatMap(Collection::stream) .collect(Collectors.toSet()); }
public Set<String> getJniLibs() { return getBaseVariant() .getSourceSets() .stream() .map(i -> getAvailable(i.getJniLibsDirectories())) .flatMap(Collection::stream) .collect(Collectors.toSet()); }
public Set<String> getResDirs() { return getBaseVariant() .getSourceSets() .stream() .map(i -> getAvailable(i.getResDirectories())) .flatMap(Collection::stream) .collect(Collectors.toSet()); }
@Nullable public String getProjectResDir() { List<SourceProvider> sourceSets = getBaseVariant().getSourceSets(); if (!sourceSets.isEmpty()) { SourceProvider main = sourceSets.get(0); Set<String> mainResDirectories = getAvailable(main.getResDirectories()); if (mainResDirectories.size() > 0) { return mainResDirectories.iterator().next(); } } return null; }
/** Returns a map of each resource directory to its corresponding variant */ Map<String, String> getResVariantDirs() { Map<String, String> variantDirs = new HashMap<>(); for (SourceProvider provider : getBaseVariant().getSourceSets()) { for (String dir : getAvailable(provider.getResDirectories())) { variantDirs.put(dir, provider.getName()); } } return variantDirs; }