Commit 3bb99921 authored by wanglei's avatar wanglei

[优化]

parent b5ec3f18
...@@ -5,6 +5,7 @@ import com.dumpster.cleaner.business.ads.AdsType.Companion.INSERT ...@@ -5,6 +5,7 @@ import com.dumpster.cleaner.business.ads.AdsType.Companion.INSERT
import com.dumpster.cleaner.business.ads.AdsType.Companion.OPEN import com.dumpster.cleaner.business.ads.AdsType.Companion.OPEN
import com.dumpster.cleaner.business.ads.LimitUtils.interLastShowTime import com.dumpster.cleaner.business.ads.LimitUtils.interLastShowTime
import com.dumpster.cleaner.business.ads.LimitUtils.openLastShowTime import com.dumpster.cleaner.business.ads.LimitUtils.openLastShowTime
import com.dumpster.cleaner.utils.LogEx
class AdState<T>() { class AdState<T>() {
......
package com.dumpster.cleaner.business.ads package com.dumpster.cleaner.business.ads
import android.util.Log
import com.dumpster.cleaner.BuildConfig import com.dumpster.cleaner.BuildConfig
import com.dumpster.cleaner.bean.config.AdConfigBean import com.dumpster.cleaner.bean.config.AdConfigBean
import com.dumpster.cleaner.utils.AppPreferences import com.dumpster.cleaner.utils.AppPreferences
...@@ -155,6 +156,7 @@ object LimitUtils { ...@@ -155,6 +156,7 @@ object LimitUtils {
*/ */
fun isIntervalOpenLimit(adEvent: AdEvent): Boolean { fun isIntervalOpenLimit(adEvent: AdEvent): Boolean {
val flag = ((System.currentTimeMillis() - openLastShowTime) / 1000).toInt() < (AdConfigBean.adsConfigBean.timeIntervalOpen) val flag = ((System.currentTimeMillis() - openLastShowTime) / 1000).toInt() < (AdConfigBean.adsConfigBean.timeIntervalOpen)
Log.e(adEvent.TAG, "open isIntervalOpenLimit=$flag")
if (flag) { if (flag) {
adEvent.adShowError("ad in timeInterval") adEvent.adShowError("ad in timeInterval")
} }
...@@ -165,7 +167,13 @@ object LimitUtils { ...@@ -165,7 +167,13 @@ object LimitUtils {
* 插屏限制 * 插屏限制
*/ */
fun isIntervalInterLimit(adEvent: AdEvent): Boolean { fun isIntervalInterLimit(adEvent: AdEvent): Boolean {
val flag = ((System.currentTimeMillis() - interLastShowTime) / 1000).toInt() < (AdConfigBean.adsConfigBean.timeInterval) val passTime = ((System.currentTimeMillis() - interLastShowTime) / 1000).toInt()
val interval = AdConfigBean.adsConfigBean.timeInterval
val flag = passTime < (interval)
Log.e(
adEvent.TAG,
"inter isIntervalInterLimit=$flag interLastShowTime=$interLastShowTime passTime=$passTime interval=$interval"
)
if (flag) { if (flag) {
adEvent.adShowError("ad in timeInterval") adEvent.adShowError("ad in timeInterval")
} }
......
...@@ -11,6 +11,7 @@ import com.dumpster.cleaner.business.ads.AdEvent ...@@ -11,6 +11,7 @@ import com.dumpster.cleaner.business.ads.AdEvent
import com.dumpster.cleaner.business.ads.AdState import com.dumpster.cleaner.business.ads.AdState
import com.dumpster.cleaner.business.ads.AdsShowCallBack import com.dumpster.cleaner.business.ads.AdsShowCallBack
import com.dumpster.cleaner.business.ads.AdsType import com.dumpster.cleaner.business.ads.AdsType
import com.dumpster.cleaner.business.ads.AdsType.Companion.INSERT
import com.dumpster.cleaner.business.ads.AdsType.Companion.OPEN import com.dumpster.cleaner.business.ads.AdsType.Companion.OPEN
import com.dumpster.cleaner.business.ads.LimitUtils import com.dumpster.cleaner.business.ads.LimitUtils
import com.dumpster.cleaner.business.ads.admob.AdmobEvent.AdmobOnPaidEventListener import com.dumpster.cleaner.business.ads.admob.AdmobEvent.AdmobOnPaidEventListener
...@@ -102,7 +103,7 @@ class AdInterMgr { ...@@ -102,7 +103,7 @@ class AdInterMgr {
val admobEvent = (adEvent as AdmobEvent) val admobEvent = (adEvent as AdmobEvent)
val tag = adEvent.TAG val tag = adEvent.TAG
LogEx.logDebug(tag, "showReadyAd ac=$ac currentAd=${adState.currentAd}") LogEx.logDebug(tag, "showReadyAd ac=${ac.javaClass.simpleName} currentAd=${adState.currentAd}")
if (ac.isFinishing || ac.isDestroyed || adState.currentAd == null) { if (ac.isFinishing || ac.isDestroyed || adState.currentAd == null) {
LogEx.logDebug(tag, "showReadyAd ac=null isFinishing isDestroyed") LogEx.logDebug(tag, "showReadyAd ac=null isFinishing isDestroyed")
showCallBack?.failed() showCallBack?.failed()
...@@ -116,12 +117,12 @@ class AdInterMgr { ...@@ -116,12 +117,12 @@ class AdInterMgr {
override fun onAdShowedFullScreenContent() { override fun onAdShowedFullScreenContent() {
super.onAdShowedFullScreenContent() super.onAdShowedFullScreenContent()
admobEvent.showAd(responseInfo, ac) adState.onAdDisplayed(INSERT)
adState.onAdDisplayed(OPEN)
showCallBack?.show() showCallBack?.show()
LimitUtils.addDisplayNum() LimitUtils.addDisplayNum()
admobEvent.showAd(responseInfo, ac)
} }
override fun onAdFailedToShowFullScreenContent(adError: AdError) { override fun onAdFailedToShowFullScreenContent(adError: AdError) {
...@@ -137,10 +138,11 @@ class AdInterMgr { ...@@ -137,10 +138,11 @@ class AdInterMgr {
override fun onAdDismissedFullScreenContent() { override fun onAdDismissedFullScreenContent() {
super.onAdDismissedFullScreenContent() super.onAdDismissedFullScreenContent()
adState.onAdHidden(OPEN) adState.onAdHidden(INSERT)
showCallBack?.close() showCallBack?.close()
showCallBack = null showCallBack = null
loadAd(MyApplication.appContext, AdmobEvent("interAd", "preload")) loadAd(MyApplication.appContext, AdmobEvent("interAd", "preload"))
} }
......
...@@ -9,6 +9,7 @@ import com.dumpster.cleaner.business.ads.AdState ...@@ -9,6 +9,7 @@ import com.dumpster.cleaner.business.ads.AdState
import com.dumpster.cleaner.business.ads.AdsShowCallBack import com.dumpster.cleaner.business.ads.AdsShowCallBack
import com.dumpster.cleaner.business.ads.AdsType import com.dumpster.cleaner.business.ads.AdsType
import com.dumpster.cleaner.business.ads.AdsType.Companion.INSERT import com.dumpster.cleaner.business.ads.AdsType.Companion.INSERT
import com.dumpster.cleaner.business.ads.AdsType.Companion.OPEN
import com.dumpster.cleaner.business.ads.LimitUtils import com.dumpster.cleaner.business.ads.LimitUtils
import com.dumpster.cleaner.business.ads.admob.AdmobEvent.AdmobOnPaidEventListener import com.dumpster.cleaner.business.ads.admob.AdmobEvent.AdmobOnPaidEventListener
import com.dumpster.cleaner.utils.LogEx import com.dumpster.cleaner.utils.LogEx
...@@ -96,15 +97,13 @@ class AdOpenMgr { ...@@ -96,15 +97,13 @@ class AdOpenMgr {
fullScreenContentCallback = object : FullScreenContentCallback() { fullScreenContentCallback = object : FullScreenContentCallback() {
override fun onAdShowedFullScreenContent() { override fun onAdShowedFullScreenContent() {
adState.onAdDisplayed(OPEN)
admobEvent.showAd(this@run.responseInfo, ac)
showCallBack?.show() showCallBack?.show()
adState.onAdDisplayed(INSERT)
//计数 //计数
LimitUtils.addDisplayNum() LimitUtils.addDisplayNum()
admobEvent.showAd(this@run.responseInfo, ac)
} }
override fun onAdFailedToShowFullScreenContent(adError: AdError) { override fun onAdFailedToShowFullScreenContent(adError: AdError) {
...@@ -121,11 +120,11 @@ class AdOpenMgr { ...@@ -121,11 +120,11 @@ class AdOpenMgr {
override fun onAdDismissedFullScreenContent() { override fun onAdDismissedFullScreenContent() {
super.onAdDismissedFullScreenContent() super.onAdDismissedFullScreenContent()
adState.onAdHidden(OPEN)
showCallBack?.close() showCallBack?.close()
showCallBack = null showCallBack = null
adState.onAdHidden(INSERT)
//预加载,“Timeout for show call succeed.”预加载的广告大概率, //预加载,“Timeout for show call succeed.”预加载的广告大概率,
loadAd(MyApplication.appContext, AdmobEvent("openAd", "preload")) loadAd(MyApplication.appContext, AdmobEvent("openAd", "preload"))
} }
......
...@@ -8,8 +8,6 @@ import com.dumpster.cleaner.R ...@@ -8,8 +8,6 @@ import com.dumpster.cleaner.R
import com.dumpster.cleaner.databinding.DialogNotificationBinding import com.dumpster.cleaner.databinding.DialogNotificationBinding
class NotificationTurnOnDialog( class NotificationTurnOnDialog(
val activity: Activity val activity: Activity
) { ) {
...@@ -35,6 +33,9 @@ class NotificationTurnOnDialog( ...@@ -35,6 +33,9 @@ class NotificationTurnOnDialog(
dialog.window?.attributes = params dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent) dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
binding.ivClose.setOnClickListener {
dialog.dismiss()
}
binding.tvTurnOn.setOnClickListener { binding.tvTurnOn.setOnClickListener {
dialog.dismiss() dialog.dismiss()
action?.invoke() action?.invoke()
......
...@@ -45,7 +45,6 @@ class CleanGuideActivity : BaseActivity<ActivityLayoutCleanGuideBinding>(Activit ...@@ -45,7 +45,6 @@ class CleanGuideActivity : BaseActivity<ActivityLayoutCleanGuideBinding>(Activit
binding.idSkip.setOnClickListener { binding.idSkip.setOnClickListener {
AdsMgr.showInsert(this, true, object : AdsShowCallBack() { AdsMgr.showInsert(this, true, object : AdsShowCallBack() {
override fun next() { override fun next() {
isGuided = true
goToAc(MainActivity::class.java) goToAc(MainActivity::class.java)
finish() finish()
} }
...@@ -53,7 +52,6 @@ class CleanGuideActivity : BaseActivity<ActivityLayoutCleanGuideBinding>(Activit ...@@ -53,7 +52,6 @@ class CleanGuideActivity : BaseActivity<ActivityLayoutCleanGuideBinding>(Activit
} }
binding.idClean02.setOnClickListener { binding.idClean02.setOnClickListener {
val jump = { val jump = {
isGuided = true
jumpAction(JUNK_CLEAN) jumpAction(JUNK_CLEAN)
finish() finish()
} }
......
...@@ -29,6 +29,11 @@ class MainViewModel : ViewModel() { ...@@ -29,6 +29,11 @@ class MainViewModel : ViewModel() {
return return
} }
if (!isTodayUsedFunction()) {
dialogFlow.update { "BatteryDialog" }
return
}
if (!context.checkStorePermission()) { if (!context.checkStorePermission()) {
dialogFlow.update { "StoreDialog" } dialogFlow.update { "StoreDialog" }
return return
...@@ -42,10 +47,7 @@ class MainViewModel : ViewModel() { ...@@ -42,10 +47,7 @@ class MainViewModel : ViewModel() {
return return
} }
if (!isTodayUsedFunction()) {
dialogFlow.update { "BatteryDialog" }
return
}
if (!isScoreRated && mainPageCount > 0 && mainPageCount % 4 == 0L) { if (!isScoreRated && mainPageCount > 0 && mainPageCount % 4 == 0L) {
dialogFlow.update { "RateDialog" } dialogFlow.update { "RateDialog" }
......
...@@ -84,8 +84,8 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding ...@@ -84,8 +84,8 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
requestNotificationPermission() requestNotificationPermission()
showLoadingAd() showLoadingAd()
setPrivacyPolicy() setPrivacyPolicy()
viewModel.jumpNext={ viewModel.jumpNext = {
actionIdJump() jumpNext()
} }
} }
...@@ -237,6 +237,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding ...@@ -237,6 +237,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
when { when {
!isGuided -> { !isGuided -> {
isGuided = true
goToAc(CleanGuideActivity::class.java) goToAc(CleanGuideActivity::class.java)
finish() finish()
} }
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?><!--<shape xmlns:android="http://schemas.android.com/apk/res/android">-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <!-- <gradient-->
<gradient <!-- android:startColor="@color/white"-->
android:startColor="@color/white" <!-- android:endColor="@color/white"-->
android:endColor="@color/white" <!-- android:angle="270"-->
android:angle="270" <!-- android:centerX="0.5"-->
android:centerX="0.5" <!-- android:centerY="0.5" />-->
android:centerY="0.5" /> <!--</shape>-->
</shape> <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
\ No newline at end of file <item>
<bitmap android:src="@drawable/bg_bg_splash" />
</item>
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/logo_s" />
</item>
</layer-list>
\ No newline at end of file
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