You've already forked Commercialization.topon
fix: merge android manifest replace entries
This commit is contained in:
@@ -121,7 +121,7 @@ namespace Topon_Adapter.Editor
|
||||
|
||||
elementlauncherApplication.Add (CreateCSJGromore ());
|
||||
SetOrAddAttribute (elementlauncherApplication, AndroidNamespace + "allowBackup", "false");
|
||||
SetOrAddAttribute (elementlauncherApplication, ToolsNamespace + "replace", "android:allowBackup");
|
||||
MergeToolsReplaceAttribute (elementlauncherApplication, "android:allowBackup");
|
||||
|
||||
var elementMainManifest = manifest.Element ("manifest");
|
||||
var elementMainApplication = elementMainManifest.Element ("application");
|
||||
@@ -263,6 +263,30 @@ namespace Topon_Adapter.Editor
|
||||
attribute.SetValue (value);
|
||||
}
|
||||
|
||||
private static void MergeToolsReplaceAttribute (XElement element, params string[] replaceValues)
|
||||
{
|
||||
XName replaceAttributeName = ToolsNamespace + "replace";
|
||||
List<string> mergedValues = new List<string> ();
|
||||
|
||||
var currentValue = element.Attribute (replaceAttributeName)?.Value;
|
||||
if (string.IsNullOrWhiteSpace (currentValue) == false)
|
||||
{
|
||||
mergedValues.AddRange (currentValue.Split (',')
|
||||
.Select (value => value.Trim ())
|
||||
.Where (value => string.IsNullOrWhiteSpace (value) == false));
|
||||
}
|
||||
|
||||
foreach (var replaceValue in replaceValues)
|
||||
{
|
||||
if (mergedValues.Contains (replaceValue) == false)
|
||||
{
|
||||
mergedValues.Add (replaceValue);
|
||||
}
|
||||
}
|
||||
|
||||
element.SetAttributeValue (replaceAttributeName, string.Join (",", mergedValues));
|
||||
}
|
||||
|
||||
public int callbackOrder { get; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user