Skip to content

Commit 0d5c420

Browse files
authored
Merge pull request #526 from OneSignal/fix/methodSignatureAndroid
[FIX] Java Collection type parameters for Android
2 parents d1ff77c + 288f9a9 commit 0d5c420

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

OneSignalExample/Assets/OneSignal/CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

77
## [Unreleased]
8+
### Fixed
9+
- Android `DeleteTags` and `RemoveTriggers` calls correctly use a Java array list instead of an array
10+
811
## [3.0.3]
912
### Changed
1013
- Added support for OneSignal Android functionality `promptForPushNotifications`

com.onesignal.unity.android/Runtime/OneSignalAndroid.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ public override void RemoveTrigger(string key)
170170
=> _sdkClass.CallStatic("removeTriggerForKey", key);
171171

172172
public override void RemoveTriggers(params string[] keys)
173-
=> _sdkClass.CallStatic("removeTriggersForKeys", Json.Serialize(keys));
173+
=> _sdkClass.CallStatic("removeTriggersForKeys", keys.ToArrayList());
174174

175175
public override string GetTrigger(string key) {
176176
var triggerVal = _sdkClass.CallStatic<AndroidJavaObject>("getTriggerValueForKey", key);
@@ -210,7 +210,7 @@ public override async Task<bool> DeleteTag(string key) {
210210

211211
public override async Task<bool> DeleteTags(params string[] keys) {
212212
var proxy = new ChangeTagsUpdateHandler();
213-
_sdkClass.CallStatic("deleteTags", keys.ToList(), proxy);
213+
_sdkClass.CallStatic("deleteTags", keys.ToArrayList(), proxy);
214214
return await proxy;
215215
}
216216

com.onesignal.unity.android/Runtime/Utilities/AndroidJavaObjectExtensions.cs

+10
Original file line numberDiff line numberDiff line change
@@ -111,5 +111,15 @@ public static AndroidJavaObject ToMap(this Dictionary<string, string> source) {
111111
return map;
112112
}
113113

114+
public static AndroidJavaObject ToArrayList(this string[] keys) {
115+
AndroidJavaObject arrayList = new AndroidJavaObject("java.util.ArrayList");
116+
117+
foreach(string key in keys) {
118+
arrayList.Call<bool>("add", key);
119+
}
120+
121+
return arrayList;
122+
}
123+
114124
}
115125
}

0 commit comments

Comments
 (0)