Skip to content

Commit 1b08966

Browse files
committed
Remove redundant "fused modules merging"
1 parent f8eec50 commit 1b08966

1 file changed

Lines changed: 1 addition & 71 deletions

File tree

src/main/java/com/reandroid/apk/AndroidManifestBlockMerger.java

Lines changed: 1 addition & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -17,37 +17,29 @@
1717

1818
import com.reandroid.app.AndroidManifest;
1919
import com.reandroid.arsc.chunk.xml.AndroidManifestBlock;
20-
import com.reandroid.arsc.chunk.xml.ResXmlAttribute;
2120
import com.reandroid.arsc.chunk.xml.ResXmlElement;
2221
import com.reandroid.utils.StringsUtil;
23-
import com.reandroid.utils.collection.ArrayCollection;
2422
import com.reandroid.utils.collection.CollectionUtil;
2523
import com.reandroid.xml.XMLPath;
2624

2725
import java.util.Iterator;
28-
import java.util.List;
2926
import java.util.Set;
3027

3128
public class AndroidManifestBlockMerger {
3229

3330
private boolean mEnabled;
34-
private boolean mBuildFusedModules;
3531
private AndroidManifestBlockSplitSanitizer mSplitSanitizer;
3632

37-
private final List<String> fusedModuleNameList;
3833
private final Set<XMLPath> excludePaths;
3934

4035
private AndroidManifestBlock baseManifest;
4136

4237
public AndroidManifestBlockMerger() {
4338
this.mEnabled = true;
44-
this.mBuildFusedModules = true;
4539
this.mSplitSanitizer = new AndroidManifestBlockSplitSanitizer();
4640

47-
this.fusedModuleNameList = new ArrayCollection<>();
4841
this.excludePaths = CollectionUtil.asHashSet(
49-
XMLPath.compile("/manifest/uses-split"),
50-
XMLPath.compile("/manifest/uses-split")
42+
AndroidManifest.PATH_MANIFEST.element(AndroidManifest.TAG_uses_split)
5143
);
5244
}
5345

@@ -56,8 +48,6 @@ public AndroidManifestBlockMerger initializeBase(AndroidManifestBlock base) {
5648
throw new IllegalArgumentException("Base manifest already initialized");
5749
}
5850
this.baseManifest = base;
59-
addFusedModuleName("base");
60-
this.addFusedModules(base);
6151
AndroidManifestBlockSplitSanitizer sanitizer = getSplitSanitizer();
6252
if (sanitizer != null) {
6353
sanitizer.sanitize(base);
@@ -69,10 +59,6 @@ public AndroidManifestBlockMerger setEnabled(boolean enabled) {
6959
this.mEnabled = enabled;
7060
return this;
7161
}
72-
public AndroidManifestBlockMerger setBuildFusedModules(boolean buildFusedModules) {
73-
this.mBuildFusedModules = buildFusedModules;
74-
return this;
75-
}
7662
public AndroidManifestBlockMerger exclude(XMLPath xmlPath) {
7763
this.excludePaths.add(xmlPath);
7864
return this;
@@ -83,16 +69,12 @@ public AndroidManifestBlockMerger setSplitSanitizer(AndroidManifestBlockSplitSan
8369
}
8470
public AndroidManifestBlockMerger reset() {
8571
this.baseManifest = null;
86-
this.fusedModuleNameList.clear();
8772
return this;
8873
}
8974

9075
public boolean isEnabled() {
9176
return mEnabled;
9277
}
93-
public boolean isBuildFusedModules() {
94-
return mBuildFusedModules;
95-
}
9678
public AndroidManifestBlock getBaseManifestBlock() {
9779
return baseManifest;
9880
}
@@ -108,11 +90,7 @@ public boolean merge(AndroidManifestBlock split) {
10890
if (split == base) {
10991
return false;
11092
}
111-
boolean fusedUpdated = addFusedModules(split);
11293
boolean result = mergeManifestElement(split.getManifestElement());
113-
if (fusedUpdated) {
114-
commitFusedModules();
115-
}
11694
AndroidManifestBlockSplitSanitizer sanitizer = getSplitSanitizer();
11795
if (sanitizer != null) {
11896
result = sanitizer.sanitize(base) || result;
@@ -142,8 +120,6 @@ private boolean mergeNamedChild(ResXmlElement application) {
142120
ResXmlElement element = iterator.next();
143121
if (element.hasAttribute(AndroidManifest.ID_name)) {
144122
result = addNamedElement(element) || result;
145-
} else {
146-
147123
}
148124
}
149125
return result;
@@ -195,52 +171,6 @@ private AndroidManifestBlock requireBaseManifestInitialized() {
195171
}
196172
return baseManifest;
197173
}
198-
private void commitFusedModules() {
199-
if (!isBuildFusedModules()) {
200-
return;
201-
}
202-
List<String> fusedModuleNameList = this.fusedModuleNameList;
203-
int size = fusedModuleNameList.size();
204-
if (size == 0 || (size == 1 && fusedModuleNameList.contains("base"))) {
205-
return;
206-
}
207-
ResXmlElement element = getBaseManifestBlock()
208-
.getOrCreateNamedElement(XMLPath.compile("/manifest/application/meta-data"),
209-
AndroidManifest.VALUE_com_android_dynamic_apk_fused_modules);
210-
ResXmlAttribute attribute = element.getOrCreateAndroidAttribute(
211-
AndroidManifest.NAME_value,
212-
AndroidManifest.ID_value);
213-
attribute.setValueAsString(StringsUtil.join(fusedModuleNameList, ","));
214-
}
215-
private boolean addFusedModules(AndroidManifestBlock manifestBlock) {
216-
boolean result = false;
217-
if (isBuildFusedModules()) {
218-
result = addFusedModuleName(manifestBlock.getSplit());
219-
result = addFusedModuleNames(manifestBlock.getFusedModuleNames()) || result;
220-
}
221-
return result;
222-
}
223-
private boolean addFusedModuleNames(String[] names) {
224-
boolean result = false;
225-
if (names != null) {
226-
for (String name : names) {
227-
result = addFusedModuleName(name) || result;
228-
}
229-
}
230-
return result;
231-
}
232-
private boolean addFusedModuleName(String name) {
233-
if (StringsUtil.isEmpty(name)) {
234-
return false;
235-
}
236-
if (name.indexOf(',') >= 0) {
237-
return addFusedModuleNames(StringsUtil.split(name, ','));
238-
} else if (!fusedModuleNameList.contains(name)) {
239-
fusedModuleNameList.add(name);
240-
return true;
241-
}
242-
return false;
243-
}
244174
private static boolean containsNamedManifestChild(String tag) {
245175
return AndroidManifest.TAG_application.equals(tag) ||
246176
AndroidManifest.TAG_queries.equals(tag);

0 commit comments

Comments
 (0)