Commit f4628fa3 authored by wanglei's avatar wanglei

...

parent 4a5242fb
package com.base.filerecoveryrecyclebin.activity
import android.annotation.SuppressLint
import android.content.Intent
import android.graphics.Color
import android.net.Uri
import android.text.SpannableString
import android.text.Spanned
import android.text.style.UnderlineSpan
import android.view.View
import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.MyApplication
import com.base.filerecoveryrecyclebin.activity.appmanager.AppManagerAnimationActivity
import com.base.filerecoveryrecyclebin.activity.appprocess.AppProcessAnimationActivity
import com.base.filerecoveryrecyclebin.activity.battery.BatteryInfoAnimationActivity
import com.base.filerecoveryrecyclebin.activity.guide.GuideActivity
import com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
import com.base.filerecoveryrecyclebin.activity.photomanager.PhotoManagerAnimationActivity
import com.base.filerecoveryrecyclebin.activity.recovery.FileScanResultActivity
import com.base.filerecoveryrecyclebin.activity.repeat.RepeatActivity
import com.base.filerecoveryrecyclebin.activity.whatsapp.WhatsAppCleanerAnimationActivity
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.bean.ConstObject
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_APP_MANAGER
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_APP_PROCESS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_BATTERY_INFO
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_JUNK_CLEAN_PUSH
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_DOCUMENTS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_PHOTOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_VIDEOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_SCREENSHOT_CLEAN
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_SIMILAR_IMAGE
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_WHATSAPP
import com.base.filerecoveryrecyclebin.bean.ConstObject.ifAgreePrivacy
import com.base.filerecoveryrecyclebin.bean.ConstObject.isGuide
import com.base.filerecoveryrecyclebin.databinding.ActivitySplashBinding
import com.base.filerecoveryrecyclebin.fcm.CloseNotificationReceiver
import com.base.filerecoveryrecyclebin.fcm.CloseNotificationReceiver.Companion.NotificationId
import com.base.filerecoveryrecyclebin.fcm.NotificationUtil
import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.ConfigHelper
import com.base.filerecoveryrecyclebin.service.StayNotificationService.Companion.startStayNotification
import com.base.filerecoveryrecyclebin.utils.AppPreferences
import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.LogEx
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancel
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.SharedFlow
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch
import kotlin.random.Random
@SuppressLint("CustomSplashScreen")
class SplashActivity : BaseActivity<ActivitySplashBinding>() {
private val TAG = "SplashActivity"
private var job: Job? = null
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 {
ActivitySplashBinding.inflate(layoutInflater)
}
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
// if (MyApplication.isInterOpenShowing) {
// finish()
//package com.base.filerecoveryrecyclebin.activity
//
//import android.annotation.SuppressLint
//import android.content.Intent
//import android.graphics.Color
//import android.net.Uri
//import android.text.SpannableString
//import android.text.Spanned
//import android.text.style.UnderlineSpan
//import android.view.View
//import androidx.lifecycle.lifecycleScope
//import com.base.filerecoveryrecyclebin.MyApplication
//import com.base.filerecoveryrecyclebin.activity.appmanager.AppManagerAnimationActivity
//import com.base.filerecoveryrecyclebin.activity.appprocess.AppProcessAnimationActivity
//import com.base.filerecoveryrecyclebin.activity.battery.BatteryInfoAnimationActivity
//import com.base.filerecoveryrecyclebin.activity.guide.GuideActivity
//import com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
//import com.base.filerecoveryrecyclebin.activity.photomanager.PhotoManagerAnimationActivity
//import com.base.filerecoveryrecyclebin.activity.recovery.FileScanResultActivity
//import com.base.filerecoveryrecyclebin.activity.repeat.RepeatActivity
//import com.base.filerecoveryrecyclebin.activity.whatsapp.WhatsAppCleanerAnimationActivity
//import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
//import com.base.filerecoveryrecyclebin.bean.ConstObject
//import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_APP_MANAGER
//import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_APP_PROCESS
//import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_BATTERY_INFO
//import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_JUNK_CLEAN_PUSH
//import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_DOCUMENTS
//import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_PHOTOS
//import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_VIDEOS
//import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_SCREENSHOT_CLEAN
//import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_SIMILAR_IMAGE
//import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_WHATSAPP
//import com.base.filerecoveryrecyclebin.bean.ConstObject.ifAgreePrivacy
//import com.base.filerecoveryrecyclebin.bean.ConstObject.isGuide
//import com.base.filerecoveryrecyclebin.databinding.ActivitySplashBinding
//import com.base.filerecoveryrecyclebin.fcm.CloseNotificationReceiver
//import com.base.filerecoveryrecyclebin.fcm.CloseNotificationReceiver.Companion.NotificationId
//import com.base.filerecoveryrecyclebin.fcm.NotificationUtil
//import com.base.filerecoveryrecyclebin.help.BaseActivity
//import com.base.filerecoveryrecyclebin.help.ConfigHelper
//import com.base.filerecoveryrecyclebin.service.StayNotificationService.Companion.startStayNotification
//import com.base.filerecoveryrecyclebin.utils.AppPreferences
//import com.base.filerecoveryrecyclebin.utils.BarUtils
//import com.base.filerecoveryrecyclebin.utils.LogEx
//import kotlinx.coroutines.Job
//import kotlinx.coroutines.cancel
//import kotlinx.coroutines.delay
//import kotlinx.coroutines.flow.MutableSharedFlow
//import kotlinx.coroutines.flow.SharedFlow
//import kotlinx.coroutines.flow.collectLatest
//import kotlinx.coroutines.isActive
//import kotlinx.coroutines.launch
//import kotlin.random.Random
//
//@SuppressLint("CustomSplashScreen")
//class SplashActivity : BaseActivity<ActivitySplashBinding>() {
//
// private val TAG = "SplashActivity"
// private var job: Job? = null
// 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 {
// ActivitySplashBinding.inflate(layoutInflater)
// }
//
// override fun initView() {
// BarUtils.setStatusBarLightMode(this, true)
// BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
//
//// if (MyApplication.isInterOpenShowing) {
//// finish()
//// return
//// }
//
// startStayNotification()
// NotificationUtil.stopNotificationHandler()
//
// actionId = intent?.extras?.getInt("actionId") ?: -1
// closeNotification()
//
// progressCollect()
//
// if (ifAgreePrivacy) {
// AdmobMaxHelper.preloadAd(this)
// job = startProgress()
// binding.llStart.visibility = View.GONE
// binding.llProgress.visibility = View.VISIBLE
// } else {
// binding.llStart.visibility = View.VISIBLE
// binding.llProgress.visibility = View.GONE
// }
//
// val spannableString = SpannableString("Privacy Policy")
// spannableString.setSpan(
// UnderlineSpan(),
// 0,
// spannableString.length,
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
// )
// binding.idTvPrivacyPolicy.text = spannableString
//
// binding.idTvPrivacyPolicy.setOnClickListener {
// val intent = Intent(
// Intent.ACTION_VIEW,
// Uri.parse(ConfigHelper.privacyPolicy)
// )
// startActivity(intent)
// }
// }
//
// private fun progressCollect() {
// lifecycleScope.launch {
// progressFlow.collectLatest {
// if (it >= 100) {
// job?.cancel()
// jumpNext()
// this.cancel()
// }
// }
// }
// }
//
// var jumped: Boolean = false
// private fun jumpNext() {
//
// if (jumped) {
// return
// }
startStayNotification()
NotificationUtil.stopNotificationHandler()
actionId = intent?.extras?.getInt("actionId") ?: -1
closeNotification()
progressCollect()
if (ifAgreePrivacy) {
AdmobMaxHelper.preloadAd(this)
job = startProgress()
binding.llStart.visibility = View.GONE
binding.llProgress.visibility = View.VISIBLE
} else {
binding.llStart.visibility = View.VISIBLE
binding.llProgress.visibility = View.GONE
}
val spannableString = SpannableString("Privacy Policy")
spannableString.setSpan(
UnderlineSpan(),
0,
spannableString.length,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
)
binding.idTvPrivacyPolicy.text = spannableString
binding.idTvPrivacyPolicy.setOnClickListener {
val intent = Intent(
Intent.ACTION_VIEW,
Uri.parse(ConfigHelper.privacyPolicy)
)
startActivity(intent)
}
}
private fun progressCollect() {
lifecycleScope.launch {
progressFlow.collectLatest {
if (it >= 100) {
job?.cancel()
jumpNext()
this.cancel()
}
}
}
}
var jumped: Boolean = false
private fun jumpNext() {
if (jumped) {
return
}
jumped = true
LogEx.logDebug(TAG, "jumpNext actionId=$actionId")
when (actionId) {
ID_JUNK_CLEAN_PUSH -> {
startActivity(Intent(this, ScanJunkActivity::class.java))
}
ID_SIMILAR_IMAGE -> {
startActivity(Intent(this, PhotoManagerAnimationActivity::class.java))
}
ID_SCREENSHOT_CLEAN -> {
startActivity(Intent(this, PhotoManagerAnimationActivity::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_WHATSAPP -> {
startActivity(Intent(this, WhatsAppCleanerAnimationActivity::class.java))
}
ID_APP_PROCESS -> {
startActivity(Intent(this, AppProcessAnimationActivity::class.java))
}
ID_APP_MANAGER -> {
startActivity(Intent(this, AppManagerAnimationActivity::class.java))
}
ID_BATTERY_INFO -> {
startActivity(Intent(this, BatteryInfoAnimationActivity::class.java))
}
else -> {
val isHotLaunch = intent?.extras?.getBoolean("isHotLaunch", false) ?: false
if (!isHotLaunch) {
startActivity(Intent(this@SplashActivity, MainActivity::class.java))
if (!isGuide) {
startActivity(Intent(this@SplashActivity, GuideActivity::class.java))
isGuide = true
} else {
startActivity(Intent(this@SplashActivity, MainActivity::class.java))
}
}
}
}
finish()
intent?.extras?.clear()
}
private fun closeNotification() {
sendBroadcast(Intent(this, CloseNotificationReceiver::class.java).apply {
this.action = CloseNotificationReceiver.Action
this.putExtra(NotificationId, actionId)
})
}
override fun initListener() {
binding.idTvStart.setOnClickListener {
if (oneClickStart) {
return@setOnClickListener
}
oneClickStart = true
ifAgreePrivacy = true
(application as MyApplication).initApp(true)
AdmobMaxHelper.preloadAd(this)
binding.llStart.visibility = View.GONE
binding.llProgress.visibility = View.VISIBLE
job = startProgress()
}
}
private var processTime = 0L
private var outTimeAdStart = false
private fun startProgress() = lifecycleScope.launch {
LogEx.logDebug(TAG, "startProgress")
while (isActive) {
val value = binding.pb.progress + 2
binding.pb.setProgress(value, true)
progress.emit(value)
val delayTime = 300L
delay(delayTime)
processTime += delayTime
if (processTime >= Random.nextLong(2500, 3000)) {
if (!outTimeAdStart) {
outTimeAdStart = true
outTimeAd()
}
}
}
}
private fun outTimeAd() {
LogEx.logDebug(TAG, "outTimeAd")
var loaded: Boolean = true
AdmobMaxHelper.admobMaxShowOpenAd(this, showBeforeAction = { flag ->
LogEx.logDebug(TAG, "showBeforeAction flag=$flag")
loaded = flag
job?.cancel()
}, onHidden = {
val sp = AppPreferences.getInstance().getString("splashShowInter", "0").toInt()
if (sp == 1 && !loaded) {
AdmobMaxHelper.admobMaxShowInterstitialAd(this, isLoading = false) {
binding.pb.progress = 100
jumpNext()
}
} else {
binding.pb.progress = 100
jumpNext()
}
})
}
override fun onResume() {
super.onResume()
LogEx.logDebug(TAG, "onResume")
if (ifAgreePrivacy && job?.isActive == false) {
job = startProgress()
}
}
override fun onPause() {
super.onPause()
job?.cancel()
LogEx.logDebug(TAG, "onPause")
}
}
\ No newline at end of file
// jumped = true
// LogEx.logDebug(TAG, "jumpNext actionId=$actionId")
//
// when (actionId) {
// ID_JUNK_CLEAN_PUSH -> {
// startActivity(Intent(this, ScanJunkActivity::class.java))
// }
//
// ID_SIMILAR_IMAGE -> {
// startActivity(Intent(this, PhotoManagerAnimationActivity::class.java))
// }
//
// ID_SCREENSHOT_CLEAN -> {
// startActivity(Intent(this, PhotoManagerAnimationActivity::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_WHATSAPP -> {
// startActivity(Intent(this, WhatsAppCleanerAnimationActivity::class.java))
// }
//
// ID_APP_PROCESS -> {
// startActivity(Intent(this, AppProcessAnimationActivity::class.java))
// }
//
// ID_APP_MANAGER -> {
// startActivity(Intent(this, AppManagerAnimationActivity::class.java))
// }
//
// ID_BATTERY_INFO -> {
// startActivity(Intent(this, BatteryInfoAnimationActivity::class.java))
// }
//
//
// else -> {
// val isHotLaunch = intent?.extras?.getBoolean("isHotLaunch", false) ?: false
// if (!isHotLaunch) {
// startActivity(Intent(this@SplashActivity, MainActivity::class.java))
// if (!isGuide) {
// startActivity(Intent(this@SplashActivity, GuideActivity::class.java))
// isGuide = true
// } else {
// startActivity(Intent(this@SplashActivity, MainActivity::class.java))
// }
// }
// }
// }
// finish()
// intent?.extras?.clear()
// }
//
// private fun closeNotification() {
// sendBroadcast(Intent(this, CloseNotificationReceiver::class.java).apply {
// this.action = CloseNotificationReceiver.Action
// this.putExtra(NotificationId, actionId)
// })
// }
//
// override fun initListener() {
//
// binding.idTvStart.setOnClickListener {
// if (oneClickStart) {
// return@setOnClickListener
// }
// oneClickStart = true
// ifAgreePrivacy = true
// (application as MyApplication).initApp(true)
// AdmobMaxHelper.preloadAd(this)
// binding.llStart.visibility = View.GONE
// binding.llProgress.visibility = View.VISIBLE
// job = startProgress()
// }
// }
//
// private var processTime = 0L
// private var outTimeAdStart = false
// private fun startProgress() = lifecycleScope.launch {
// LogEx.logDebug(TAG, "startProgress")
// while (isActive) {
// val value = binding.pb.progress + 2
// binding.pb.setProgress(value, true)
// progress.emit(value)
//
// val delayTime = 300L
// delay(delayTime)
// processTime += delayTime
// if (processTime >= Random.nextLong(2500, 3000)) {
// if (!outTimeAdStart) {
// outTimeAdStart = true
// outTimeAd()
// }
// }
// }
// }
//
//
// private fun outTimeAd() {
// LogEx.logDebug(TAG, "outTimeAd")
//
// var loaded: Boolean = true
// AdmobMaxHelper.admobMaxShowOpenAd(this, showBeforeAction = { flag ->
// LogEx.logDebug(TAG, "showBeforeAction flag=$flag")
// loaded = flag
// job?.cancel()
// }, onHidden = {
// val sp = AppPreferences.getInstance().getString("splashShowInter", "0").toInt()
// if (sp == 1 && !loaded) {
// AdmobMaxHelper.admobMaxShowInterstitialAd(this, isLoading = false) {
// binding.pb.progress = 100
// jumpNext()
// }
// } else {
// binding.pb.progress = 100
// jumpNext()
// }
//
// })
// }
//
// override fun onResume() {
// super.onResume()
// LogEx.logDebug(TAG, "onResume")
// if (ifAgreePrivacy && job?.isActive == false) {
// job = startProgress()
// }
// }
//
// override fun onPause() {
// super.onPause()
// job?.cancel()
// LogEx.logDebug(TAG, "onPause")
// }
//
//
//}
\ No newline at end of file
......@@ -14,7 +14,6 @@ import com.base.filerecoveryrecyclebin.databinding.ActivityBatteryBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.receiver.BatteryReceiver
import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.LogEx
import com.base.filerecoveryrecyclebin.view.DialogViews.showExitFunctionDialog
import kotlin.math.abs
......
......@@ -63,7 +63,7 @@ class BatteryInfoAnimationActivity : BaseActivity<ActivityBatteryInfoAnimationBi
binding.lottieCompleted.playAnimation()
binding.tv.text = "Completed!"
delay(1000)
AdmobMaxHelper.admobMaxShowOpenAd(this@BatteryInfoAnimationActivity, showBeforeAction = {}) {
AdmobMaxHelper.admobMaxShowInterstitialAd(this@BatteryInfoAnimationActivity) {
binding.lottie.clearAnimation()
startActivity(Intent(this@BatteryInfoAnimationActivity, BatteryActivity::class.java))
finish()
......
......@@ -64,7 +64,6 @@ class Splash2Activity : BaseActivity<ActivitySplashBinding>(),
mTaskManager = TaskManager(binding, this)
if (ifAgreePrivacy) {
onAgreePrivacy()
// EventUtils.event("app_start")
} else {
PrivacyManager(binding, this, this)
}
......@@ -83,16 +82,9 @@ class Splash2Activity : BaseActivity<ActivitySplashBinding>(),
if (jumpType == 0) {
startStayNotification()
}
AdmobMaxHelper.preloadAd(this)
mTaskManager?.startProgress()
loadAd()
// if (!ConfigHelper.ifGuest) {
// mTaskManager?.pauseProgress()
// onProgressMax()
// return
// } else {
// loadAd()
// }
}
......@@ -103,9 +95,6 @@ class Splash2Activity : BaseActivity<ActivitySplashBinding>(),
}
private fun loadAd() {
// AdmobMaxHelper.admobMaxShowOpenAd(this){
//
// }
AdmobMaxHelper.admobMaxShowOpenAd(this, {
mTaskManager?.pauseProgress()
}, {
......
......@@ -154,11 +154,11 @@ object AdmobMaxHelper {
}
if (getSpAdmobTrueMaxFalse()) {
AdmobOpenUtils.loadAppOpenAd()
// AdmobOpenUtils.loadAppOpenAd()
AdmobInterstitialUtils.loadInterstitialAd(activity)
} else {
if (isAdInit.get()) {
AdMaxOpenUtils.loadAppOpenAd(activity)
// AdMaxOpenUtils.loadAppOpenAd(activity)
AdMaxInterstitialUtils.loadInterstitialAd(activity)
} else {
AdMaxInit.maxInitAction = {
......
package com.base.filerecoveryrecyclebin.help
import android.os.Build
import android.text.TextUtils
import androidx.annotation.RequiresApi
import com.android.installreferrer.api.InstallReferrerClient
import com.android.installreferrer.api.InstallReferrerStateListener
......
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