summaryrefslogtreecommitdiff
path: root/StoneIsland/plugins/cordova-plugin-firebase/src/android/FirebasePluginMessagingService.java
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/plugins/cordova-plugin-firebase/src/android/FirebasePluginMessagingService.java')
-rwxr-xr-xStoneIsland/plugins/cordova-plugin-firebase/src/android/FirebasePluginMessagingService.java127
1 files changed, 0 insertions, 127 deletions
diff --git a/StoneIsland/plugins/cordova-plugin-firebase/src/android/FirebasePluginMessagingService.java b/StoneIsland/plugins/cordova-plugin-firebase/src/android/FirebasePluginMessagingService.java
deleted file mode 100755
index a42ce60e..00000000
--- a/StoneIsland/plugins/cordova-plugin-firebase/src/android/FirebasePluginMessagingService.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package org.apache.cordova.firebase;
-
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v4.app.NotificationCompat;
-import android.util.Log;
-import android.app.Notification;
-import android.text.TextUtils;
-
-import com.google.firebase.messaging.FirebaseMessagingService;
-import com.google.firebase.messaging.RemoteMessage;
-
-import java.util.Map;
-import java.util.Random;
-
-public class FirebasePluginMessagingService extends FirebaseMessagingService {
-
- private static final String TAG = "FirebasePlugin";
-
- /**
- * Called when message is received.
- *
- * @param remoteMessage Object representing the message received from Firebase Cloud Messaging.
- */
- @Override
- public void onMessageReceived(RemoteMessage remoteMessage) {
- // [START_EXCLUDE]
- // There are two types of messages data messages and notification messages. Data messages are handled
- // here in onMessageReceived whether the app is in the foreground or background. Data messages are the type
- // traditionally used with GCM. Notification messages are only received here in onMessageReceived when the app
- // is in the foreground. When the app is in the background an automatically generated notification is displayed.
- // When the user taps on the notification they are returned to the app. Messages containing both notification
- // and data payloads are treated as notification messages. The Firebase console always sends notification
- // messages. For more see: https://firebase.google.com/docs/cloud-messaging/concept-options
- // [END_EXCLUDE]
-
- // TODO(developer): Handle FCM messages here.
- // Not getting messages here? See why this may be: https://goo.gl/39bRNJ
- String title;
- String text;
- String id;
- if (remoteMessage.getNotification() != null) {
- title = remoteMessage.getNotification().getTitle();
- text = remoteMessage.getNotification().getBody();
- id = remoteMessage.getMessageId();
- } else {
- title = remoteMessage.getData().get("title");
- text = remoteMessage.getData().get("text");
- id = remoteMessage.getData().get("id");
- }
-
- if(TextUtils.isEmpty(id)){
- Random rand = new Random();
- int n = rand.nextInt(50) + 1;
- id = Integer.toString(n);
- }
-
- Log.d(TAG, "From: " + remoteMessage.getFrom());
- Log.d(TAG, "Notification Message id: " + id);
- Log.d(TAG, "Notification Message Title: " + title);
- Log.d(TAG, "Notification Message Body/Text: " + text);
-
- // TODO: Add option to developer to configure if show notification when app on foreground
- if (!TextUtils.isEmpty(text) || !TextUtils.isEmpty(title) || (!remoteMessage.getData().isEmpty())) {
- boolean showNotification = (FirebasePlugin.inBackground() || !FirebasePlugin.hasNotificationsCallback()) && (!TextUtils.isEmpty(text) || !TextUtils.isEmpty(title));
- sendNotification(id, title, text, remoteMessage.getData(), showNotification);
- }
- }
-
- private void sendNotification(String id, String title, String messageBody, Map<String, String> data, boolean showNotification) {
- Bundle bundle = new Bundle();
- for (String key : data.keySet()) {
- bundle.putString(key, data.get(key));
- }
- if (showNotification) {
- Intent intent = new Intent(this, OnNotificationOpenReceiver.class);
- intent.putExtras(bundle);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(this, id.hashCode(), intent,
- PendingIntent.FLAG_UPDATE_CURRENT);
-
- Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
- NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
- .setContentTitle(title)
- .setContentText(messageBody)
- .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
- .setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
- .setAutoCancel(true)
- .setSound(defaultSoundUri)
- .setContentIntent(pendingIntent);
-
- int resID = getResources().getIdentifier("notification_icon", "drawable", getPackageName());
- if (resID != 0) {
- notificationBuilder.setSmallIcon(resID);
- } else {
- notificationBuilder.setSmallIcon(getApplicationInfo().icon);
- }
-
- if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M)
- {
- int accentID = getResources().getIdentifier("accent", "color", getPackageName());
- notificationBuilder.setColor(getResources().getColor(accentID, null));
- }
-
- Notification notification = notificationBuilder.build();
- if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){
- int iconID = android.R.id.icon;
- int notiID = getResources().getIdentifier("notification_big", "drawable", getPackageName());
- if (notification.contentView != null) {
- notification.contentView.setImageViewResource(iconID, notiID);
- }
- }
- NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
-
- notificationManager.notify(id.hashCode(), notification);
- } else {
- bundle.putBoolean("tap", false);
- bundle.putString("title", title);
- bundle.putString("body", messageBody);
- FirebasePlugin.sendNotification(bundle);
- }
- }
-}