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;
}
Aggregations