/
MessagingClient.java
71 lines (61 loc) · 3 KB
/
MessagingClient.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package com.hortonworks.iot.financial.customerapp;
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.support.v4.content.LocalBroadcastManager;
import android.util.Log;
import com.google.android.gms.gcm.GcmListenerService;
public class MessagingClient extends GcmListenerService {
private static final String TAG = "MyGcmListenerService";
@Override
public void onMessageReceived(String from, Bundle data) {
String accountNumber = data.getString("accountNumber");
String transactionId = data.getString("transactionId");
String merchantType = data.getString("merchantType");
String merchantId = data.getString("merchantId");
String amount = data.getString("amount");
String latitude = data.getString("latitude");
String longitude = data.getString("longitude");
Log.d(TAG, "From: " + from);
Log.i(TAG, "AccountNumber: " + accountNumber);
Log.i(TAG, "TransactionId: " + transactionId);
Log.i(TAG, "MerchantType: " + merchantType);
Log.i(TAG, "MerchantId: " + merchantId);
Log.i(TAG, "Amount: " + amount);
Log.d(TAG, "Latitude: " + latitude);
Log.d(TAG, "Longitude: " + longitude);
if (from.startsWith("/topics/")) {
} else {
}
Intent incomingMessage = new Intent("message");
incomingMessage.putExtra("accountNumber", accountNumber);
incomingMessage.putExtra("transactionId", transactionId);
incomingMessage.putExtra("merchantId", merchantId);
incomingMessage.putExtra("merchantType", merchantType);
incomingMessage.putExtra("amount", amount);
incomingMessage.putExtra("latitude", latitude);
incomingMessage.putExtra("longitude", longitude);
LocalBroadcastManager.getInstance(this).sendBroadcast(incomingMessage);
sendNotification(merchantType);
}
private void sendNotification(String message) {
Intent intent = new Intent(this, MapsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("GCM Message")
.setContentText(message)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
}