Skip to content

Commit 344786b

Browse files
committed
Use low level Notification.Builder methods
1 parent bc39e93 commit 344786b

File tree

1 file changed

+42
-11
lines changed

1 file changed

+42
-11
lines changed

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

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public NotificationManagerJni(AndroidJavaClass clazz, AndroidJavaObject obj)
8989

9090
CollectMethods(clazz);
9191
JniApi.Notification.CollectJni();
92+
JniApi.NotificationBuilder.CollectJni();
9293
#else
9394
KEY_FIRE_TIME = null;
9495
KEY_ID = null;
@@ -319,59 +320,89 @@ internal static long When(AndroidJavaObject notification)
319320

320321
public static class NotificationBuilder
321322
{
323+
static JniMethodID getExtras;
324+
static JniMethodID setContentTitle;
325+
static JniMethodID setContentText;
326+
static JniMethodID setAutoCancel;
327+
static JniMethodID setNumber;
328+
static JniMethodID setStyle;
329+
static JniMethodID setWhen;
330+
static JniMethodID setGroup;
331+
static JniMethodID setGroupSummary;
332+
static JniMethodID setSortKey;
333+
static JniMethodID setShowWhen;
334+
335+
public static void CollectJni()
336+
{
337+
using (var clazz = new AndroidJavaClass("android.app.Notification$Builder"))
338+
{
339+
getExtras = JniApi.FindMethod(clazz, "getExtras", "()Landroid/os/Bundle;", false);
340+
setContentTitle = JniApi.FindMethod(clazz, "setContentTitle", "(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;", false);
341+
setContentText = JniApi.FindMethod(clazz, "setContentText", "(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;", false);
342+
setAutoCancel = JniApi.FindMethod(clazz, "setAutoCancel", "(Z)Landroid/app/Notification$Builder;", false);
343+
setNumber = JniApi.FindMethod(clazz, "setNumber", "(I)Landroid/app/Notification$Builder;", false);
344+
setStyle = JniApi.FindMethod(clazz, "setStyle", "(Landroid/app/Notification$Style;)Landroid/app/Notification$Builder;", false);
345+
setWhen = JniApi.FindMethod(clazz, "setWhen", "(J)Landroid/app/Notification$Builder;", false);
346+
setGroup = JniApi.FindMethod(clazz, "setGroup", "(Ljava/lang/String;)Landroid/app/Notification$Builder;", false);
347+
setGroupSummary = JniApi.FindMethod(clazz, "setGroupSummary", "(Z)Landroid/app/Notification$Builder;", false);
348+
setSortKey = JniApi.FindMethod(clazz, "setSortKey", "(Ljava/lang/String;)Landroid/app/Notification$Builder;", false);
349+
setShowWhen = JniApi.FindMethod(clazz, "setShowWhen", "(Z)Landroid/app/Notification$Builder;", false);
350+
}
351+
}
352+
322353
public static AndroidJavaObject GetExtras(AndroidJavaObject builder)
323354
{
324-
return builder.Call<AndroidJavaObject>("getExtras");
355+
return builder.Call<AndroidJavaObject>(getExtras);
325356
}
326357

327358
public static void SetContentTitle(AndroidJavaObject builder, string title)
328359
{
329-
builder.Call<AndroidJavaObject>("setContentTitle", title).Dispose();
360+
builder.Call<AndroidJavaObject>(setContentTitle, title).Dispose();
330361
}
331362

332363
public static void SetContentText(AndroidJavaObject builder, string text)
333364
{
334-
builder.Call<AndroidJavaObject>("setContentText", text).Dispose();
365+
builder.Call<AndroidJavaObject>(setContentText, text).Dispose();
335366
}
336367

337368
public static void SetAutoCancel(AndroidJavaObject builder, bool shouldAutoCancel)
338369
{
339-
builder.Call<AndroidJavaObject>("setAutoCancel", shouldAutoCancel).Dispose();
370+
builder.Call<AndroidJavaObject>(setAutoCancel, shouldAutoCancel).Dispose();
340371
}
341372

342373
public static void SetNumber(AndroidJavaObject builder, int number)
343374
{
344-
builder.Call<AndroidJavaObject>("setNumber", number).Dispose();
375+
builder.Call<AndroidJavaObject>(setNumber, number).Dispose();
345376
}
346377

347378
public static void SetStyle(AndroidJavaObject builder, AndroidJavaObject style)
348379
{
349-
builder.Call<AndroidJavaObject>("setStyle", style).Dispose();
380+
builder.Call<AndroidJavaObject>(setStyle, style).Dispose();
350381
}
351382

352383
public static void SetWhen(AndroidJavaObject builder, long timestamp)
353384
{
354-
builder.Call<AndroidJavaObject>("setWhen", timestamp).Dispose();
385+
builder.Call<AndroidJavaObject>(setWhen, timestamp).Dispose();
355386
}
356387

357388
public static void SetGroup(AndroidJavaObject builder, string group)
358389
{
359-
builder.Call<AndroidJavaObject>("setGroup", group).Dispose();
390+
builder.Call<AndroidJavaObject>(setGroup, group).Dispose();
360391
}
361392

362393
public static void SetGroupSummary(AndroidJavaObject builder, bool groupSummary)
363394
{
364-
builder.Call<AndroidJavaObject>("setGroupSummary", groupSummary).Dispose();
395+
builder.Call<AndroidJavaObject>(setGroupSummary, groupSummary).Dispose();
365396
}
366397

367398
public static void SetSortKey(AndroidJavaObject builder, string sortKey)
368399
{
369-
builder.Call<AndroidJavaObject>("setSortKey", sortKey).Dispose();
400+
builder.Call<AndroidJavaObject>(setSortKey, sortKey).Dispose();
370401
}
371402

372403
public static void SetShowWhen(AndroidJavaObject builder, bool showTimestamp)
373404
{
374-
builder.Call<AndroidJavaObject>("setShowWhen", showTimestamp).Dispose();
405+
builder.Call<AndroidJavaObject>(setShowWhen, showTimestamp).Dispose();
375406
}
376407
}
377408

0 commit comments

Comments
 (0)