Add unique parameter to ConfigData.push().
This commit is contained in:
@@ -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 tree = id.split(".");
|
||||||
var current = this;
|
var current = this;
|
||||||
@@ -399,13 +399,18 @@ abstract ConfigData(Dynamic) to Dynamic from Dynamic
|
|||||||
|
|
||||||
if (Reflect.hasField(current, field))
|
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);
|
if (array.indexOf(value) == -1)
|
||||||
array.push(value);
|
{
|
||||||
|
array.push(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Reflect.setField(current, field, value);
|
Reflect.setField(current, field, value);
|
||||||
|
|||||||
@@ -1797,21 +1797,8 @@ class ProjectXMLParser extends HXProject
|
|||||||
case "install-location":
|
case "install-location":
|
||||||
config.set("android.install-location", value);
|
config.set("android.install-location", value);
|
||||||
|
|
||||||
case "extension":
|
case "extension", "permission":
|
||||||
var extensions = config.getArrayString("android.extension");
|
config.push("android." + name, value, true);
|
||||||
|
|
||||||
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 "gradle-version":
|
case "gradle-version":
|
||||||
config.set("android.gradle-version", value);
|
config.set("android.gradle-version", value);
|
||||||
|
|||||||
Reference in New Issue
Block a user