Commit 3f54f403 authored by wanglei's avatar wanglei

...

parent fdd79655
...@@ -118,7 +118,7 @@ class MyApplication : BaseApplication() { ...@@ -118,7 +118,7 @@ class MyApplication : BaseApplication() {
if (flag) { if (flag) {
if (AdmobMaxHelper.isOpenAdLoaded()) { if (AdmobMaxHelper.isOpenAdLoaded()) {
LogEx.logDebug(TAG, "show ad") LogEx.logDebug(TAG, "show ad")
AdmobMaxHelper.admobMaxShowOpenAd(activity) AdmobMaxHelper.admobMaxShowOpenAd(activity, {}, {})
} else { } else {
LogEx.logDebug(TAG, "jump splash") LogEx.logDebug(TAG, "jump splash")
topActivity?.startActivity( topActivity?.startActivity(
......
...@@ -246,28 +246,13 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() { ...@@ -246,28 +246,13 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
private fun outTimeAd() { private fun outTimeAd() {
LogEx.logDebug(TAG, "outTimeAd") LogEx.logDebug(TAG, "outTimeAd")
if (ConfigHelper.admobTrueMaxFlase) { AdmobMaxHelper.admobMaxShowOpenAd(this, showBeforeAction = {
AdmobOpenUtils.loadAppOpenAd {
LogEx.logDebug(TAG, "load where=$it")
job?.cancel() job?.cancel()
AdmobOpenUtils.showAppOpenAd(this@SplashActivity) { }) {
LogEx.logDebug(TAG, "adCallBack=$it")
binding.pb.progress = 100 binding.pb.progress = 100
jumpNext() jumpNext()
} }
} }
} else {
AdMaxOpenUtils.showAppOpenAd(this@SplashActivity,
loaded = {
job?.cancel()
},
onHidden = {
binding.pb.progress = 100
jumpNext()
})
}
}
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
......
package com.base.datarecovery.activity.junkclean package com.base.datarecovery.activity.junkclean
import android.animation.ValueAnimator import android.animation.ValueAnimator
import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.view.View
import android.view.animation.LinearInterpolator import android.view.animation.LinearInterpolator
import android.widget.Toast import android.widget.Toast
import androidx.activity.addCallback import androidx.activity.addCallback
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import com.base.datarecovery.ads.AdmobMaxHelper
import com.base.datarecovery.ads.AdmobMaxHelper.admobMaxShowInterstitialAd import com.base.datarecovery.ads.AdmobMaxHelper.admobMaxShowInterstitialAd
import com.base.datarecovery.databinding.ActivityLayoutScanJunkBinding import com.base.datarecovery.databinding.ActivityLayoutScanJunkBinding
import com.base.datarecovery.help.BaseActivity import com.base.datarecovery.help.BaseActivity
...@@ -14,6 +18,9 @@ import com.base.datarecovery.help.PermissionHelp.checkStorePermission ...@@ -14,6 +18,9 @@ import com.base.datarecovery.help.PermissionHelp.checkStorePermission
import com.base.datarecovery.help.PermissionHelp.requestStorePermission import com.base.datarecovery.help.PermissionHelp.requestStorePermission
import com.base.datarecovery.utils.BarUtils import com.base.datarecovery.utils.BarUtils
import com.base.datarecovery.view.DialogViews.showGerPermission import com.base.datarecovery.view.DialogViews.showGerPermission
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
/** /**
* 清理动画页面 * 清理动画页面
...@@ -24,6 +31,7 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() { ...@@ -24,6 +31,7 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() {
ActivityLayoutScanJunkBinding.inflate(layoutInflater) ActivityLayoutScanJunkBinding.inflate(layoutInflater)
} }
private var onResumePlay: Boolean = false
override fun initView() { override fun initView() {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight()) binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
...@@ -37,7 +45,7 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() { ...@@ -37,7 +45,7 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() {
allow = { allow = {
requestStorePermission(launcher, result = { requestStorePermission(launcher, result = {
if (it) { if (it) {
playLottie(false) onResumePlay = true
} else { } else {
finishToMain() finishToMain()
} }
...@@ -47,6 +55,7 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() { ...@@ -47,6 +55,7 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() {
} }
} }
override fun initListener() { override fun initListener() {
onBackPressedDispatcher.addCallback { onBackPressedDispatcher.addCallback {
...@@ -57,6 +66,9 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() { ...@@ -57,6 +66,9 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() {
private var isPause = false private var isPause = false
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
if (onResumePlay) {
playLottie()
}
if (isPause) { if (isPause) {
binding.idJunkScan.resumeAnimation() binding.idJunkScan.resumeAnimation()
} }
...@@ -80,7 +92,8 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() { ...@@ -80,7 +92,8 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() {
binding.idJunkScan.pauseAnimation() binding.idJunkScan.pauseAnimation()
} }
private fun playLottie(showAd: Boolean = true) { @SuppressLint("SetTextI18n")
private fun playLottie() {
val a1 = ValueAnimator.ofFloat(0f, 360f) val a1 = ValueAnimator.ofFloat(0f, 360f)
a1.run { a1.run {
duration = 1000 duration = 1000
...@@ -118,24 +131,22 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() { ...@@ -118,24 +131,22 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() {
binding.idJunkScan.imageAssetsFolder = "junk_scan/images/" binding.idJunkScan.imageAssetsFolder = "junk_scan/images/"
binding.idJunkScan.setAnimation("junk_scan/data.json") binding.idJunkScan.setAnimation("junk_scan/data.json")
binding.idJunkScan.playAnimation() binding.idJunkScan.playAnimation()
binding.root.postDelayed({
if (showAd) { lifecycleScope.launch(Dispatchers.Main) {
admobMaxShowInterstitialAd(this){ delay(5000)
binding.lottie.visibility = View.GONE
binding.lottieCompleted.visibility = View.VISIBLE
binding.lottieCompleted.playAnimation()
binding.tv.text = "Completed!"
a1.cancel() a1.cancel()
a2.cancel() a2.cancel()
a3.cancel() a3.cancel()
startActivity(Intent(this, CleanJunkActivity::class.java)) delay(1000)
admobMaxShowInterstitialAd(this@ScanJunkActivity) {
startActivity(Intent(this@ScanJunkActivity, CleanJunkActivity::class.java))
finish() finish()
} }
} else {
a1.cancel()
a2.cancel()
a3.cancel()
startActivity(Intent(this, CleanJunkActivity::class.java))
finish()
} }
}, 5000)
} }
private var animator1: ValueAnimator? = null private var animator1: ValueAnimator? = null
......
...@@ -36,13 +36,13 @@ object AdmobMaxHelper { ...@@ -36,13 +36,13 @@ object AdmobMaxHelper {
} }
} }
fun admobMaxShowOpenAd(activity: Activity, onHidden: (() -> Unit)? = null) { fun admobMaxShowOpenAd(activity: Activity, showBeforeAction: () -> Unit, onHidden: (() -> Unit)? = null) {
if (ConfigHelper.admobTrueMaxFlase) { if (ConfigHelper.admobTrueMaxFlase) {
AdmobOpenUtils.showAppOpenAd(activity) { AdmobOpenUtils.showAppOpenAd(activity, showBefore = showBeforeAction) {
onHidden?.invoke() onHidden?.invoke()
} }
} else { } else {
AdMaxOpenUtils.showAppOpenAd(activity) { AdMaxOpenUtils.showAppOpenAd(activity, loaded = showBeforeAction) {
onHidden?.invoke() onHidden?.invoke()
} }
} }
......
...@@ -66,7 +66,7 @@ object AdmobOpenUtils { ...@@ -66,7 +66,7 @@ object AdmobOpenUtils {
} }
fun showAppOpenAd(activity: Activity, skip: Boolean = false, onHidden: ((where: Int) -> Unit)? = null) { fun showAppOpenAd(activity: Activity, showBefore: (() -> Unit)? = null, onHidden: ((where: Int) -> Unit)? = null) {
if (activity.isFinishing || activity.isDestroyed) { if (activity.isFinishing || activity.isDestroyed) {
return return
...@@ -116,6 +116,7 @@ object AdmobOpenUtils { ...@@ -116,6 +116,7 @@ object AdmobOpenUtils {
} }
override fun onAdShowedFullScreenContent() { override fun onAdShowedFullScreenContent() {
showBefore?.invoke()
showAd(thisMOpenAd?.responseInfo, "openAd", activity) showAd(thisMOpenAd?.responseInfo, "openAd", activity)
} }
} }
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
</RelativeLayout> </RelativeLayout>
<com.base.datarecovery.view.XmlLottieAnimationView <FrameLayout
android:id="@+id/id_junk_scan" android:id="@+id/id_junk_scan"
android:layout_width="300dp" android:layout_width="300dp"
android:layout_height="300dp" android:layout_height="300dp"
...@@ -38,8 +38,28 @@ ...@@ -38,8 +38,28 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:lottie_autoPlay="true" app:lottie_autoPlay="true"
app:lottie_loop="true">
<com.base.datarecovery.view.XmlLottieAnimationView
android:id="@+id/lottie"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
app:lottie_autoPlay="true"
app:lottie_loop="true" /> app:lottie_loop="true" />
<com.base.datarecovery.view.XmlLottieAnimationView
android:id="@+id/lottie_completed"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_gravity="center"
android:visibility="gone"
app:lottie_autoPlay="false"
app:lottie_rawRes="@raw/loading_completed" />
</FrameLayout>
<TextView <TextView
android:id="@+id/tv" android:id="@+id/tv"
android:layout_width="wrap_content" android:layout_width="wrap_content"
......
{"nm":"Success Animation","ddd":0,"h":400,"w":400,"meta":{"g":"@lottiefiles/toolkit-js 0.33.2"},"layers":[{"ty":4,"nm":"Success_Tick","sr":1,"st":4.00000016292334,"op":154.000006272549,"ip":4.00000016292334,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[29,-36,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[205.75,194.75,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-48,-34],[2,16],[94.5,-77.5]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.146,"y":1},"s":[15],"t":4},{"s":[30],"t":25.0000010182709}],"ix":5},"c":{"a":0,"k":[0,0.3922,0.7882],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.113,"y":1},"s":[0],"t":4},{"s":[100],"t":25.0000010182709}],"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":0,"k":0,"ix":1},"m":1}],"ind":1},{"ty":4,"nm":"Circle","sr":1,"st":0,"op":150.000006109625,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[30.765,23.931,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[200,200,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[{"ty":22,"mn":"ADBE Stroke","nm":"Stroke","ix":1,"en":1,"ef":[{"ty":10,"mn":"ADBE Stroke-0001","nm":"Path","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"mn":"ADBE Stroke-0010","nm":"All Masks","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":7,"mn":"ADBE Stroke-0011","nm":"Stroke Sequentially","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":2,"mn":"ADBE Stroke-0002","nm":"Color","ix":4,"v":{"a":0,"k":[1,1,1],"ix":4}},{"ty":0,"mn":"ADBE Stroke-0003","nm":"Brush Size","ix":5,"v":{"a":0,"k":2,"ix":5}},{"ty":0,"mn":"ADBE Stroke-0004","nm":"Brush Hardness","ix":6,"v":{"a":0,"k":0.75,"ix":6}},{"ty":0,"mn":"ADBE Stroke-0005","nm":"Opacity","ix":7,"v":{"a":0,"k":1,"ix":7}},{"ty":0,"mn":"ADBE Stroke-0008","nm":"Start","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"mn":"ADBE Stroke-0009","nm":"End","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"mn":"ADBE Stroke-0006","nm":"Spacing","ix":10,"v":{"a":0,"k":15,"ix":10}},{"ty":7,"mn":"ADBE Stroke-0007","nm":"Paint Style","ix":11,"v":{"a":0,"k":1,"ix":11}}]}],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":3,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[318.933,318.933],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.188,"y":1},"s":[50],"t":0},{"s":[20],"t":20.0000008146167}],"ix":5},"c":{"a":0,"k":[0,0.3922,0.7882],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[30.765,23.931],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.096,"y":1},"s":[100],"t":0},{"s":[0],"t":20.0000008146167}],"ix":1},"m":1}],"ind":2}],"v":"5.7.4","fr":29.9700012207031,"op":30.0000012219251,"ip":0,"assets":[]}
\ 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