Commit 93159c51 authored by wanglei's avatar wanglei

...推送跳转

parent 27f33447
......@@ -10,11 +10,28 @@ import android.text.style.UnderlineSpan
import android.view.View
import androidx.lifecycle.lifecycleScope
import com.base.datarecovery.MyApplication
import com.base.datarecovery.activity.junkclean.ScanJunkActivity
import com.base.datarecovery.activity.privacyspace.PrivacyPinOneActivity
import com.base.datarecovery.activity.privacyspace.PrivacySpaceActivity
import com.base.datarecovery.activity.recovery.FileScanResultActivity
import com.base.datarecovery.activity.repeat.RepeatActivity
import com.base.datarecovery.activity.screenshot.ScreenShotActivity
import com.base.datarecovery.ads.AdmobInterstitialUtils
import com.base.datarecovery.ads.AdmobNativeUtils
import com.base.datarecovery.ads.AdmobOpenUtils
import com.base.datarecovery.bean.ConstObject
import com.base.datarecovery.bean.ConstObject.ID_JUNK_CLEAN_PUSH
import com.base.datarecovery.bean.ConstObject.ID_PRIVACY_SPACE
import com.base.datarecovery.bean.ConstObject.ID_RECOVERY_DOCUMENTS
import com.base.datarecovery.bean.ConstObject.ID_RECOVERY_PHOTOS
import com.base.datarecovery.bean.ConstObject.ID_RECOVERY_VIDEOS
import com.base.datarecovery.bean.ConstObject.ID_SCREENSHOT_CLEAN
import com.base.datarecovery.bean.ConstObject.ID_SIMILAR_IMAGE
import com.base.datarecovery.bean.ConstObject.ifAgreePrivacy
import com.base.datarecovery.bean.ConstObject.privacyPinPassword
import com.base.datarecovery.databinding.ActivitySplashBinding
import com.base.datarecovery.fcm.CloseNotificationReceiver
import com.base.datarecovery.fcm.CloseNotificationReceiver.Companion.NotificationId
import com.base.datarecovery.fcm.NotificationUtil
import com.base.datarecovery.help.BaseActivity
import com.base.datarecovery.help.ConfigHelper
......@@ -38,6 +55,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
private val progress = MutableSharedFlow<Int>()
private val progressFlow: SharedFlow<Int> = progress
private var oneClickStart: Boolean = false
private var actionId = -1
override val binding: ActivitySplashBinding by lazy {
......@@ -50,13 +68,16 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
startStayNotification()
NotificationUtil.stopNotificationHandler()
actionId = intent?.extras?.getInt("actionId") ?: -1
closeNotification()
AdmobNativeUtils.loadNativeAd()
AdmobOpenUtils.loadAppOpenAd {
LogEx.logDebug(TAG, "load where=$it")
}
AdmobInterstitialUtils.loadInterstitialAd(this)
jumpNext()
progressCollect()
if (ifAgreePrivacy) {
job = startProgress()
......@@ -87,16 +108,75 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
}
private fun jumpNext() {
private fun progressCollect() {
lifecycleScope.launch {
progressFlow.collectLatest {
if (it >= 100) {
job?.cancel()
jumpNext()
}
}
}
}
private fun jumpNext() {
when (actionId) {
ID_JUNK_CLEAN_PUSH -> {
startActivity(Intent(this, ScanJunkActivity::class.java))
}
ID_SIMILAR_IMAGE -> {
startActivity(Intent(this, RepeatActivity::class.java))
}
ID_SCREENSHOT_CLEAN -> {
startActivity(Intent(this, ScreenShotActivity::class.java))
}
ID_RECOVERY_PHOTOS -> {
startActivity(Intent(this, FileScanResultActivity::class.java).apply {
putExtra("ScanType", ConstObject.SCAN_PHOTOS)
})
}
ID_RECOVERY_VIDEOS -> {
startActivity(Intent(this, FileScanResultActivity::class.java).apply {
putExtra("ScanType", ConstObject.SCAN_VIDEOS)
})
}
ID_RECOVERY_DOCUMENTS -> {
startActivity(Intent(this, FileScanResultActivity::class.java).apply {
putExtra("ScanType", ConstObject.SCAN_DOCUMENTS)
})
}
ID_PRIVACY_SPACE -> {
if (privacyPinPassword.isNotEmpty()) {
startActivity(Intent(this, PrivacyPinOneActivity::class.java))
} else {
startActivity(Intent(this, PrivacySpaceActivity::class.java).apply {
})
}
}
else -> {
val isHotLaunch = intent?.extras?.getBoolean("isHotLaunch", false) ?: false
if (!isHotLaunch) {
startActivity(Intent(this@SplashActivity, MainActivity::class.java))
finish()
}
}
}
finish()
}
private fun closeNotification() {
sendBroadcast(Intent(this, CloseNotificationReceiver::class.java).apply {
this.action = CloseNotificationReceiver.Action
this.putExtra(NotificationId, actionId)
})
}
override fun initListener() {
......@@ -114,7 +194,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
}
}
var processTime = 0L
private var processTime = 0L
private fun startProgress() = lifecycleScope.launch {
while (isActive) {
......
......@@ -4,13 +4,13 @@ import com.base.datarecovery.utils.AppPreferences
object ConstObject {
const val ID_JUNK_CLEAN_PUSH = 11001 //清理垃圾
const val ID_SIMILAR_IMAGE = 11015//清理相似图片
const val ID_SCREENSHOT_CLEAN = 12000//截图清理
const val ID_RECOVERY_PHOTOS = 0
const val ID_RECOVERY_VIDEOS = 0
const val ID_RECOVERY_DOCUMENTS = 0
const val ID_PRIVACY_SPACE = 0
const val ID_JUNK_CLEAN_PUSH = 11001
const val ID_SIMILAR_IMAGE = 11015
const val ID_SCREENSHOT_CLEAN = 12000
const val ID_RECOVERY_PHOTOS = 13000
const val ID_RECOVERY_VIDEOS = 13001
const val ID_RECOVERY_DOCUMENTS = 13002
const val ID_PRIVACY_SPACE = 13003
const val RECOVERY_PHOTOS = "Recovery Photos"
const val RECOVERY_VIDEOS = "Recovery Videos"
......
......@@ -20,7 +20,7 @@ class CloseNotificationReceiver : BroadcastReceiver() {
LogEx.logDebug(TAG, "onReceive")
val action = intent?.action ?: ""
NotificationUtil.stopNotificationHandler()
if (action == "CANCEL_NOTIFICATION") {
if (action == Action) {
var notificationId = intent?.extras?.getInt(NotificationId, 0) ?: 0
LogEx.logDebug(TAG, "notificationId=$notificationId")
val notificationManager = context!!.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
......
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