diff --git a/plugin.xml b/plugin.xml
index 3d6ccae6f..58ff94c93 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -74,6 +74,7 @@
+
diff --git a/src/android/BadgeHelper.java b/src/android/BadgeHelper.java
new file mode 100644
index 000000000..8b88b6809
--- /dev/null
+++ b/src/android/BadgeHelper.java
@@ -0,0 +1,40 @@
+package com.gae.scaffolder.plugin;
+
+import android.content.Context;
+import android.util.Log;
+
+import me.leolin.shortcutbadger.ShortcutBadgeException;
+import me.leolin.shortcutbadger.ShortcutBadger;
+
+/**
+ * Created by ArindamN on 04/04/2017.
+ */
+public class BadgeHelper {
+ private static String TAG = "FCM_BADGE_HELPER";
+ public final static String CONST_BADGE_KEY = "badge";
+
+ public static void setBadgeCount(String badge, Context ctx){
+ try {
+ //String badge = (String) remoteMessage.get("badge");
+ int badgeCount = 0;
+ if(badge!=null && !badge.isEmpty()){
+ badgeCount = tryParseInt(badge);
+ }
+ if(badgeCount>0)
+ {
+ ShortcutBadger. applyCountOrThrow(ctx, badgeCount);
+ Log.d(TAG, "showBadge worked!");
+ }
+
+ } catch (ShortcutBadgeException e) {
+ Log.e(TAG, "showBadge failed: " + e.getMessage());
+ }
+ }
+ static int tryParseInt(String value) {
+ try {
+ return Integer.parseInt(value);
+ } catch (NumberFormatException e) {
+ return 0;
+ }
+ }
+}
diff --git a/src/android/FCMPlugin.gradle b/src/android/FCMPlugin.gradle
index 4ab3a0990..6ab69d5e1 100644
--- a/src/android/FCMPlugin.gradle
+++ b/src/android/FCMPlugin.gradle
@@ -10,4 +10,7 @@ buildscript {
}
// apply plugin: 'com.google.gms.google-services'
// class must be used instead of id(string) to be able to apply plugin from non-root gradle file
-apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
\ No newline at end of file
+apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
+dependencies {
+ compile 'me.leolin:ShortcutBadger:1.1.11@aar'
+}
diff --git a/src/android/FCMPluginActivity.java b/src/android/FCMPluginActivity.java
index c613f5ee7..4489abf36 100644
--- a/src/android/FCMPluginActivity.java
+++ b/src/android/FCMPluginActivity.java
@@ -38,7 +38,8 @@ public void onCreate(Bundle savedInstanceState) {
data.put(key, value);
}
}
-
+
+ BadgeHelper.setBadgeCount((String) data.get(BadgeHelper.CONST_BADGE_KEY), getApplicationContext());
FCMPlugin.sendPushPayload(data);
finish();
diff --git a/src/android/MyFirebaseMessagingService.java b/src/android/MyFirebaseMessagingService.java
index 941e7ca75..f513a0a56 100644
--- a/src/android/MyFirebaseMessagingService.java
+++ b/src/android/MyFirebaseMessagingService.java
@@ -47,6 +47,7 @@ public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "\tKey: " + key + " Value: " + value);
data.put(key, value);
}
+ BadgeHelper.setBadgeCount((String)data.get(BadgeHelper.CONST_BADGE_KEY), getApplicationContext());
Log.d(TAG, "\tNotification Data: " + data.toString());
FCMPlugin.sendPushPayload( data );