diff --git a/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt b/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt index ff4ba03..ceaff79 100644 --- a/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt +++ b/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt @@ -1,5 +1,6 @@ package com.gamedog.vididin.core.login.login +import com.ama.core.architecture.BaseApp import com.ama.core.architecture.util.AndroidUtil import com.ama.core.architecture.util.DateUtil import com.ama.core.architecture.util.DeviceUtil @@ -14,6 +15,8 @@ import com.gamedog.vididin.beans.RECORD_GOLD_MINUS_CONVERT_2_CASH import com.gamedog.vididin.beans.RecordCash import com.gamedog.vididin.beans.RecordGold import com.gamedog.vididin.manager.RecordsManager +import com.remax.notification.controller.NotificationTriggerController +import com.remax.notification.service.NotificationKeepAliveService object AccountManager { @@ -64,9 +67,14 @@ object AccountManager { saveAccountInfo() NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Gold_Changed, null) RecordsManager.instance().appendGoldRecord(recordBean) + updateResidentNotification() return true } + private fun updateResidentNotification() { + NotificationKeepAliveService.updateNotification(BaseApp.appContext()) + } + fun getCash(): Double { return mAccount.cashCount @@ -83,6 +91,7 @@ object AccountManager { recordBean?.let { RecordsManager.instance().appendCashRecord(recordBean) } + updateResidentNotification() return true } diff --git a/notification/src/main/java/com/remax/notification/controller/NotificationTriggerController.kt b/notification/src/main/java/com/remax/notification/controller/NotificationTriggerController.kt index 9117840..391e4fd 100644 --- a/notification/src/main/java/com/remax/notification/controller/NotificationTriggerController.kt +++ b/notification/src/main/java/com/remax/notification/controller/NotificationTriggerController.kt @@ -13,6 +13,7 @@ import android.os.Looper import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.core.content.ContextCompat +import com.ama.core.architecture.BaseApp import com.ama.core.architecture.util.DateUtil import com.ama.core.architecture.util.permission.PermissionUtil import com.remax.base.ext.canSendNotification @@ -29,6 +30,7 @@ import com.remax.notification.config.NotificationConfigController import com.remax.notification.newUtil.NotificationRecorder import com.remax.notification.newUtil.NotificationUtil import com.remax.notification.receiver.NotificationDeleteReceiver +import com.remax.notification.service.NotificationKeepAliveService import com.remax.notification.timing.NotificationTimingController import com.remax.notification.utils.NotiLogger import com.remax.notification.utils.TimeCheckUtil @@ -278,6 +280,11 @@ object NotificationTriggerController { NotiLogger.d("固定时间节点通知,第${repeatCount + 1}次") } + if (TimeCheckUtil.isDifferentHour()) { + // 更新常驻通知,主要是宝箱任务hour + NotificationKeepAliveService.updateNotification(BaseApp.appContext()) + } + mFixTimeHandler?.postDelayed(this, 1000) } } diff --git a/notification/src/main/java/com/remax/notification/utils/TimeCheckUtil.kt b/notification/src/main/java/com/remax/notification/utils/TimeCheckUtil.kt index 70c905e..310e25e 100644 --- a/notification/src/main/java/com/remax/notification/utils/TimeCheckUtil.kt +++ b/notification/src/main/java/com/remax/notification/utils/TimeCheckUtil.kt @@ -7,6 +7,7 @@ import kotlin.math.abs object TimeCheckUtil { + private var mCurrentHour = 0 private val TARGET_TIMES = arrayOf( intArrayOf(9, 10), @@ -33,6 +34,18 @@ object TimeCheckUtil { return false } + fun isDifferentHour(): Boolean { + val calendar = Calendar.getInstance() + val currentHour = calendar.get(Calendar.HOUR_OF_DAY) + + if (currentHour != mCurrentHour) { + mCurrentHour = currentHour + return true + } + + return false + } + fun isTargetTimeWithTolerance(tolerance: Int): Boolean { val calendar = Calendar.getInstance()