private String stringify(Config config) { int emulateSdk = config.emulateSdk(); String manifest = config.manifest(); String qualifiers = config.qualifiers(); String resourceDir = config.resourceDir(); int reportSdk = config.reportSdk(); Class<?>[] shadows = config.shadows(); return stringify(emulateSdk, manifest, qualifiers, resourceDir, reportSdk, shadows); }
@Override public AndroidManifest create() { if (config.manifest().equals(Config.NONE)) { return createDummyManifest(); } FsFile manifestFile = getBaseDir() .join( config.manifest().equals(Config.DEFAULT_MANIFEST) ? DEFAULT_MANIFEST_NAME : config.manifest().replaceAll("^(\\./)+", "")); FsFile baseDir = manifestFile.getParent(); FsFile resDir = baseDir.join(config.resourceDir()); FsFile assetDir = baseDir.join(config.assetDir()); List<FsFile> libraryDirs = null; if (config.libraries().length > 0) { libraryDirs = new ArrayList<>(); for (String libraryDirName : config.libraries()) { libraryDirs.add(baseDir.join(libraryDirName)); } } ManifestIdentifier identifier = new ManifestIdentifier(manifestFile, resDir, assetDir, config.packageName(), libraryDirs); synchronized (appManifestsByFile) { AndroidManifest appManifest; appManifest = appManifestsByFile.get(identifier); if (appManifest == null) { appManifest = createAppManifest(manifestFile, resDir, assetDir, config.packageName()); appManifestsByFile.put(identifier, appManifest); } // The AppManifest may STILL be null if no file was found. if (appManifest != null) { appManifest.setLibraryManifests(createLibraryManifests(appManifest, libraryDirs)); } return appManifest; } }