@NonNull @Override public List<File> getJavaClassFolders() { if (mJavaClassFolders == null) { mJavaClassFolders = new ArrayList<File>(1); File outputClassFolder = mVariant.getMainArtifact().getClassesFolder(); if (outputClassFolder.exists()) { mJavaClassFolders.add(outputClassFolder); } } return mJavaClassFolders; }
private List<SourceProvider> getSourceProviders() { if (mProviders == null) { List<SourceProvider> providers = Lists.newArrayList(); AndroidArtifact mainArtifact = mVariant.getMainArtifact(); for (String flavorName : mVariant.getProductFlavors()) { for (ProductFlavorContainer flavor : mProject.getProductFlavors()) { if (flavorName.equals(flavor.getProductFlavor().getName())) { String buildTypeName = mVariant.getBuildType(); for (BuildTypeContainer buildType : mProject.getBuildTypes()) { if (buildTypeName.equals(buildType.getBuildType().getName())) {
@Nullable private static String resolvePlaceHolder(@NonNull XmlContext context, @NonNull String hostname) { assert hostname.startsWith(SdkConstants.MANIFEST_PLACEHOLDER_PREFIX); Variant variant = context.getProject().getCurrentVariant(); if (variant != null) { Map<String, Object> placeHolders = variant.getMergedFlavor().getManifestPlaceholders(); String name = hostname.substring(MANIFEST_PLACEHOLDER_PREFIX.length(), hostname.length() - MANIFEST_PLACEHOLDER_SUFFIX.length()); Object value = placeHolders.get(name); if (value instanceof String) { return value.toString(); } } return null; }
public void setVariantName(@NonNull String variantName) { ensureInitialized(); // For something like debugFreeSubscription, set the variant's build type // to "debug", and the flavor set to ["free", "subscription"] when(variant.getName()).thenReturn(variantName); Splitter splitter = Splitter.on('_'); List<String> flavors = Lists.newArrayList(); for (String s : splitter.split(SdkVersionInfo.camelCaseToUnderlines(variantName))) { BuildType buildType = getBuildType(s, false); //noinspection VariableNotUsedInsideIf if (buildType != null) { when(variant.getBuildType()).thenReturn(s); } else { ProductFlavor flavor = getProductFlavor(s, false); //noinspection VariableNotUsedInsideIf if (flavor != null) { flavors.add(s); } } } when(variant.getProductFlavors()).thenReturn(flavors); }
if (variant.getProductFlavors().contains(pfc.getProductFlavor().getName())) { continue; if (variant.getName().equals(v.getName())) { continue; SourceProvider provider = v.getMainArtifact().getMultiFlavorSourceProvider(); if (provider != null) { providers.add(provider); if (variant.getBuildType().equals(btc.getBuildType().getName())) { continue; if (variant.getName().equals(v.getName())) { continue; SourceProvider provider = v.getMainArtifact().getVariantSourceProvider(); if (provider != null) { providers.add(provider);
Set<String> relevantDensities = Sets.newHashSet(); Variant variant = getCurrentVariant(); List<String> variantFlavors = variant.getProductFlavors(); AndroidProject gradleProjectModel = getGradleProjectModel(); AndroidArtifact mainArtifact = variant.getMainArtifact(); Collection<AndroidArtifactOutput> outputs = mainArtifact.getOutputs(); for (AndroidArtifactOutput output : outputs) {
when(variant.getMergedFlavor()).thenReturn(defaultFlavor); when(variant.getMainArtifact()).thenReturn(artifact);
for (String flavorName : mVariant.getProductFlavors()) { for (ProductFlavorContainer flavor : mProject.getProductFlavors()) { if (flavorName.equals(flavor.getProductFlavor().getName())) { String buildTypeName = mVariant.getBuildType(); for (BuildTypeContainer buildType : mProject.getBuildTypes()) { if (buildTypeName.equals(buildType.getBuildType().getName())) {
for (Variant variant : variants) { String buildType = variant.getBuildType(); boolean debugBuild = buildType.equals(DEBUG_BUILD); AndroidArtifact mainArtifact = variant.getMainArtifact();
public List<String> getIncludedVariantNames() { assert isVariantSpecific(); List<String> names = new ArrayList<>(); if (variants != null) { for (Variant variant : variants) { names.add(variant.getName()); } } Collections.sort(names); return names; }
Dependencies dependencies = variant.getMainArtifact().getDependencies(); for (AndroidLibrary library : dependencies.getLibraries()) { if (library.getProject() != null) { Project depProject = getProject(client, p, variant.getName()); if (depProject != null) { if (processedProjects == null) { variant.getName()); if (libLintProject != null) { lintProject.addDirectLibrary(libLintProject);
@Nullable private static List<String> getResConfigLanguages(@NonNull Project project) { if (project.isGradleProject() && project.getGradleProjectModel() != null && project.getCurrentVariant() != null) { Set<String> relevantDensities = Sets.newHashSet(); Variant variant = project.getCurrentVariant(); List<String> variantFlavors = variant.getProductFlavors(); AndroidProject gradleProjectModel = project.getGradleProjectModel(); addResConfigsFromFlavor(relevantDensities, null, project.getGradleProjectModel().getDefaultConfig()); for (ProductFlavorContainer container : gradleProjectModel.getProductFlavors()) { addResConfigsFromFlavor(relevantDensities, variantFlavors, container); } if (!relevantDensities.isEmpty()) { ArrayList<String> strings = Lists.newArrayList(relevantDensities); Collections.sort(strings); return strings; } } return null; }
private void parseExtraAndroidArtifacts(Set<ProjectDependency> dependencies, Variant variant) { String buildType = variant.getBuildType(); boolean debugBuild = buildType.equals(DEBUG_BUILD); Collection<AndroidArtifact> extraAndroidArtifacts = variant.getExtraAndroidArtifacts(); for (AndroidArtifact androidArtifact : extraAndroidArtifacts) { String name = androidArtifact.getName();
private void parseExtraJavaArtifacts(Set<ProjectDependency> dependencies, Variant variant) { String buildType = variant.getBuildType(); boolean debugBuild = buildType.equals(DEBUG_BUILD); Collection<JavaArtifact> extraJavaArtifacts = variant.getExtraJavaArtifacts(); for (JavaArtifact javaArtifact : extraJavaArtifacts) { if (debugBuild) { Collection<File> generatedSourceFolders = javaArtifact.getGeneratedSourceFolders(); for (File src : generatedSourceFolders) { this.project.getSources().add(src); } } Dependencies compileDependencies = javaArtifact.getDependencies(); Collection<AndroidLibrary> libraries = compileDependencies.getLibraries(); for (AndroidLibrary androidLibrary : libraries) { Collection<File> localJars = androidLibrary.getLocalJars(); for (File jar : localJars) { addDependencies(dependencies, jar); } } Collection<JavaLibrary> javaLibraries = compileDependencies.getJavaLibraries(); for (JavaLibrary javaLibrary : javaLibraries) { File file = javaLibrary.getJarFile(); addDependencies(dependencies, file); } } }
private void addDynamicResources( @NonNull Context context) { Project project = context.getProject(); AndroidProject model = project.getGradleProjectModel(); if (model != null) { Variant selectedVariant = project.getCurrentVariant(); if (selectedVariant != null) { for (BuildTypeContainer container : model.getBuildTypes()) { if (selectedVariant.getBuildType().equals(container.getBuildType().getName())) { addDynamicResources(project, container.getBuildType().getResValues()); } } } ProductFlavor flavor = model.getDefaultConfig().getProductFlavor(); addDynamicResources(project, flavor.getResValues()); } }
@NonNull @Override public List<File> getTestLibraries() { if (testLibraries == null) { testLibraries = Lists.newArrayListWithExpectedSize(6); for (AndroidArtifact artifact : mVariant.getExtraAndroidArtifacts()) { if (AndroidProject.ARTIFACT_ANDROID_TEST.equals(artifact.getName()) || AndroidProject.ARTIFACT_UNIT_TEST.equals(artifact.getName())) { Dependencies dependencies = artifact.getDependencies(); addJarsFromJavaLibrariesTransitively(dependencies.getJavaLibraries(), testLibraries, false); // Note that we don't include these for getJavaLibraries, but we need to // for tests since we don't keep them otherwise addJarsFromAndroidLibrariesTransitively(dependencies.getLibraries(), testLibraries, false); } } } return testLibraries; }
for (String flavorName : mVariant.getProductFlavors()) { for (ProductFlavorContainer flavor : mProject.getProductFlavors()) { if (flavorName.equals(flavor.getProductFlavor().getName())) { String buildTypeName = mVariant.getBuildType(); for (BuildTypeContainer buildType : mProject.getBuildTypes()) { if (buildTypeName.equals(buildType.getBuildType().getName())) {
public List<String> getExcludedVariantNames() { assert isVariantSpecific(); Collection<Variant> variants = gradleProject.getVariants(); Set<String> allVariants = new HashSet<>(variants.size()); for (Variant variant : variants) { allVariants.add(variant.getName()); } Set<String> included = new HashSet<>(getIncludedVariantNames()); Set<String> excluded = Sets.difference(allVariants, included); List<String> sorted = Lists.newArrayList(excluded); Collections.sort(sorted); return sorted; }
@Nullable private static List<String> getResConfigLanguages(@NonNull Project project) { if (project.isGradleProject() && project.getGradleProjectModel() != null && project.getCurrentVariant() != null) { Set<String> relevantDensities = Sets.newHashSet(); Variant variant = project.getCurrentVariant(); List<String> variantFlavors = variant.getProductFlavors(); AndroidProject gradleProjectModel = project.getGradleProjectModel(); addResConfigsFromFlavor(relevantDensities, null, project.getGradleProjectModel().getDefaultConfig()); for (ProductFlavorContainer container : gradleProjectModel.getProductFlavors()) { addResConfigsFromFlavor(relevantDensities, variantFlavors, container); } if (!relevantDensities.isEmpty()) { ArrayList<String> strings = Lists.newArrayList(relevantDensities); Collections.sort(strings); return strings; } } return null; }
@NonNull @Override public List<File> getResourceFolders() { if (resourceFolders == null) { resourceFolders = Lists.newArrayList(); for (SourceProvider provider : getSourceProviders()) { Collection<File> resDirs = provider.getResDirectories(); // model returns path whether or not it exists resourceFolders.addAll(resDirs.stream() .filter(File::exists) .collect(Collectors.toList())); } resourceFolders.addAll( mVariant.getMainArtifact().getGeneratedResourceFolders().stream() .filter(File::exists) .collect(Collectors.toList())); } return resourceFolders; }