@Nullable TestVariant getInstrumentationTestVariant() { if (getBaseVariant() instanceof TestedVariant) { TestVariant testVariant = ((TestedVariant) getBaseVariant()).getTestVariant(); if (testVariant != null) { Set<String> manifests = new HashSet<>(); testVariant .getSourceSets() .forEach( provider -> manifests.addAll(getAvailable(ImmutableSet.of(provider.getManifestFile())))); return manifests.isEmpty() ? null : testVariant; } } return null; }
@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; }
public Set<String> getAidl() { return getBaseVariant() .getSourceSets() .stream() .map(i -> getAvailable(i.getAidlDirectories())) .flatMap(Collection::stream) .collect(Collectors.toSet()); }
public SourceProviderImpl(@NonNull SourceProvider sourceProvider) { this.name = sourceProvider.getName(); this.manifestFile = sourceProvider.getManifestFile(); this.javaDirs = sourceProvider.getJavaDirectories(); this.resourcesDirs = sourceProvider.getResourcesDirectories(); this.aidlDirs = sourceProvider.getAidlDirectories(); this.rsDirs = sourceProvider.getRenderscriptDirectories(); this.cDirs = sourceProvider.getCDirectories(); this.cppDirs = sourceProvider.getCDirectories(); this.resDirs = sourceProvider.getResDirectories(); this.assetsDirs = sourceProvider.getAssetsDirectories(); this.libsDirs = sourceProvider.getJniLibsDirectories(); this.shaderDirs = sourceProvider.getShadersDirectories(); }
private static List<File> getFilesFromSourceSet(SourceProvider sourceSet) { List<File> srcDirs = new ArrayList<>(); srcDirs.add(sourceSet.getManifestFile()); srcDirs.addAll(sourceSet.getCDirectories()); srcDirs.addAll(sourceSet.getAidlDirectories()); srcDirs.addAll(sourceSet.getAssetsDirectories()); srcDirs.addAll(sourceSet.getCppDirectories()); srcDirs.addAll(sourceSet.getJavaDirectories()); srcDirs.addAll(sourceSet.getRenderscriptDirectories()); srcDirs.addAll(sourceSet.getResDirectories()); srcDirs.addAll(sourceSet.getResourcesDirectories()); return srcDirs; } }
Collection<File> javaDirectories = sourceProvider.getJavaDirectories(); for (File f : javaDirectories) { addSource(sources, isTest, f); Collection<File> aidlDirectories = sourceProvider.getAidlDirectories(); for (File f : aidlDirectories) { addSource(sources, isTest, f); Collection<File> renderscriptDirectories = sourceProvider.getRenderscriptDirectories(); for (File f : renderscriptDirectories) { addSource(sources, isTest, f); Collection<File> resourcesDirectories = sourceProvider.getResourcesDirectories(); for (File f : resourcesDirectories) { addSource(sources, isTest, f); Collection<File> resDirectories = sourceProvider.getResDirectories(); for (File f : resDirectories) { addSource(sources, isTest, f); Collection<File> assetsDirectories = sourceProvider.getAssetsDirectories(); for (File f : assetsDirectories) { addSource(sources, isTest, f); Collection<File> jniLibsDirectories = sourceProvider.getJniLibsDirectories(); for (File f : jniLibsDirectories) { addSource(sources, isTest, f);
@NonNull private static SourceProvider createSourceProvider(@NonNull File root, @NonNull String name) { SourceProvider provider = mock(SourceProvider.class); when(provider.getName()).thenReturn(name); when(provider.getManifestFile()).thenReturn( new File(root, "src/" + name + "/" + ANDROID_MANIFEST_XML)); List<File> resDirectories = Lists.newArrayListWithCapacity(2); List<File> javaDirectories = Lists.newArrayListWithCapacity(2); resDirectories.add(new File(root, "src/" + name + "/res")); javaDirectories.add(new File(root, "src/" + name + "/java")); when(provider.getResDirectories()).thenReturn(resDirectories); when(provider.getJavaDirectories()).thenReturn(javaDirectories); // TODO: other file types return provider; }
@NonNull @Override public List<File> getTestSourceFolders() { if (testSourceFolders == null) { testSourceFolders = Lists.newArrayList(); for (SourceProvider provider : getTestSourceProviders()) { // model returns path whether or not it exists testSourceFolders.addAll(provider.getJavaDirectories().stream() .filter(File::exists) .collect(Collectors.toList())); } } return testSourceFolders; }
private void addInactiveReferences(@NonNull AndroidProject model, @NonNull Variant variant) { for (SourceProvider provider : getInactiveSourceProviders(model, variant)) { for (File res : provider.getResDirectories()) { // Scan resource directory if (res.isDirectory()) { recordInactiveXmlResources(res); } } for (File file : provider.getJavaDirectories()) { // Scan Java directory if (file.isDirectory()) { recordInactiveJavaReferences(file); } } } }
@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; }
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()); }
/** * Returns all the renderscript source folder from the main config, the flavors and the * build type. * * @return a list of folders. */ @NonNull public List<File> getRenderscriptSourceList() { List<SourceProvider> providers = getSortedSourceProviders(); List<File> sourceList = Lists.newArrayListWithExpectedSize(providers.size()); for (SourceProvider provider : providers) { sourceList.addAll(provider.getRenderscriptDirectories()); } return sourceList; }
@NonNull public List<File> getJniSourceList() { List<SourceProvider> providers = getSortedSourceProviders(); List<File> sourceList = Lists.newArrayListWithExpectedSize(providers.size()); for (SourceProvider provider : providers) { sourceList.addAll(provider.getCDirectories()); } return sourceList; }
@NonNull static SourceProviderImpl cloneProvider(@NonNull SourceProvider sourceProvider) { SourceProviderImpl sourceProviderClone = new SourceProviderImpl(); sourceProviderClone.name = sourceProvider.getName(); sourceProviderClone.manifestFile = sourceProvider.getManifestFile(); sourceProviderClone.javaDirs = sourceProvider.getJavaDirectories(); sourceProviderClone.resourcesDirs = sourceProvider.getResourcesDirectories(); sourceProviderClone.aidlDirs = sourceProvider.getAidlDirectories(); sourceProviderClone.rsDirs = sourceProvider.getRenderscriptDirectories(); sourceProviderClone.cDirs = sourceProvider.getCDirectories(); sourceProviderClone.cppDirs = sourceProvider.getCDirectories(); sourceProviderClone.resDirs = sourceProvider.getResDirectories(); sourceProviderClone.assetsDirs = sourceProvider.getAssetsDirectories(); sourceProviderClone.libsDirs = sourceProvider.getJniLibsDirectories(); return sourceProviderClone; }
private static List<File> getFilesFromSourceSet(SourceProvider sourceSet) { List<File> srcDirs = new ArrayList<>(); srcDirs.add(sourceSet.getManifestFile()); srcDirs.addAll(sourceSet.getCDirectories()); srcDirs.addAll(sourceSet.getAidlDirectories()); srcDirs.addAll(sourceSet.getAssetsDirectories()); srcDirs.addAll(sourceSet.getCppDirectories()); srcDirs.addAll(sourceSet.getJavaDirectories()); srcDirs.addAll(sourceSet.getRenderscriptDirectories()); srcDirs.addAll(sourceSet.getResDirectories()); srcDirs.addAll(sourceSet.getResourcesDirectories()); return srcDirs; } }
@NonNull @Override public List<File> getTestSourceFolders() { if (mTestSourceFolders == null) { mTestSourceFolders = Lists.newArrayList(); for (SourceProvider provider : getTestSourceProviders()) { Collection<File> srcDirs = provider.getJavaDirectories(); for (File srcDir : srcDirs) { if (srcDir.exists()) { // model returns path whether or not it exists mTestSourceFolders.add(srcDir); } } } } return mTestSourceFolders; }
public Set<String> getResDirs() { return getBaseVariant() .getSourceSets() .stream() .map(i -> getAvailable(i.getResDirectories())) .flatMap(Collection::stream) .collect(Collectors.toSet()); }
@NonNull @Override public List<File> getAssetFolders() { if (assetFolders == null) { assetFolders = Lists.newArrayList(); for (SourceProvider provider : getSourceProviders()) { Collection<File> dirs = provider.getAssetsDirectories(); // model returns path whether or not it exists assetFolders.addAll(dirs.stream() .filter(File::exists) .collect(Collectors.toList())); } } return assetFolders; }
@NonNull public List<File> getJniLibsList() { List<SourceProvider> providers = getSortedSourceProviders(); List<File> sourceList = Lists.newArrayListWithExpectedSize(providers.size()); for (SourceProvider provider : providers) { sourceList.addAll(provider.getJniLibsDirectories()); } return sourceList; }