package cn.mutils.app.demo.push; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.support.v4.app.NotificationCompat; import org.json.JSONObject; import proguard.annotation.Keep; import proguard.annotation.KeepClassMembers; import cn.mutils.app.demo.PushNotifyActivity; import cn.mutils.app.demo.PushNotifyActivity.DemoPushNotifyExtra; import cn.mutils.app.demo.R; import cn.mutils.app.demo.push.HelloWorldPushDispatcher.HelloWorldMessage; import cn.mutils.app.push.PushDispathcer; import cn.mutils.core.json.JsonUtil; @SuppressWarnings("serial") public class HelloWorldPushDispatcher extends PushDispathcer<HelloWorldMessage> { public static final int CODE_HELLO_WORLD = 1000; @Keep @KeepClassMembers public static class HelloWorldMessage { protected String mName; protected String mMessage; public String getName() { return mName; } public void setName(String name) { mName = name; } public String getMessage() { return mMessage; } public void setMessage(String message) { mMessage = message; } } protected int mCode; protected JSONObject mData; public int getCode() { return mCode; } public void setCode(int code) { mCode = code; } public JSONObject getData() { return mData; } public void setData(JSONObject data) { mData = data; } @Override public boolean preTranslateMessage() { if (mCode != CODE_HELLO_WORLD) { return true; } return false; } @Override public HelloWorldMessage translateMessage() { try { return JsonUtil.fromJson(mData, HelloWorldMessage.class); } catch (Exception e) { return null; } } @Override public void onMessage(HelloWorldMessage message) { Context context = getContext(); Intent intent = new Intent(context, PushNotifyActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); DemoPushNotifyExtra extra = new DemoPushNotifyExtra(); extra.setMessage(message); extra.putTo(intent); PendingIntent pendingIntent = PendingIntent.getActivity(context, CODE_HELLO_WORLD, intent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder builder = new NotificationCompat.Builder(getContext()); builder.setContentIntent(pendingIntent); builder.setWhen(System.currentTimeMillis()); builder.setAutoCancel(true); builder.setOngoing(false); builder.setDefaults(Notification.DEFAULT_VIBRATE); builder.setSmallIcon(R.drawable.ic_launcher); builder.setTicker("Hello world!"); builder.setContentTitle(message.mName); builder.setContentText(message.mMessage); NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); manager.notify(CODE_HELLO_WORLD, builder.build()); } }