Add unique parameter to ConfigData.push().

This commit is contained in:
Joseph Cloutier
2023-12-21 17:18:54 -05:00
parent 15e6dc5050
commit 8d3d123266
2 changed files with 12 additions and 20 deletions

View File

@@ -373,7 +373,7 @@ abstract ConfigData(Dynamic) to Dynamic from Dynamic
}
}
public function push(id:String, value:Dynamic):Void
public function push(id:String, value:Dynamic, ?unique:Bool = false):Void
{
var tree = id.split(".");
var current = this;
@@ -399,13 +399,18 @@ abstract ConfigData(Dynamic) to Dynamic from Dynamic
if (Reflect.hasField(current, field))
{
if (!Reflect.hasField(current, field + ARRAY))
var array:Array<Dynamic> = Reflect.field(current, field + ARRAY);
if (array == null)
{
Reflect.setField(current, field + ARRAY, Reflect.hasField(current, field) ? [ObjectTools.deepCopy(Reflect.field(current, field))] : []);
array = [ObjectTools.deepCopy(Reflect.field(current, field))];
Reflect.setField(current, field + ARRAY, array);
}
var array:Array<Dynamic> = Reflect.field(current, field + ARRAY);
array.push(value);
if (array.indexOf(value) == -1)
{
array.push(value);
}
}
Reflect.setField(current, field, value);

View File

@@ -1797,21 +1797,8 @@ class ProjectXMLParser extends HXProject
case "install-location":
config.set("android.install-location", value);
case "extension":
var extensions = config.getArrayString("android.extension");
if (extensions == null || extensions.indexOf(value) == -1)
{
config.push("android.extension", value);
}
case "permission":
var permissions = config.getArrayString("android.permission");
if (permissions == null || permissions.indexOf(value) == -1)
{
config.push("android.permission", value);
}
case "extension", "permission":
config.push("android." + name, value, true);
case "gradle-version":
config.set("android.gradle-version", value);