diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java index a38ceb3..4ff8b3c 100644 --- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -2,6 +2,11 @@ import android.content.Context; +import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.utils.BroadcastManager; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.google.gson.Gson; import com.igexin.sdk.GTIntentService; import com.igexin.sdk.message.GTCmdMessage; import com.igexin.sdk.message.GTNotificationMessage; @@ -47,7 +52,13 @@ // 通知到达,只有个推通道下发的通知会回调此方法 @Override public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + NoticeBean noticeBean = new NoticeBean(); + noticeBean.setNoticeTitle(msg.getTitle()); + noticeBean.setSenderName("管理员"); + noticeBean.setNoticeDate(TimeOrDateUtil.timestampToDate(System.currentTimeMillis())); + noticeBean.setNoticeContent(msg.getContent()); + BroadcastManager.getInstance(context).sendBroadcast(Constant.NOTICE_MSG, new Gson().toJson(noticeBean)); } // 通知点击,只有个推通道下发的通知会回调此方法 diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java index a38ceb3..4ff8b3c 100644 --- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -2,6 +2,11 @@ import android.content.Context; +import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.utils.BroadcastManager; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.google.gson.Gson; import com.igexin.sdk.GTIntentService; import com.igexin.sdk.message.GTCmdMessage; import com.igexin.sdk.message.GTNotificationMessage; @@ -47,7 +52,13 @@ // 通知到达,只有个推通道下发的通知会回调此方法 @Override public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + NoticeBean noticeBean = new NoticeBean(); + noticeBean.setNoticeTitle(msg.getTitle()); + noticeBean.setSenderName("管理员"); + noticeBean.setNoticeDate(TimeOrDateUtil.timestampToDate(System.currentTimeMillis())); + noticeBean.setNoticeContent(msg.getContent()); + BroadcastManager.getInstance(context).sendBroadcast(Constant.NOTICE_MSG, new Gson().toJson(noticeBean)); } // 通知点击,只有个推通道下发的通知会回调此方法 diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/UnreadFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/UnreadFragment.java index 3e1a099..b8dbeb9 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/UnreadFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/UnreadFragment.java @@ -1,5 +1,6 @@ package com.casic.dcms.ui.fragment; +import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.view.ViewGroup; @@ -14,13 +15,13 @@ import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.NoticeBean; import com.casic.dcms.ui.NoticeActivity; +import com.casic.dcms.utils.BroadcastManager; +import com.casic.dcms.utils.Constant; import com.google.gson.Gson; import com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction; import com.qmuiteam.qmui.recyclerView.QMUISwipeAction; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; import java.util.List; import butterknife.BindView; @@ -38,6 +39,8 @@ private Context context; private List noticeBeans = new ArrayList<>(); private SwipeViewAdapter swipeViewAdapter; + private BroadcastManager broadcastManager; + private Gson gson; @Override protected int initLayoutView() { @@ -51,9 +54,24 @@ @Override protected void initData() { - noticeBeans = getTestData(); + gson = new Gson(); swipeViewAdapter = new SwipeViewAdapter(getContext()); - swipeViewAdapter.setData(noticeBeans); + broadcastManager = BroadcastManager.getInstance(context); + broadcastManager.addAction(Constant.NOTICE_MSG, new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (action != null) { + if (Constant.NOTICE_MSG.equals(action)) { + String data = intent.getStringExtra("data"); + assert data != null; + NoticeBean noticeBean = gson.fromJson(data, NoticeBean.class); + noticeBeans.add(noticeBean); + } + } + swipeViewAdapter.setData(noticeBeans); + } + }); } protected void initEvent() { @@ -96,21 +114,9 @@ }); } - private List getTestData() { - List beans = new ArrayList<>(); - for (int i = 0; i < 15; i++) { - NoticeBean noticeBean = new NoticeBean(); - noticeBean.setNoticeTitle("移动城管APP升级完成了" + i); - noticeBean.setNoticeDate(getTime()); - noticeBean.setNoticeContent("移动城管APP升级完成了,欢迎下载使用"); - beans.add(noticeBean); - } - return beans; - } - - private String getTime() { - SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); - Date date = new Date(System.currentTimeMillis()); - return formatter.format(date); + @Override + public void onDestroyView() { + super.onDestroyView(); + broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); } } diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java index a38ceb3..4ff8b3c 100644 --- a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -2,6 +2,11 @@ import android.content.Context; +import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.utils.BroadcastManager; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.google.gson.Gson; import com.igexin.sdk.GTIntentService; import com.igexin.sdk.message.GTCmdMessage; import com.igexin.sdk.message.GTNotificationMessage; @@ -47,7 +52,13 @@ // 通知到达,只有个推通道下发的通知会回调此方法 @Override public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + NoticeBean noticeBean = new NoticeBean(); + noticeBean.setNoticeTitle(msg.getTitle()); + noticeBean.setSenderName("管理员"); + noticeBean.setNoticeDate(TimeOrDateUtil.timestampToDate(System.currentTimeMillis())); + noticeBean.setNoticeContent(msg.getContent()); + BroadcastManager.getInstance(context).sendBroadcast(Constant.NOTICE_MSG, new Gson().toJson(noticeBean)); } // 通知点击,只有个推通道下发的通知会回调此方法 diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/UnreadFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/UnreadFragment.java index 3e1a099..b8dbeb9 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/UnreadFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/UnreadFragment.java @@ -1,5 +1,6 @@ package com.casic.dcms.ui.fragment; +import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.view.ViewGroup; @@ -14,13 +15,13 @@ import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.NoticeBean; import com.casic.dcms.ui.NoticeActivity; +import com.casic.dcms.utils.BroadcastManager; +import com.casic.dcms.utils.Constant; import com.google.gson.Gson; import com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction; import com.qmuiteam.qmui.recyclerView.QMUISwipeAction; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; import java.util.List; import butterknife.BindView; @@ -38,6 +39,8 @@ private Context context; private List noticeBeans = new ArrayList<>(); private SwipeViewAdapter swipeViewAdapter; + private BroadcastManager broadcastManager; + private Gson gson; @Override protected int initLayoutView() { @@ -51,9 +54,24 @@ @Override protected void initData() { - noticeBeans = getTestData(); + gson = new Gson(); swipeViewAdapter = new SwipeViewAdapter(getContext()); - swipeViewAdapter.setData(noticeBeans); + broadcastManager = BroadcastManager.getInstance(context); + broadcastManager.addAction(Constant.NOTICE_MSG, new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (action != null) { + if (Constant.NOTICE_MSG.equals(action)) { + String data = intent.getStringExtra("data"); + assert data != null; + NoticeBean noticeBean = gson.fromJson(data, NoticeBean.class); + noticeBeans.add(noticeBean); + } + } + swipeViewAdapter.setData(noticeBeans); + } + }); } protected void initEvent() { @@ -96,21 +114,9 @@ }); } - private List getTestData() { - List beans = new ArrayList<>(); - for (int i = 0; i < 15; i++) { - NoticeBean noticeBean = new NoticeBean(); - noticeBean.setNoticeTitle("移动城管APP升级完成了" + i); - noticeBean.setNoticeDate(getTime()); - noticeBean.setNoticeContent("移动城管APP升级完成了,欢迎下载使用"); - beans.add(noticeBean); - } - return beans; - } - - private String getTime() { - SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); - Date date = new Date(System.currentTimeMillis()); - return formatter.format(date); + @Override + public void onDestroyView() { + super.onDestroyView(); + broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); } } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index e9e9f8b..4f24791 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -51,4 +51,5 @@ public static final String IP_KEY = "BASE_IP"; public static final String LOGIN_OUT_ACTION = "loginOut"; + public static final String NOTICE_MSG = "receivePush"; }