aboutsummaryrefslogtreecommitdiff
path: root/resources/src/main/java/org
diff options
context:
space:
mode:
authorChristian Williams <christianw@google.com>2017-10-06 17:12:04 -0700
committerChristian Williams <christianw@google.com>2017-10-06 17:12:04 -0700
commitd2c68ab0722bbb96daf0cd8c52a8425e230517ae (patch)
tree07e747361a6415b21969342da1d8434a7023e169 /resources/src/main/java/org
parent8c89268c30d3b7935eab85bbd0ca91fd12b988de (diff)
downloadrobolectric-shadows-d2c68ab0722bbb96daf0cd8c52a8425e230517ae.tar.gz
Refactor ManifestFactory implementations toward removing #create(ManifestIdentifier).
Refactor ManifestIdentifier to hold libraries' ManifestIdentifiers instead of paths.
Diffstat (limited to 'resources/src/main/java/org')
-rw-r--r--resources/src/main/java/org/robolectric/manifest/AndroidManifest.java27
1 files changed, 20 insertions, 7 deletions
diff --git a/resources/src/main/java/org/robolectric/manifest/AndroidManifest.java b/resources/src/main/java/org/robolectric/manifest/AndroidManifest.java
index 7fb10543b..bea6f9310 100644
--- a/resources/src/main/java/org/robolectric/manifest/AndroidManifest.java
+++ b/resources/src/main/java/org/robolectric/manifest/AndroidManifest.java
@@ -30,6 +30,7 @@ public class AndroidManifest {
private final FsFile resDirectory;
private final FsFile assetsDirectory;
private final String overridePackageName;
+ private final List<AndroidManifest> libraryManifests;
private boolean manifestIsParsed;
@@ -53,7 +54,6 @@ public class AndroidManifest {
private final List<String> usedPermissions = new ArrayList<>();
private final Map<String, String> applicationAttributes = new HashMap<>();
private MetaData applicationMetaData;
- private List<AndroidManifest> libraryManifests = new ArrayList<>();
/**
* Creates a Robolectric configuration using specified locations.
@@ -74,13 +74,31 @@ public class AndroidManifest {
* @param assetsDirectory Location of the assets directory.
* @param overridePackageName Application package name.
*/
- public AndroidManifest(FsFile androidManifestFile, FsFile resDirectory, FsFile assetsDirectory, String overridePackageName) {
+ public AndroidManifest(FsFile androidManifestFile, FsFile resDirectory, FsFile assetsDirectory,
+ String overridePackageName) {
+ this(androidManifestFile, resDirectory, assetsDirectory, Collections.emptyList(), overridePackageName);
+ this.packageName = overridePackageName;
+ }
+
+ /**
+ * Creates a Robolectric configuration using specified values.
+ *
+ * @param androidManifestFile Location of the AndroidManifest.xml file.
+ * @param resDirectory Location of the res directory.
+ * @param assetsDirectory Location of the assets directory.
+ * @param libraryManifests List of dependency library manifests.
+ * @param overridePackageName Application package name.
+ */
+ public AndroidManifest(FsFile androidManifestFile, FsFile resDirectory, FsFile assetsDirectory,
+ List<AndroidManifest> libraryManifests, String overridePackageName) {
this.androidManifestFile = androidManifestFile;
this.resDirectory = resDirectory;
this.assetsDirectory = assetsDirectory;
this.overridePackageName = overridePackageName;
+ this.libraryManifests = libraryManifests;
this.packageName = overridePackageName;
+
}
public String getThemeRef(String activityClassName) {
@@ -563,11 +581,6 @@ public class AndroidManifest {
return providers;
}
- public void setLibraryManifests(List<AndroidManifest> libraryManifests) {
- Preconditions.checkNotNull(libraryManifests);
- this.libraryManifests = libraryManifests;
- }
-
public List<AndroidManifest> getLibraryManifests() {
assert(libraryManifests != null);
return Collections.unmodifiableList(libraryManifests);