Files
assistant-android/app/src/main/java/com/gh/common/util/PushHelper.kt
2019-05-26 15:14:49 +08:00

47 lines
1.7 KiB
Kotlin

package com.gh.common.util
import android.content.Context
import com.gh.gamecenter.receiver.UmengMessageReceiver
import com.gh.gamecenter.retrofit.BiResponse
import com.gh.gamecenter.retrofit.RetrofitManager
import io.reactivex.schedulers.Schedulers
import okhttp3.MediaType
import okhttp3.RequestBody
import okhttp3.ResponseBody
object PushHelper {
/**
* 提交推送点击事件,会尝试从 SP 读取之前失败的一并提交
*/
@JvmStatic
fun postPushClickAction(context: Context, clickEvent: UmengMessageReceiver.ClickEvent? = null) {
val clickEventList = arrayListOf<UmengMessageReceiver.ClickEvent>()
clickEvent?.let { clickEventList.add(it) }
val failedClickEventList = SPUtils.getString(UmengMessageReceiver.SP_CLICK_EVENT)
.toObject<ArrayList<UmengMessageReceiver.ClickEvent>>()
failedClickEventList?.let { clickEventList.addAll(it) }
// 没有要提交的事件
if (clickEventList.size == 0) return
val body = RequestBody.create(MediaType.parse("application/json"), clickEventList.toJson())
RetrofitManager.getInstance(context)
.api
.postUmengReceiveInfo(body)
.subscribeOn(Schedulers.io())
.subscribe(object : BiResponse<ResponseBody>() {
override fun onSuccess(data: ResponseBody) {
SPUtils.setString(UmengMessageReceiver.SP_CLICK_EVENT, "")
}
override fun onFailure(exception: Exception) {
SPUtils.setString(UmengMessageReceiver.SP_CLICK_EVENT, clickEventList.toJson())
}
})
}
}