Skip to content

Commit 4dd54fe

Browse files
committed
Use low level method in Bundle
1 parent 344786b commit 4dd54fe

File tree

1 file changed

+33
-8
lines changed

1 file changed

+33
-8
lines changed

com.unity.mobile.notifications/Runtime/Android/AndroidNotificationCenter.cs

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public NotificationManagerJni(AndroidJavaClass clazz, AndroidJavaObject obj)
9090
CollectMethods(clazz);
9191
JniApi.Notification.CollectJni();
9292
JniApi.NotificationBuilder.CollectJni();
93+
JniApi.Bundle.CollectJni();
9394
#else
9495
KEY_FIRE_TIME = null;
9596
KEY_ID = null;
@@ -408,44 +409,68 @@ public static void SetShowWhen(AndroidJavaObject builder, bool showTimestamp)
408409

409410
public static class Bundle
410411
{
412+
static JniMethodID containsKey;
413+
static JniMethodID getBoolean;
414+
static JniMethodID getInt;
415+
static JniMethodID getLong;
416+
static JniMethodID getString;
417+
static JniMethodID putInt;
418+
static JniMethodID putLong;
419+
static JniMethodID putString;
420+
421+
public static void CollectJni()
422+
{
423+
using (var clazz = new AndroidJavaClass("android/os/Bundle"))
424+
{
425+
containsKey = JniApi.FindMethod(clazz, "containsKey", "(Ljava/lang/String;)Z", false);
426+
getBoolean = JniApi.FindMethod(clazz, "getBoolean", "(Ljava/lang/String;Z)Z", false);
427+
getInt = JniApi.FindMethod(clazz, "getInt", "(Ljava/lang/String;I)I", false);
428+
getLong = JniApi.FindMethod(clazz, "getLong", "(Ljava/lang/String;J)J", false);
429+
getString = JniApi.FindMethod(clazz, "getString", "(Ljava/lang/String;)Ljava/lang/String;", false);
430+
putInt = JniApi.FindMethod(clazz, "putInt", "(Ljava/lang/String;I)V", false);
431+
putLong = JniApi.FindMethod(clazz, "putLong", "(Ljava/lang/String;J)V", false);
432+
putString = JniApi.FindMethod(clazz, "putString", "(Ljava/lang/String;Ljava/lang/String;)V", false);
433+
}
434+
}
435+
411436
public static bool ContainsKey(AndroidJavaObject bundle, AndroidJavaObject key)
412437
{
413-
return bundle.Call<bool>("containsKey", key);
438+
return bundle.Call<bool>(containsKey, key);
414439
}
415440

416441
public static bool GetBoolean(AndroidJavaObject bundle, AndroidJavaObject key, bool defaultValue)
417442
{
418-
return bundle.Call<bool>("getBoolean", key, defaultValue);
443+
return bundle.Call<bool>(getBoolean, key, defaultValue);
419444
}
420445

421446
public static int GetInt(AndroidJavaObject bundle, AndroidJavaObject key, int defaultValue)
422447
{
423-
return bundle.Call<int>("getInt", key, defaultValue);
448+
return bundle.Call<int>(getInt, key, defaultValue);
424449
}
425450

426451
public static long GetLong(AndroidJavaObject bundle, AndroidJavaObject key, long defaultValue)
427452
{
428-
return bundle.Call<long>("getLong", key, defaultValue);
453+
return bundle.Call<long>(getLong, key, defaultValue);
429454
}
430455

431456
public static string GetString(AndroidJavaObject bundle, AndroidJavaObject key)
432457
{
433-
return bundle.Call<string>("getString", key);
458+
return bundle.Call<string>(getString, key);
434459
}
435460

436461
public static void PutInt(AndroidJavaObject bundle, AndroidJavaObject key, int value)
437462
{
438-
bundle.Call("putInt", key, value);
463+
bundle.Call(putInt, key, value);
439464
}
440465

441466
public static void PutLong(AndroidJavaObject bundle, AndroidJavaObject key, long value)
442467
{
443-
bundle.Call("putLong", key, value);
468+
bundle.Call(putLong, key, value);
444469
}
445470

446471
public static void PutString(AndroidJavaObject bundle, AndroidJavaObject key, string value)
447472
{
448-
bundle.Call("putString", key, value);
473+
bundle.Call(putString, key, value);
449474
}
450475
}
451476
}

0 commit comments

Comments
 (0)