Commit 8de786f3 authored by wanglei's avatar wanglei

...

parent 18031b3c
......@@ -136,4 +136,8 @@ dependencies {
implementation("com.reyun.solar.engine.oversea:solar-engine-core:1.2.8.3")
implementation("androidx.core:core-splashscreen:1.0.0-beta02")
//work
implementation("androidx.work:work-runtime-ktx:2.7.1") // 请使用最新版本
}
\ No newline at end of file
......@@ -42,7 +42,7 @@ object FCMManager {
}
}
fun getToken() {
private fun getToken() {
FirebaseMessaging.getInstance().token
.addOnCompleteListener(object : OnCompleteListener<String> {
override fun onComplete(task: Task<String>) {
......
......@@ -21,8 +21,7 @@ public class MessagingService extends FirebaseMessagingService {
LogEx.INSTANCE.logDebug(TAG, "onMessageReceived", false);
EventUtils.INSTANCE.event("FCM_Received", null, null, false);
String action = NotificationUiUtil.INSTANCE.getNextActionId();
NotificationUiUtil.INSTANCE.sendNotificationIfCan(this, action, PopupConstObject.POPUP_WHERE_FCM);
NotificationUiUtil.INSTANCE.sendNotificationIfCan(this, PopupConstObject.POPUP_WHERE_FCM);
}
......
......@@ -128,7 +128,10 @@ object NotificationUiUtil {
var hoverActionId = ""
@SuppressLint("RemoteViewLayout")
fun sendNotificationIfCan(context: Context, actionId: String, where: String = "") {
fun sendNotificationIfCan(context: Context, where: String = "") {
val actionId = getNextActionId()
if (!canSendNotification(where, actionId)) return
//发送通知
......
......@@ -7,6 +7,8 @@ object PopupConstObject {
const val POPUP_WHERE_TIMBER = "Timer"
const val POPUP_WHERE_LOCK = "Lock"
const val POPUP_WHERE_FCM = "fcm"
const val POPUP_WHERE_ALARM = "Alarm"
const val POPUP_WHERE_WORK_MANAGER = "workmanager"
const val POPUP_WHERE_MEDIA_CHANGE = "media_change"
const val POPUP_WHERE_HOVER_HANDLE = "hover_handle"//悬停调用
......@@ -31,7 +33,7 @@ object PopupConstObject {
const val lockS = "lockS"
const val timerS = "timerS"
const val timerDelay = "timerDelay"
const val timerInterval="timerInterval"
const val timerInterval = "timerInterval"
var topic_number = ""
get() {
......
......@@ -52,8 +52,7 @@ public class ScreenStatusReceiver extends BroadcastReceiver {
if (isDeviceInteractive() && !isSecureLockActive()) {
int secureSetting = Integer.parseInt(AppPreferences.getInstance().getString(lockS, "1"));
if (secureSetting == 1) {
String actionId = NotificationUiUtil.INSTANCE.getNextActionId();
NotificationUiUtil.INSTANCE.sendNotificationIfCan(context, actionId, PopupConstObject.POPUP_WHERE_LOCK);
NotificationUiUtil.INSTANCE.sendNotificationIfCan(context, PopupConstObject.POPUP_WHERE_LOCK);
}
}
break;
......
......@@ -38,8 +38,7 @@ public class TimerManager {
!ScreenStatusReceiver.isSecureLockActive() &&
MyApplication.PAUSED_VALUE != 1) {
Log.d("glc", "Scheduled task conditions are met");
String actionId = NotificationUiUtil.INSTANCE.getNextActionId();
NotificationUiUtil.INSTANCE.sendNotificationIfCan(MyApplication.context, actionId, PopupConstObject.POPUP_WHERE_TIMBER);
NotificationUiUtil.INSTANCE.sendNotificationIfCan(MyApplication.context, PopupConstObject.POPUP_WHERE_TIMBER);
}
}
};
......
package com.base.pdfreaderallpdfreader.fcm.alarm
import android.annotation.SuppressLint
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import com.base.pdfreaderallpdfreader.BuildConfig
import com.base.pdfreaderallpdfreader.fcm.NotificationUiUtil.sendNotificationIfCan
import com.base.pdfreaderallpdfreader.fcm.PopupConstObject
import com.base.pdfreaderallpdfreader.helper.EventUtils
import com.base.pdfreaderallpdfreader.utils.AppPreferences
import com.base.pdfreaderallpdfreader.utils.LogEx
class AlarmJobReceiver : BroadcastReceiver() {
private val TAG = "AlarmJobReceiver"
@SuppressLint("UnsafeProtectedBroadcastReceiver")
override fun onReceive(context: Context, intent: Intent?) {
LogEx.logDebug(TAG, "AlarmJobReceiver onReceive")
EventUtils.event("alarm_push")
var firstAlemtime = AppPreferences.getInstance().getLong("firstAlemtime", 0L)
if (BuildConfig.DEBUG) {
firstAlemtime = 1
}
if (firstAlemtime > 0) {
val leatTime = System.currentTimeMillis()
if (leatTime - firstAlemtime >= 1000 * 30 * 60) {
sendNotificationIfCan(context, PopupConstObject.POPUP_WHERE_ALARM)
}
}
AppPreferences.getInstance().put("firstAlemtime", System.currentTimeMillis())
return
}
}
\ No newline at end of file
package com.base.pdfreaderallpdfreader.fcm.alarm
import android.app.AlarmManager
import android.app.PendingIntent
import android.app.job.JobService
import android.content.Context
import android.content.Intent
import com.base.pdfreaderallpdfreader.BuildConfig
import com.base.pdfreaderallpdfreader.fcm.work.RepeatingWorker.Companion.schedulePeriodicWork
import com.base.pdfreaderallpdfreader.service.StayJobService.Companion.startJob
import java.util.Calendar
object AlarmUtils {
fun startAlarm(context: Context) {
context.startJob()
//闹钟定时任务
val alarmManager = context.getSystemService(JobService.ALARM_SERVICE) as AlarmManager
val pendingIntent = PendingIntent.getBroadcast(
context, 1, Intent(context, AlarmJobReceiver::class.java),
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
)
val calendar = Calendar.getInstance()
calendar.set(Calendar.HOUR_OF_DAY, 6)
calendar.set(Calendar.MINUTE, 0)
calendar.set(Calendar.SECOND, 0)
var delay = 1800000L
if (BuildConfig.DEBUG) {
delay = 1 * 60 * 1000L
}
alarmManager.setRepeating(
AlarmManager.RTC_WAKEUP, calendar.timeInMillis, delay, pendingIntent
)
schedulePeriodicWork(context)
}
}
\ No newline at end of file
package com.base.pdfreaderallpdfreader.fcm.work
import android.content.Context
import androidx.work.Constraints
import androidx.work.ExistingPeriodicWorkPolicy
import androidx.work.NetworkType
import androidx.work.PeriodicWorkRequestBuilder
import androidx.work.WorkManager
import androidx.work.Worker
import androidx.work.WorkerParameters
import com.base.pdfreaderallpdfreader.fcm.NotificationUiUtil.sendNotificationIfCan
import com.base.pdfreaderallpdfreader.fcm.PopupConstObject
import com.base.pdfreaderallpdfreader.helper.EventUtils
import java.util.concurrent.TimeUnit
class RepeatingWorker(val appContext: Context, workerParams: WorkerParameters) : Worker(appContext, workerParams) {
override fun doWork(): Result {
// 这里执行你的任务
// 例如,更新UI,发送网络请求等
EventUtils.event("workmanager_live")
try {
sendNotificationIfCan(appContext, PopupConstObject.POPUP_WHERE_WORK_MANAGER);
} catch (e: Exception) {
EventUtils.event("WorkManager Error")
}
return Result.success()
}
companion object {
const val TAG = "uniqueWorkName"
fun schedulePeriodicWork(context: Context) {
WorkManager.getInstance(context).cancelAllWorkByTag(TAG)
val request = PeriodicWorkRequestBuilder<RepeatingWorker>(15, TimeUnit.MINUTES)
.setConstraints(
Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()
)
.build()
WorkManager.getInstance(context).enqueueUniquePeriodicWork(
TAG, ExistingPeriodicWorkPolicy.KEEP, request
)
}
}
}
\ No newline at end of file
......@@ -8,6 +8,7 @@ import android.text.TextUtils
import com.base.pdfreaderallpdfreader.BuildConfig
import com.base.pdfreaderallpdfreader.fcm.FCMManager
import com.base.pdfreaderallpdfreader.fcm.ScreenStatusReceiver
import com.base.pdfreaderallpdfreader.fcm.alarm.AlarmUtils.startAlarm
import com.base.pdfreaderallpdfreader.helper.WeatherUtils.requestWeatherData
import com.base.pdfreaderallpdfreader.service.StayJobService.Companion.startJob
import com.base.pdfreaderallpdfreader.ui.splash.MyStartActivity
......@@ -90,6 +91,7 @@ class MyApplication : Application() {
initLifeListener()
ScreenStatusReceiver.setupScreenStatusListener(this)
startJob()
startAlarm(context)
}
fun initSolarEngine(gdprDeny: Boolean = false) {
......
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