From a74aedd32e3686d9c7b90d621e5db2719eee41a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Baldur=20P=C3=A1ll=20H=C3=B3lmgeirsson?= Date: Tue, 20 Dec 2016 14:20:53 +0000 Subject: [PATCH] Support bitmap urls in large-icon (#238) * Support bitmap urls in large-icon * Remove comment --- .../react/fcm/FIRLocalMessagingHelper.java | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/android/src/main/java/com/evollu/react/fcm/FIRLocalMessagingHelper.java b/android/src/main/java/com/evollu/react/fcm/FIRLocalMessagingHelper.java index 79f0f16..8fdf260 100644 --- a/android/src/main/java/com/evollu/react/fcm/FIRLocalMessagingHelper.java +++ b/android/src/main/java/com/evollu/react/fcm/FIRLocalMessagingHelper.java @@ -16,12 +16,16 @@ import android.os.Build; import android.os.Bundle; import android.support.v4.app.NotificationCompat; import android.util.Log; +import android.util.Patterns; import android.content.SharedPreferences; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; - +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.net.HttpURLConnection; public class FIRLocalMessagingHelper { private static final long DEFAULT_VIBRATION = 300L; @@ -110,11 +114,16 @@ public class FIRLocalMessagingHelper { //large icon String largeIcon = bundle.getString("large-icon"); if(largeIcon != null && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){ - int largeIconResId = res.getIdentifier(largeIcon, "mipmap", packageName); - Bitmap largeIconBitmap = BitmapFactory.decodeResource(res, largeIconResId); + if (largeIcon.startsWith("http://") || largeIcon.startsWith("https://")) { + Bitmap bitmap = getBitmapFromURL(largeIcon); + notification.setLargeIcon(bitmap); + } else { + int largeIconResId = res.getIdentifier(largeIcon, "mipmap", packageName); + Bitmap largeIconBitmap = BitmapFactory.decodeResource(res, largeIconResId); - if (largeIconResId != 0) { - notification.setLargeIcon(largeIconBitmap); + if (largeIconResId != 0) { + notification.setLargeIcon(largeIconBitmap); + } } } @@ -303,4 +312,18 @@ public class FIRLocalMessagingHelper { public void setApplicationForeground(boolean foreground){ mIsForeground = foreground; } + + public Bitmap getBitmapFromURL(String strURL) { + try { + URL url = new URL(strURL); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setDoInput(true); + connection.connect(); + InputStream input = connection.getInputStream(); + return BitmapFactory.decodeStream(input); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } } -- 2.26.2