OSDN Git Service

98a0f95d908c205b21374618acf9529715accb63
[smackclient/smackclient.git] / app / src / main / java / cc / minsnail / receiver / MsgReceiver.java
1 package cc.minsnail.receiver;
2
3 import android.annotation.TargetApi;
4 import android.app.Notification;
5 import android.app.NotificationManager;
6 import android.app.PendingIntent;
7 import android.content.BroadcastReceiver;
8 import android.content.Context;
9 import android.content.Intent;
10 import android.os.Build;
11 import android.util.Log;
12
13 import cc.minsnail.activity.ChatActivity;
14 import cc.minsnail.beans.YgMessage;
15 import cc.minsnail.config.Config;
16 import cc.minsnail.smackclient.R;
17
18 /**
19  * Created by yg on 2016/10/8.
20  */
21 public class MsgReceiver extends BroadcastReceiver {
22     private static final String TAG = "MsgRecerver";
23
24     @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
25     @Override
26     public void onReceive(Context context, Intent intent) {
27         if (intent.getAction().equals(TAG)) {
28             Log.i(TAG, "received message");
29             YgMessage ygMessage = intent.getParcelableExtra("msg");
30             NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
31             Notification.Builder builder = new Notification.Builder(context);
32             Intent i = new Intent(context, ChatActivity.class);
33             i.putExtra(Config.KEY_FROM_JID, ygMessage.getFrom());
34             i.putExtra(Config.KEY_FROM_NAME, ygMessage.getFrom().split("@")[0]);
35             i.putExtra("msg", ygMessage);
36             PendingIntent pi = PendingIntent.getActivity(context, 0, i, 0);
37             builder.setContentTitle(ygMessage.getFrom().split("@")[0])
38                     .setContentText("新消息")
39                     .setTicker(ygMessage.getFrom())
40                     .setSmallIcon(R.mipmap.ic_launcher)
41                     .setWhen(System.currentTimeMillis())
42                     .setAutoCancel(true);
43             builder.setContentIntent(pi);
44             notificationManager.notify((int) (Math.random() * 100), builder.build());
45             abortBroadcast();
46         }
47     }
48 }