package ren.solid.ganhuoio.common.recevier;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.text.TextUtils;
import com.google.gson.Gson;
import java.util.Calendar;
import cn.bmob.push.PushConstants;
import ren.solid.ganhuoio.GanHuoIOApplication;
import ren.solid.ganhuoio.R;
import ren.solid.library.activity.WebViewActivity;
/**
* Created by _SOLID
* Date:2016/6/2
* Time:15:41
*/
public class BombPushMessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(PushConstants.ACTION_MESSAGE)) {
String msg = intent.getStringExtra("msg");
Gson gson = new Gson();
Message message = gson.fromJson(msg, Message.class);
if (!TextUtils.isEmpty(message.getTitle()) &&
!TextUtils.isEmpty(message.getContent())) {
showNotification(context, message);
}
}
}
private void showNotification(Context context, Message message) {
NotificationCompat.Builder builder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.mipmap.logo)
.setContentTitle(message.getTitle())
.setContentText(message.getContent())
.setTicker(message.getContent());
if (!TextUtils.isEmpty(message.getUrl())) {
Intent resultIntent = new Intent(context, WebViewActivity.class);
resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
resultIntent.putExtra(WebViewActivity.WEB_URL, message.getUrl());
resultIntent.putExtra(WebViewActivity.TITLE, message.getTitle());
PendingIntent pendingIntent =
PendingIntent.getActivity(GanHuoIOApplication.getInstance(), 0, resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(pendingIntent);
}
builder.setAutoCancel(true);
int mNotificationId = Calendar.getInstance().get(Calendar.SECOND)
+ Calendar.getInstance().get(Calendar.MILLISECOND);
Notification notification = builder.build();
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
NotificationManager notifyManager =
(NotificationManager) GanHuoIOApplication.getInstance()
.getSystemService(
Context.NOTIFICATION_SERVICE);
notifyManager.notify(mNotificationId, notification);
}
class Message {
private String title;
private String content;
private String url;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
}