diff options
Diffstat (limited to 'StoneIsland/plugins/cordova-plugin-firebase/src/android/FirebasePluginMessagingService.java')
| -rwxr-xr-x | StoneIsland/plugins/cordova-plugin-firebase/src/android/FirebasePluginMessagingService.java | 127 |
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); - } - } -} |
