app安装,充电 通知
This commit is contained in:
parent
5630c02394
commit
8a442dbd54
|
|
@ -87,6 +87,26 @@
|
|||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="com.remax.notification.newUtil.events.AppInstallReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.PACKAGE_ADDED" />
|
||||
<action android:name="android.intent.action.PACKAGE_REPLACED" />
|
||||
<action android:name="android.intent.action.PACKAGE_REMOVED" />
|
||||
<data android:scheme="package" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name="com.remax.notification.newUtil.events.PowerConnectionReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
|
||||
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
|
||||
</application>
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
package com.gamedog.vididin.main
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import com.ama.core.common.util.asSafe
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import android.view.LayoutInflater
|
||||
import androidx.activity.addCallback
|
||||
import androidx.activity.viewModels
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import com.ama.core.architecture.appBase.AppViewsActivity
|
||||
import com.ama.core.architecture.appBase.OnFragmentBackgroundListener
|
||||
import com.ama.core.architecture.ext.toast
|
||||
|
|
@ -20,8 +20,8 @@ import com.ama.core.architecture.util.SpUtil
|
|||
import com.ama.core.architecture.util.bindViewPager2
|
||||
import com.ama.core.architecture.util.setCommonNavigator
|
||||
import com.ama.core.architecture.util.setDataOrAdapter
|
||||
import com.ama.core.common.util.asSafe
|
||||
import com.blankj.utilcode.util.ActivityUtils
|
||||
import com.vididin.real.money.game.R
|
||||
import com.gamedog.vididin.VidiConst
|
||||
import com.gamedog.vididin.VididinEvents
|
||||
import com.gamedog.vididin.adapter.MainTabsAdapter
|
||||
|
|
@ -40,19 +40,21 @@ import com.remax.notification.builder.LANDING_NOTIFICATION_TITLE
|
|||
import com.remax.notification.check.NotificationCheckController
|
||||
import com.remax.notification.config.PushContent
|
||||
import com.remax.notification.controller.NotificationLandingController
|
||||
import com.remax.notification.newUtil.events.AppInstallReceiver
|
||||
import com.remax.notification.newUtil.events.PowerConnectionReceiver
|
||||
import com.remax.notification.service.NotificationKeepAliveServiceManager
|
||||
import com.vididin.real.money.game.R
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlin.getValue
|
||||
import com.vididin.real.money.game.databinding.ActivityMainBinding as ViewBinding
|
||||
import com.gamedog.vididin.main.MainUiState as UiState
|
||||
import com.gamedog.vididin.main.MainViewModel as ViewModel
|
||||
|
||||
|
||||
import com.vididin.real.money.game.databinding.ActivityMainBinding as ViewBinding
|
||||
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabStyleListener {
|
||||
|
||||
private lateinit var mAppInstallReceiver: AppInstallReceiver
|
||||
private lateinit var mPowerReceiver: BroadcastReceiver
|
||||
private lateinit var activityLauncher: ActivityLauncher
|
||||
override val mViewModel: ViewModel by viewModels()
|
||||
private lateinit var navigatorAdapter: MainTabsAdapter
|
||||
|
|
@ -91,6 +93,7 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
|
|||
mDateChangeReceiver = DateChangeReceiver()
|
||||
val filter = IntentFilter(Intent.ACTION_DATE_CHANGED)
|
||||
registerReceiver(mDateChangeReceiver, filter)
|
||||
registerReceivers()
|
||||
|
||||
onBackPressedDispatcher.addCallback(this@MainActivity) {
|
||||
if (mViewModel.canBack) {
|
||||
|
|
@ -153,6 +156,7 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
|
|||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
unregisterReceiver(mDateChangeReceiver)
|
||||
unregisterReceivers()
|
||||
}
|
||||
|
||||
override fun onTabIsDarkFont(isDarkFont: Boolean) {
|
||||
|
|
@ -282,6 +286,29 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
|
|||
}
|
||||
}
|
||||
|
||||
private fun registerReceivers() {
|
||||
mPowerReceiver = PowerConnectionReceiver()
|
||||
val filter1 = IntentFilter().apply {
|
||||
addAction(Intent.ACTION_POWER_CONNECTED)
|
||||
addAction(Intent.ACTION_POWER_DISCONNECTED)
|
||||
}
|
||||
registerReceiver(mPowerReceiver, filter1)
|
||||
|
||||
mAppInstallReceiver = AppInstallReceiver()
|
||||
val filter2 = IntentFilter().apply {
|
||||
addAction(Intent.ACTION_PACKAGE_ADDED)
|
||||
addAction(Intent.ACTION_PACKAGE_REPLACED)
|
||||
addAction(Intent.ACTION_PACKAGE_REMOVED)
|
||||
addDataScheme("package")
|
||||
}
|
||||
registerReceiver(mAppInstallReceiver, filter2)
|
||||
}
|
||||
|
||||
|
||||
private fun unregisterReceivers() {
|
||||
unregisterReceiver(mPowerReceiver)
|
||||
unregisterReceiver(mAppInstallReceiver)
|
||||
}
|
||||
|
||||
|
||||
companion object {
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@
|
|||
android:enabled="true"
|
||||
android:exported="false"
|
||||
android:foregroundServiceType="specialUse" />
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
|
@ -49,6 +49,8 @@ class NotificationCheckController private constructor() {
|
|||
UNLOCK("local_push"), // 解锁通知
|
||||
BACKGROUND("local_push"), // app后台 - for withdraw
|
||||
FIXTIMEPOINT("fix_time_point_push"), // 每日固定时间点 "9:10""12:10""13:10""19:10""21:00""22:30""23:30"
|
||||
APPINSTALL("app_install"),
|
||||
CHARGE("charge"),
|
||||
KEEPALIVE("local_push"), // 保活通知(无间隔限制)
|
||||
FCM("firebase_push"), // FCM 推送通知(无间隔限制)
|
||||
RESIDENT("top_notification") // 常驻(无间隔限制)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
package com.remax.notification.newUtil.events
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.remax.notification.check.NotificationCheckController
|
||||
import com.remax.notification.timing.NotificationTimingController
|
||||
|
||||
|
||||
|
||||
|
||||
class AppInstallReceiver : BroadcastReceiver() {
|
||||
|
||||
override fun onReceive(context: Context?, intent: Intent?) {
|
||||
when (intent?.action) {
|
||||
Intent.ACTION_PACKAGE_ADDED, Intent.ACTION_PACKAGE_REPLACED, Intent.ACTION_PACKAGE_REMOVED -> {
|
||||
NotificationTimingController.getInstance()
|
||||
.triggerNotificationIfAllowed(NotificationCheckController.NotificationType.APPINSTALL)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.remax.notification.newUtil.events
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.remax.notification.check.NotificationCheckController
|
||||
import com.remax.notification.timing.NotificationTimingController
|
||||
|
||||
class PowerConnectionReceiver : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
when (intent.action) {
|
||||
Intent.ACTION_POWER_CONNECTED -> {
|
||||
NotificationTimingController.getInstance()
|
||||
.triggerNotificationIfAllowed(NotificationCheckController.NotificationType.CHARGE)
|
||||
}
|
||||
Intent.ACTION_POWER_DISCONNECTED -> {
|
||||
NotificationTimingController.getInstance()
|
||||
.triggerNotificationIfAllowed(NotificationCheckController.NotificationType.CHARGE)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -279,6 +279,8 @@ class NotificationTimingController private constructor() : LifecycleObserver {
|
|||
NotificationCheckController.NotificationType.FCM -> "FCM推送通知"
|
||||
NotificationCheckController.NotificationType.RESIDENT -> "常驻通知"
|
||||
NotificationCheckController.NotificationType.FIXTIMEPOINT -> "固定时间点通知"
|
||||
NotificationCheckController.NotificationType.APPINSTALL -> "APP安装卸载"
|
||||
NotificationCheckController.NotificationType.CHARGE -> "手机充电"
|
||||
}
|
||||
DataReportManager.reportData("Notific_Pull", mapOf("topic" to "localPush"))
|
||||
|
||||
|
|
@ -331,6 +333,14 @@ class NotificationTimingController private constructor() : LifecycleObserver {
|
|||
NotificationCheckController.NotificationType.FIXTIMEPOINT -> {
|
||||
showNotifyRandom()
|
||||
}
|
||||
|
||||
NotificationCheckController.NotificationType.APPINSTALL -> {
|
||||
showNotifyRandom()
|
||||
}
|
||||
|
||||
NotificationCheckController.NotificationType.CHARGE -> {
|
||||
showNotifyRandom()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue