Commit 6767642c authored by wanglei's avatar wanglei

...

parent e3fd4a4c
...@@ -4,10 +4,13 @@ import android.content.BroadcastReceiver ...@@ -4,10 +4,13 @@ import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import com.base.scanqr.bean.NotificationSendBean import com.base.scanqr.bean.NotificationSendBean
import com.base.scanqr.bean.NotificationSendBean.Companion.ACTION_ID_SCAN
import com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_FCM import com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_FCM
import com.base.scanqr.fcm.notification.MyNotificationManager import com.base.scanqr.fcm.notification.MyNotificationManager
import com.base.scanqr.helper.EventUtils.event import com.base.scanqr.helper.EventUtils.event
import com.base.scanqr.utils.LogEx import com.base.scanqr.utils.LogEx
import java.util.Calendar
import java.util.TimeZone
class FcmReceiver : BroadcastReceiver() { class FcmReceiver : BroadcastReceiver() {
...@@ -17,6 +20,34 @@ class FcmReceiver : BroadcastReceiver() { ...@@ -17,6 +20,34 @@ class FcmReceiver : BroadcastReceiver() {
event("FCM_Received", "FcmReceiver", null) event("FCM_Received", "FcmReceiver", null)
LogEx.logDebug(TAG, "FCM FcmReceiver") LogEx.logDebug(TAG, "FCM FcmReceiver")
val sendBean = NotificationSendBean(context, POPUP_WHERE_FCM, canSend = { true }, sendSuccess = {}) val sendBean = NotificationSendBean(context, POPUP_WHERE_FCM, canSend = { true }, sendSuccess = {})
if (isWithinTimeRange()) {
val map = hashMapOf<String, Any>()
map["AM"] = "Scan today's product information."
sendBean.valueMap = map
sendBean.actionId = ACTION_ID_SCAN
}
MyNotificationManager.submitSendBean(sendBean) MyNotificationManager.submitSendBean(sendBean)
} }
private fun isWithinTimeRange(): Boolean {
// 获取当前时间的Calendar实例
val now: Calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
// 设置起始时间8:30 AM
val startTime: Calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
startTime.set(Calendar.HOUR_OF_DAY, 8)
startTime.set(Calendar.MINUTE, 30)
startTime.set(Calendar.SECOND, 0)
startTime.set(Calendar.MILLISECOND, 0)
// 设置结束时间10:30 AM
val endTime: Calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
endTime.set(Calendar.HOUR_OF_DAY, 10)
endTime.set(Calendar.MINUTE, 30)
endTime.set(Calendar.SECOND, 0)
endTime.set(Calendar.MILLISECOND, 0)
// 判断当前时间是否在指定时间段内
return now.after(startTime) && now.before(endTime)
}
} }
...@@ -2,6 +2,7 @@ package com.base.scanqr.fcm ...@@ -2,6 +2,7 @@ package com.base.scanqr.fcm
import android.annotation.SuppressLint import android.annotation.SuppressLint
import com.base.scanqr.bean.NotificationSendBean import com.base.scanqr.bean.NotificationSendBean
import com.base.scanqr.bean.NotificationSendBean.Companion.ACTION_ID_SCAN
import com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_FCM import com.base.scanqr.bean.NotificationSendBean.Companion.POPUP_WHERE_FCM
import com.base.scanqr.fcm.notification.MyNotificationManager import com.base.scanqr.fcm.notification.MyNotificationManager
import com.base.scanqr.helper.EventUtils.event import com.base.scanqr.helper.EventUtils.event
...@@ -9,6 +10,8 @@ import com.base.scanqr.utils.LogEx ...@@ -9,6 +10,8 @@ import com.base.scanqr.utils.LogEx
import com.google.firebase.messaging.FirebaseMessagingService import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage import com.google.firebase.messaging.RemoteMessage
import org.json.JSONObject import org.json.JSONObject
import java.util.Calendar
import java.util.TimeZone
@SuppressLint("MissingFirebaseInstanceTokenRefresh") @SuppressLint("MissingFirebaseInstanceTokenRefresh")
class MessagingService : FirebaseMessagingService() { class MessagingService : FirebaseMessagingService() {
...@@ -19,6 +22,36 @@ class MessagingService : FirebaseMessagingService() { ...@@ -19,6 +22,36 @@ class MessagingService : FirebaseMessagingService() {
event("FCM_Received", "MessagingService", data) event("FCM_Received", "MessagingService", data)
LogEx.logDebug(TAG, "FCM MessagingService") LogEx.logDebug(TAG, "FCM MessagingService")
val sendBean = NotificationSendBean(this, POPUP_WHERE_FCM, canSend = { true }, sendSuccess = {}) val sendBean = NotificationSendBean(this, POPUP_WHERE_FCM, canSend = { true }, sendSuccess = {})
if (isWithinTimeRange()) {
val map = hashMapOf<String, Any>()
map["AM"] = "Scan today's product information."
sendBean.valueMap = map
sendBean.actionId = ACTION_ID_SCAN
}
MyNotificationManager.submitSendBean(sendBean) MyNotificationManager.submitSendBean(sendBean)
} }
private fun isWithinTimeRange(): Boolean {
// 获取当前时间的Calendar实例
val now: Calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
// 设置起始时间8:30 AM
val startTime: Calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
startTime.set(Calendar.HOUR_OF_DAY, 8)
startTime.set(Calendar.MINUTE, 30)
startTime.set(Calendar.SECOND, 0)
startTime.set(Calendar.MILLISECOND, 0)
// 设置结束时间10:30 AM
val endTime: Calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
endTime.set(Calendar.HOUR_OF_DAY, 10)
endTime.set(Calendar.MINUTE, 30)
endTime.set(Calendar.SECOND, 0)
endTime.set(Calendar.MILLISECOND, 0)
// 判断当前时间是否在指定时间段内
return now.after(startTime) && now.before(endTime)
}
} }
\ No newline at end of file
...@@ -207,13 +207,13 @@ object MyNotificationManager { ...@@ -207,13 +207,13 @@ object MyNotificationManager {
* 只测某些类型 * 只测某些类型
*/ */
private var testWhere = listOf( private var testWhere = listOf(
POPUP_WHERE_LOCK, // POPUP_WHERE_LOCK,
POPUP_WHERE_BATTERY, // POPUP_WHERE_BATTERY,
POPUP_WHERE_PACKAGE, // POPUP_WHERE_PACKAGE,
POPUP_WHERE_WORK_MANAGER, // POPUP_WHERE_WORK_MANAGER,
POPUP_WHERE_ALARM, // POPUP_WHERE_ALARM,
POPUP_WHERE_TIMER, // POPUP_WHERE_TIMER,
POPUP_WHERE_FILE_JOB, // POPUP_WHERE_FILE_JOB,
POPUP_WHERE_FCM POPUP_WHERE_FCM
) )
} }
\ No newline at end of file
...@@ -32,8 +32,17 @@ object NotificationUiUtil { ...@@ -32,8 +32,17 @@ object NotificationUiUtil {
fun setNotification(sendBean: NotificationSendBean) { fun setNotification(sendBean: NotificationSendBean) {
when (sendBean.actionId) { when (sendBean.actionId) {
ACTION_ID_SCAN -> { ACTION_ID_SCAN -> {
sendBean.bigRemoteViews = RemoteViews(MyApplication.appContext.packageName, R.layout.stay_notification_big_scan) val bigRemoteViews = RemoteViews(MyApplication.appContext.packageName, R.layout.stay_notification_big_scan)
sendBean.smallRemoteViews = RemoteViews(MyApplication.appContext.packageName, R.layout.stay_notification_small_scan) val smallRemoteViews = RemoteViews(MyApplication.appContext.packageName, R.layout.stay_notification_small_scan)
if (sendBean.valueMap.isNotEmpty()) {
val value = sendBean.valueMap["AM"]
val string = (value as String?) ?: "Scan today's product information."
bigRemoteViews.setTextViewText(R.id.tvDesc, string)
smallRemoteViews.setTextViewText(R.id.tvDesc, string)
}
sendBean.bigRemoteViews = bigRemoteViews
sendBean.smallRemoteViews = smallRemoteViews
} }
ACTION_ID_WIFI -> { ACTION_ID_WIFI -> {
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
tools:ignore="UselessParent"> tools:ignore="UselessParent">
<TextView <TextView
android:id="@+id/tvDesc"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
android:id="@+id/tvDesc"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment