From 1f7322d919053a843473f2bb3be898ad14921704 Mon Sep 17 00:00:00 2001 From: Michael EL BAKI Date: Mon, 3 Sep 2018 11:32:43 +0200 Subject: [PATCH 1/2] Support for large icons in push notifications for Android. --- .../MyGcmListenerService.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/PlatformSpecific/Android/cotcpushnotifications/src/main/java/com/clanofthecloud/cotcpushnotifications/MyGcmListenerService.java b/PlatformSpecific/Android/cotcpushnotifications/src/main/java/com/clanofthecloud/cotcpushnotifications/MyGcmListenerService.java index 69d3e4ea..8406b452 100755 --- a/PlatformSpecific/Android/cotcpushnotifications/src/main/java/com/clanofthecloud/cotcpushnotifications/MyGcmListenerService.java +++ b/PlatformSpecific/Android/cotcpushnotifications/src/main/java/com/clanofthecloud/cotcpushnotifications/MyGcmListenerService.java @@ -19,20 +19,30 @@ import android.app.Activity; import android.app.NotificationManager; import android.app.PendingIntent; +import android.app.NotificationChannel; +import android.app.Notification; + import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; + import android.media.RingtoneManager; + import android.net.Uri; + +import android.os.Build; import android.os.Bundle; + import android.support.v4.app.NotificationCompat; + import android.util.Log; -import android.os.Build; -import android.app.NotificationChannel; -import android.app.Notification; import com.google.android.gms.gcm.GcmListenerService; + import com.unity3d.player.UnityPlayer; import com.unity3d.player.UnityPlayerActivity; @@ -77,6 +87,12 @@ private void sendNotification(String message) { Log.e(TAG, "!!!!!!!!! cotc.GcmNotificationIcon not configured in manifest, push notifications won't work !!!!!!!!!"); return; } + int notificationLargeIcon = ai.metaData.getInt("cotc.GcmNotificationLargeIcon", -1); + if (notificationLargeIcon == -1) { + Log.e(TAG, "There is no large icon for push notifs, will only use default icon"); + return; + } + String pushNotifName = ai.metaData.getString("cotc.GcmNotificationTitle"); if (pushNotifName == null) { Log.e(TAG, "!!!!!!!!! cotc.GcmNotificationTitle not configured in manifest, push notifications won't work !!!!!!!!!"); @@ -99,6 +115,7 @@ private void sendNotification(String message) { notificationBuilder = new NotificationCompat.Builder(this); Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); + notificationBuilder.setSmallIcon(notificationIcon) .setContentTitle(pushNotifName) .setContentText(message) @@ -106,6 +123,9 @@ private void sendNotification(String message) { .setSound(defaultSoundUri) .setContentIntent(pendingIntent) .setPriority(Notification.PRIORITY_HIGH); + if(notificationLargeIcon != -1) + notificationBuilder.setLargeIcon(BitmapFactory.decodeResource(currentAct.getResources(), notificationLargeIcon)); + notifManager.notify(0 /* ID of notification */, notificationBuilder.build()); } catch (Exception e) { Log.w(TAG, "Failed to handle push notification", e); From c2f494328c1c4baae5aae7ae0dbcc79b29604434 Mon Sep 17 00:00:00 2001 From: Michael EL BAKI Date: Mon, 3 Sep 2018 11:35:55 +0200 Subject: [PATCH 2/2] Support for large icons in push notifications for Android. --- UnityProject/Assets/Plugins/Android/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/UnityProject/Assets/Plugins/Android/AndroidManifest.xml b/UnityProject/Assets/Plugins/Android/AndroidManifest.xml index a2c878de..e5565ef9 100755 --- a/UnityProject/Assets/Plugins/Android/AndroidManifest.xml +++ b/UnityProject/Assets/Plugins/Android/AndroidManifest.xml @@ -18,6 +18,7 @@ +