Search in sources :

Example 11 with FsFile

use of org.robolectric.res.FsFile in project robolectric by robolectric.

the class MavenManifestFactory method findLibraries.

/**
   * Find valid library AndroidManifest files referenced from an already loaded AndroidManifest's
   * "project.properties" file.
   * @param androidManifest
   */
private static List<FsFile> findLibraries(AndroidManifest androidManifest) {
    List<FsFile> libraryBaseDirs = new ArrayList<>();
    if (androidManifest.getResDirectory() != null) {
        FsFile baseDir = androidManifest.getResDirectory().getParent();
        final Properties properties = getProperties(baseDir.join("project.properties"));
        Properties overrideProperties = getProperties(baseDir.join("test-project.properties"));
        properties.putAll(overrideProperties);
        int libRef = 1;
        String lib;
        while ((lib = properties.getProperty("android.library.reference." + libRef)) != null) {
            FsFile libraryBaseDir = baseDir.join(lib);
            if (libraryBaseDir.isDirectory()) {
                // Ignore directories without any files
                FsFile[] libraryBaseDirFiles = libraryBaseDir.listFiles();
                if (libraryBaseDirFiles != null && libraryBaseDirFiles.length > 0) {
                    libraryBaseDirs.add(libraryBaseDir);
                }
            }
            libRef++;
        }
    }
    return libraryBaseDirs;
}
Also used : FsFile(org.robolectric.res.FsFile)

Aggregations

FsFile (org.robolectric.res.FsFile)11 AndroidManifest (org.robolectric.manifest.AndroidManifest)4 File (java.io.File)2 URL (java.net.URL)2 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 LinkedHashSet (java.util.LinkedHashSet)1 CachedDependencyResolver (org.robolectric.internal.dependency.CachedDependencyResolver)1 LocalDependencyResolver (org.robolectric.internal.dependency.LocalDependencyResolver)1 MavenDependencyResolver (org.robolectric.internal.dependency.MavenDependencyResolver)1 PropertiesDependencyResolver (org.robolectric.internal.dependency.PropertiesDependencyResolver)1 FileFsFile (org.robolectric.res.FileFsFile)1 ResourcePath (org.robolectric.res.ResourcePath)1