package com.hanju.video.app;
|
|
import android.app.Notification;
|
import android.app.NotificationManager;
|
import android.app.PendingIntent;
|
import android.content.ContentValues;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.graphics.Color;
|
import android.os.Bundle;
|
import android.util.Log;
|
|
//import com.umeng.message.UmengMessageHandler;
|
//import com.umeng.message.entity.UMessage;
|
import com.tencent.android.tpush.XGPushBaseReceiver;
|
import com.tencent.android.tpush.XGPushClickedResult;
|
import com.tencent.android.tpush.XGPushRegisterResult;
|
import com.tencent.android.tpush.XGPushShowedResult;
|
import com.tencent.android.tpush.XGPushTextMessage;
|
import com.hanju.video.app.db.MessageTable;
|
import com.hanju.video.app.ui.media.VideoDetailActivity;
|
import com.hanju.video.app.ui.mine.SystemMessageActivity;
|
|
import org.json.JSONObject;
|
|
import java.util.Iterator;
|
|
import de.greenrobot.event.EventBus;
|
|
public class HanJuMessageHandler extends XGPushBaseReceiver {
|
@Override
|
public void onNotifactionShowedResult(Context context, XGPushShowedResult msg) {
|
try {
|
JSONObject object = new JSONObject(msg.getCustomContent());
|
if ("VideoUpdate".equalsIgnoreCase(object.optString("PushType"))) {
|
SharedPreferences sharedPreferences = context.getSharedPreferences("user", Context.MODE_PRIVATE);
|
sharedPreferences.edit().putBoolean("PushType", true).commit();
|
EventBus.getDefault().post(msg);
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
}
|
|
// @Override
|
// public void dealWithNotificationMessage(Context context, UMessage msg) {
|
// if (Integer.parseInt(msg.custom) == 1) {
|
// ContentValues values = new ContentValues();
|
// values.put(MessageTable.MESSAGE_ID, msg.msg_id);
|
// values.put(MessageTable.MESSAGE_TITLE, msg.title);
|
// values.put(MessageTable.MESSAGE_CONTENT, msg.text);
|
// values.put(MessageTable.MESSAGE_STATUS, 0);
|
// values.put(MessageTable.UPDATE_TIME, System.currentTimeMillis());
|
// values.put(MessageTable.CREATE_TIME, System.currentTimeMillis());
|
// context.getContentResolver().insert(MessageTable.CONTENT_URI,
|
// values);
|
// }
|
// super.dealWithNotificationMessage(context, msg);
|
// }
|
@Override
|
public void onDeleteTagResult(Context context, int i, String s) {
|
|
}
|
|
@Override
|
public void onRegisterResult(Context context, int i, XGPushRegisterResult xgPushRegisterResult) {
|
|
}
|
|
@Override
|
public void onSetTagResult(Context context, int i, String s) {
|
|
}
|
|
@Override
|
public void onNotifactionClickedResult(Context context, XGPushClickedResult msg) {
|
Bundle bundle = new Bundle();
|
try {
|
JSONObject object = new JSONObject(msg.getCustomContent());
|
Iterator<String> str = object.keys();
|
while (str.hasNext()) {
|
String key = str.next();
|
bundle.putString(key, object.optString(key));
|
}
|
Intent intent = new Intent(context, Class.forName(object.optString("Activity")));
|
intent.putExtras(bundle);
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
context.startActivity(intent);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void onUnregisterResult(Context context, int i) {
|
|
}
|
|
private NotificationManager nm;
|
private Notification n;
|
|
@Override
|
public void onTextMessage(Context context, XGPushTextMessage msg) {
|
ContentValues values = new ContentValues();
|
values.put(MessageTable.MESSAGE_ID, System.currentTimeMillis());
|
values.put(MessageTable.MESSAGE_TITLE, msg.getTitle());
|
values.put(MessageTable.MESSAGE_CONTENT, msg.getContent());
|
values.put(MessageTable.MESSAGE_STATUS, 0);
|
values.put(MessageTable.UPDATE_TIME, System.currentTimeMillis());
|
values.put(MessageTable.CREATE_TIME, System.currentTimeMillis());
|
context.getContentResolver().insert(MessageTable.CONTENT_URI,
|
values);
|
// 第一步:获取NotificationManager
|
NotificationManager nm = (NotificationManager)
|
context.getSystemService(Context.NOTIFICATION_SERVICE);
|
|
///// 第二步:定义Notification
|
Intent intent = new Intent(context, SystemMessageActivity.class);
|
//PendingIntent是待执行的Intent
|
PendingIntent pi = PendingIntent.getActivity(context, 0, intent,
|
PendingIntent.FLAG_CANCEL_CURRENT);
|
Notification notification = new Notification.Builder(context)
|
.setContentTitle(msg.getTitle())
|
.setContentText(msg.getContent())
|
.setAutoCancel(true)
|
.setSmallIcon(R.drawable.ic_launcher).setContentIntent(pi)
|
.build();
|
// notification.flags = Notification.FLAG_NO_CLEAR;
|
|
/////第三步:启动通知栏,第一个参数是一个通知的唯一标识
|
nm.notify(0, notification);
|
//关闭通知
|
//nm.cancel(0);
|
|
|
}
|
}
|