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 79f0f16dc7bd34bbed1406da0335359129fdedf0..8fdf260c550066aff27f6710dc7d5d36ac8a9e6b 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; + } + } }