33
This commit is contained in:
@@ -0,0 +1,316 @@
|
||||
package cn.shangyu.gdxzExpert.umeng;
|
||||
|
||||
import static cn.shangyu.gdxzExpert.application.BaseApplication.getContext;
|
||||
import static cn.shangyu.gdxzExpert.umeng.PushHelper.readMessage;
|
||||
import static cn.shangyu.gdxzExpert.utils.CommonUtil.BigModule;
|
||||
import static cn.shangyu.gdxzExpert.utils.StaUtil.EXPERT_PUSH_CLASS_QUALITY_DETAILS;
|
||||
import static cn.shangyu.gdxzExpert.utils.StaUtil.EXPERT_PUSH_COURSEWARE_DETAILS;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
import com.netease.nimlib.sdk.NimIntent;
|
||||
import com.netease.nimlib.sdk.mixpush.MixPushService;
|
||||
import com.netease.nimlib.sdk.msg.MessageBuilder;
|
||||
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
|
||||
import com.netease.nimlib.sdk.msg.model.IMMessage;
|
||||
import com.umeng.analytics.MobclickAgent;
|
||||
import com.umeng.message.UmengNotifyClickActivity;
|
||||
|
||||
import org.android.agoo.common.AgooConstants;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
|
||||
import cn.shangyu.gdxzExpert.R;
|
||||
import cn.shangyu.gdxzExpert.activity.AccumulatePointsActivity;
|
||||
import cn.shangyu.gdxzExpert.activity.BillDetailsActivity;
|
||||
import cn.shangyu.gdxzExpert.activity.BookshelfListActivity2;
|
||||
import cn.shangyu.gdxzExpert.activity.FaPiaoActivity;
|
||||
import cn.shangyu.gdxzExpert.activity.GanDanHouseDetialActivity;
|
||||
import cn.shangyu.gdxzExpert.activity.MyCoursewareActivity;
|
||||
import cn.shangyu.gdxzExpert.activity.MyFlowerActivity;
|
||||
import cn.shangyu.gdxzExpert.activity.MyFuliCardActivity;
|
||||
import cn.shangyu.gdxzExpert.activity.WebActivity;
|
||||
import cn.shangyu.gdxzExpert.big.activity.BigPointsMallActivity;
|
||||
import cn.shangyu.gdxzExpert.netease.mixpush.DemoMixPushMessageHandler;
|
||||
import cn.shangyu.gdxzExpert.pointsmall.PointsMallActivity;
|
||||
import cn.shangyu.gdxzExpert.polyvplayer.CourseDetailPolyvPlayerActivity;
|
||||
import cn.shangyu.gdxzExpert.polyvplayer.VideoDetailPolyvPlayerActivity;
|
||||
import cn.shangyu.gdxzExpert.splash.WelcomeUI;
|
||||
import cn.shangyu.gdxzExpert.utils.GsonTools;
|
||||
import cn.shangyu.gdxzExpert.utils.StringUtil;
|
||||
import cn.shangyu.gdxzExpert.utils.Url;
|
||||
|
||||
/**
|
||||
* 厂商通道配置托管启动的Activity
|
||||
* 如点击小米、华为、OPPO、vivo等系统通道的通知消息,启动的Activity类
|
||||
*/
|
||||
public class MfrMessageActivity extends UmengNotifyClickActivity {
|
||||
|
||||
private static final String TAG = "MfrMessageActivity";
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
setContentView(R.layout.mfr_message_layout);
|
||||
// onIntent();
|
||||
}
|
||||
// 处理收到的Intent
|
||||
private void onIntent() {
|
||||
LogUtil.i(TAG, "onIntent...");
|
||||
LogUtil.i("G2", "onIntent...");
|
||||
|
||||
|
||||
// 已经登录过了,处理过来的请求
|
||||
Intent intent = getIntent();
|
||||
if (intent != null) {
|
||||
if(intent.getExtras()!=null)
|
||||
{
|
||||
Log.d(TAG, "intent.getExtras(): " + intent.getExtras().toString());
|
||||
}
|
||||
if (intent.hasExtra(NimIntent.EXTRA_NOTIFY_CONTENT)) {
|
||||
parseNotifyIntent(intent);
|
||||
return;
|
||||
} else if (NIMClient.getService(MixPushService.class).isFCMIntent(intent)) {
|
||||
parseFCMNotifyIntent(NIMClient.getService(MixPushService.class).parseFCMPayload(intent));
|
||||
}
|
||||
}
|
||||
}
|
||||
private void parseFCMNotifyIntent(String payloadString) {
|
||||
Map<String, String> payload = JSON.parseObject(payloadString, Map.class);
|
||||
String sessionId = payload.get(DemoMixPushMessageHandler.PAYLOAD_SESSION_ID);
|
||||
String type = payload.get(DemoMixPushMessageHandler.PAYLOAD_SESSION_TYPE);
|
||||
if (sessionId != null && type != null) {
|
||||
int typeValue = Integer.valueOf(type);
|
||||
IMMessage message = MessageBuilder.createEmptyMessage(sessionId, SessionTypeEnum.typeOfValue(typeValue), 0);
|
||||
// showMainActivity(new Intent().putExtra(NimIntent.EXTRA_NOTIFY_CONTENT, message));
|
||||
} else {
|
||||
// showMainActivity(null);
|
||||
}
|
||||
}
|
||||
private void parseNotifyIntent(Intent intent) {
|
||||
ArrayList<IMMessage> messages = (ArrayList<IMMessage>) intent.getSerializableExtra(NimIntent.EXTRA_NOTIFY_CONTENT);
|
||||
if (messages == null || messages.size() > 1) {
|
||||
// showMainActivity(null);
|
||||
} else {
|
||||
// showMainActivity(new Intent().putExtra(NimIntent.EXTRA_NOTIFY_CONTENT, messages.get(0)));
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onMessage(Intent intent) {
|
||||
|
||||
if(intent==null)
|
||||
return;
|
||||
Bundle bundle = intent.getExtras();
|
||||
if (bundle != null) {
|
||||
Log.d(TAG, "bundle: " + bundle);
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
super.onMessage(intent);
|
||||
final String body = intent.getStringExtra(AgooConstants.MESSAGE_BODY);
|
||||
try {
|
||||
|
||||
JSONObject jsonObject = new JSONObject(body);
|
||||
PushBean pushBean= GsonTools.fromGsonToBean(body,PushBean.class);
|
||||
if(pushBean!=null&&pushBean.getExtra()!=null&& !StringUtil.isEmpty(pushBean.getExtra().getMessage_id()))
|
||||
{
|
||||
readMessage(pushBean.getExtra().getMessage_id());
|
||||
}
|
||||
if(pushBean!=null&&pushBean.getExtra()!=null&&pushBean.getExtra().getType()!=null)
|
||||
{
|
||||
Intent intent3=new Intent();
|
||||
|
||||
switch (pushBean.getExtra().getType())
|
||||
{
|
||||
case "1":
|
||||
intent3.setClass(getContext(),PushNewsDetailActivity.class);
|
||||
intent3.putExtra("title", "新闻详情");
|
||||
intent3.putExtra("newsuuid", pushBean.getExtra().getUuid());
|
||||
intent3.putExtra("flag", 3);
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"3"://肝胆视频
|
||||
Intent intent4 = VideoDetailPolyvPlayerActivity.newIntent(getContext(), VideoDetailPolyvPlayerActivity.PlayMode.portrait,"");
|
||||
// 在线视频和下载的视频播放的时候只显示播放器窗口,用该参数来控制
|
||||
intent4.putExtra("startNow", false);
|
||||
intent4.putExtra("isVlmsOnline", false);
|
||||
intent4.putExtra("uuid", pushBean.getExtra().getUuid());
|
||||
intent4.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent4);
|
||||
finish();
|
||||
break;
|
||||
case"4"://直播
|
||||
intent3.setType("zhibo");
|
||||
intent3.setClass(getContext(),PushZhiBoActivity.class);
|
||||
intent3.putExtra("id", pushBean.getExtra().getId());
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"5"://肝胆课件
|
||||
MobclickAgent.onEvent(getContext(),EXPERT_PUSH_COURSEWARE_DETAILS);
|
||||
intent3.setClass(getContext(),PushCourseUrlDetailActivity.class);
|
||||
intent3.putExtra("uuid", pushBean.getExtra().getUuid());
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"6"://精品课
|
||||
case"7":
|
||||
MobclickAgent.onEvent(getContext(),EXPERT_PUSH_CLASS_QUALITY_DETAILS);
|
||||
intent3.setClass(getContext(), CourseDetailPolyvPlayerActivity.class);
|
||||
intent3.putExtra("excellentcourse_id", pushBean.getExtra().getId());
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"9"://积分商城
|
||||
if(BigModule())
|
||||
{
|
||||
intent3.setClass(getContext(), BigPointsMallActivity.class);
|
||||
}
|
||||
else
|
||||
{
|
||||
intent3.setClass(getContext(), PointsMallActivity.class);
|
||||
}
|
||||
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"10"://指南
|
||||
intent3.setClass(getContext(), BookshelfListActivity2.class);
|
||||
intent3.putExtra("typeUuid", pushBean.getExtra().getUuid());
|
||||
intent3.putExtra("title", pushBean.getExtra().getName());
|
||||
intent3.putExtra("loadUrl", Url.getGuideList);
|
||||
intent3.putExtra("type", "0");
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"11"://普通url
|
||||
intent3.setClass(getContext(), WebActivity.class);
|
||||
intent3.putExtra("url",pushBean.getExtra().getUrl());
|
||||
intent3.putExtra("title","推送消息");
|
||||
intent3.putExtra("need_share","0");
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"15"://精品课评论
|
||||
// intent3.setClass(getContext(), CourseDetailPolyvPlayerActivity.class);
|
||||
// intent3.putExtra("excellentcourse_id", pushBean.getExtra().getId());
|
||||
// intent3.putExtra("pinglun","yes");
|
||||
// intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
// getContext().startActivity(intent3);
|
||||
// finish();
|
||||
// break;
|
||||
case"16"://一问多答
|
||||
case"17"://病例讨论
|
||||
intent3.setClass(getContext(), NewSystemMessageActivity.class);
|
||||
intent3.putExtra("module",3);
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"18"://送花
|
||||
intent3.setClass(getContext(), MyFlowerActivity.class);
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"19"://课件收益
|
||||
intent.setClass(getContext(), MyCoursewareActivity.class);
|
||||
intent.putExtra("changeMyCoolect",1);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent);
|
||||
break;
|
||||
case"21"://提现
|
||||
intent3.setClass(getContext(), BillDetailsActivity.class);
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"20"://发票
|
||||
intent3.setClass(getContext(), FaPiaoActivity.class);
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"28"://课件分享
|
||||
case"30"://精品课优质评价
|
||||
case"31"://学完返现
|
||||
case"32"://福利课堂
|
||||
case"33"://阅读福利
|
||||
case"34"://观看福利
|
||||
case"36"://特别奖励
|
||||
intent3.setClass(getContext(), AccumulatePointsActivity.class);
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case"35"://福利卡
|
||||
intent3.setClass(getContext(), MyFuliCardActivity.class);
|
||||
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
case "40"://互动圈
|
||||
intent.setClass(getContext(), GanDanHouseDetialActivity.class);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.putExtra("uuid",pushBean.getExtra().getUuid());
|
||||
getContext().startActivity(intent);
|
||||
break;
|
||||
default:
|
||||
intent3.setClass(MfrMessageActivity.this, WelcomeUI.class);
|
||||
startActivity(intent3);
|
||||
finish();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
else if(jsonObject.optJSONObject("extra")!=null&&!(jsonObject.getJSONObject("extra").isNull("url")))
|
||||
{
|
||||
Intent intent2=new Intent(getContext(), WebActivity.class);
|
||||
intent2.putExtra("url",jsonObject.getJSONObject("extra").getString("url"));
|
||||
intent2.putExtra("title","推送消息");
|
||||
intent2.putExtra("need_share","0");
|
||||
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getContext().startActivity(intent2);
|
||||
finish();
|
||||
}
|
||||
else
|
||||
{
|
||||
Intent intent1 = new Intent();
|
||||
intent1.setClass(MfrMessageActivity.this, WelcomeUI.class);
|
||||
startActivity(intent1);
|
||||
finish();
|
||||
}
|
||||
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// Log.d(TAG, "body: " + body);
|
||||
// if (!TextUtils.isEmpty(body)) {
|
||||
// runOnUiThread(new Runnable() {
|
||||
// @Override
|
||||
// public void run() {
|
||||
// ((TextView) findViewById(R.id.tv)).setText(body);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user