//package com.gh.gamecenter.receiver
//
//import android.content.BroadcastReceiver
//import android.content.Context
//import android.content.Intent
//import androidx.annotation.Keep
//import com.gh.base.GHUmengNotificationService
//import com.gh.common.PushManager
//import com.gh.common.util.DirectUtils
//import com.gh.common.util.EntranceUtils
//import com.gh.common.util.PushHelper
//import com.gh.gamecenter.common.entity.LinkEntity
//import com.umeng.message.UTrack
//import com.umeng.message.entity.UMessage
//import org.json.JSONObject
//
//class UmengMessageReceiver : BroadcastReceiver() {
//
//    companion object {
//        const val TYPE_REMOVE = "remove"
//        const val TYPE_CLICK = "click"
//        const val DIRECT_ONLY = "direct_only" // 只跳转，不记录
//
//        const val ACTION = "com.gh.gamecenter.UMENG"
//
//        const val SP_CLICK_EVENT = "sp_click_event"
//    }
//
//    override fun onReceive(context: Context, intent: Intent) {
//        val type: String? = intent.getStringExtra(EntranceUtils.KEY_TYPE)
//        val messageString = intent.getStringExtra(EntranceUtils.KEY_MESSAGE)
//        val notificationMessageId = intent.getStringExtra(GHUmengNotificationService.NOTIFICATION_MESSAGE_ID)
//        val msgObject = UMessage(JSONObject(messageString))
//
//        when (type) {
//            TYPE_CLICK -> {
//                val link: LinkEntity? = intent.getParcelableExtra(EntranceUtils.KEY_DATA)
//
//                if (link == null || link.link == "system") {
//                    jumpToHaloOfficialNotificationPage(context)
//                } else {
//                    jumpToSpecificPage(context, link)
//                }
//
//                // 记录该推送通知被点击
//                UTrack.getInstance(context).trackMsgClick(msgObject)
//                val msgId = intent.getStringExtra(GHUmengNotificationService.MESSAGE_ID)
//                val pushId = intent.getStringExtra(GHUmengNotificationService.PUSH_ID)
//
//                if (!msgId.isNullOrEmpty() && !pushId.isNullOrEmpty()) {
//                    postClickAction(context, ClickEvent(
//                            device_token = PushManager.deviceToken ?: "",
//                            msg_id = msgId,
//                            push_id = pushId))
//                }
//
//                // 记录消息中心的那条消息已读(已被点击)
//                if (!notificationMessageId.isNullOrEmpty()) {
//                    postMessageReadAction(context, link?.type ?: "", notificationMessageId)
//                }
//            }
//
//            TYPE_REMOVE -> {
//                // 记录该推送通知被 dismiss
//                UTrack.getInstance(context).trackMsgDismissed(msgObject)
//            }
//
//            DIRECT_ONLY -> {
//                val link: LinkEntity? = intent.getParcelableExtra(EntranceUtils.KEY_DATA)
//                if (link == null || link.link == "system") {
//                    jumpToHaloOfficialNotificationPage(context)
//                } else {
//                    jumpToSpecificPage(context, link)
//                }
//
//                // 记录消息中心的那条消息已读(已被点击)
//                if (!notificationMessageId.isNullOrEmpty()) {
//                    postMessageReadAction(context, link?.type ?: "", notificationMessageId)
//                }
//            }
//        }
//    }
//
//    private fun postClickAction(context: Context, clickEvent: ClickEvent) {
//        PushHelper.postPushClickAction(context, clickEvent)
//    }
//
//    private fun postMessageReadAction(context: Context, type: String, notificationMessageId: String) {
//        PushHelper.setNotificationMessageRead(context, type, notificationMessageId)
//    }
//
//    private fun jumpToHaloOfficialNotificationPage(context: Context) {
//        DirectUtils.directToOfficialNotification(context, EntranceUtils.ENTRANCE_UMENG)
//    }
//
//    private fun jumpToSpecificPage(context: Context, link: LinkEntity) {
//        when (link.type) {
//            EntranceUtils.HOST_ARTICLE -> {
//                DirectUtils.directToArticle(context, link.link!!, EntranceUtils.ENTRANCE_UMENG)
//            }
//            EntranceUtils.HOST_GAME -> {
//                DirectUtils.directToGameDetail(context, link.link!!, EntranceUtils.ENTRANCE_UMENG)
//            }
//            EntranceUtils.HOST_COLUMN -> {
//                DirectUtils.directToSubject(context, link.link!!, null, EntranceUtils.ENTRANCE_UMENG)
//            }
//            EntranceUtils.HOST_QUESTION -> {
//                DirectUtils.directToQuestionDetail(context, link.link!!, EntranceUtils.ENTRANCE_UMENG, "推送通知")
//            }
//            EntranceUtils.HOST_ANSWER -> {
//                DirectUtils.directToAnswerDetail(context, link.link!!, EntranceUtils.ENTRANCE_UMENG, "推送通知")
//            }
//            EntranceUtils.HOST_WEB -> {
//                DirectUtils.directToWebView(context, link.link!!, EntranceUtils.ENTRANCE_UMENG)
//            }
//            EntranceUtils.HOST_COMMUNITY_ARTICLE -> {
//                DirectUtils.directToCommunityArticle(context, link.link!!, link.community?.id
//                        ?: "", EntranceUtils.ENTRANCE_UMENG, "推送通知")
//            }
//            EntranceUtils.HOST_COMMUNITY_COLUMN -> {
//                DirectUtils.directToCommunityColumn(context, link.community!!, link.link!!, EntranceUtils.ENTRANCE_UMENG, "推送通知")
//            }
//            else -> DirectUtils.directToLinkPage(context, link, EntranceUtils.ENTRANCE_UMENG, "推送通知")
//        }
//    }
//
//    @Keep
//    class ClickEvent(var device_token: String,
//                          var msg_id: String,
//                          var push_id: String)
//
//}