Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
F
File Recovery RecycleBin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
File Recovery RecycleBin
Commits
145e98e1
Commit
145e98e1
authored
Jul 19, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...ad
parent
63c7a50f
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
198 additions
and
100 deletions
+198
-100
build.gradle
app/build.gradle
+12
-4
MyApplication.kt
...ain/java/com/base/filerecoveryrecyclebin/MyApplication.kt
+2
-6
ResultActivity.kt
...om/base/filerecoveryrecyclebin/activity/ResultActivity.kt
+1
-0
SplashActivity.kt
...om/base/filerecoveryrecyclebin/activity/SplashActivity.kt
+6
-2
ScanJunkActivity.kt
...recoveryrecyclebin/activity/junkclean/ScanJunkActivity.kt
+1
-0
AdDisplayUtils.java
...a/com/base/filerecoveryrecyclebin/ads/AdDisplayUtils.java
+24
-2
AdmobMaxHelper.kt
...ava/com/base/filerecoveryrecyclebin/ads/AdmobMaxHelper.kt
+27
-0
AdmobCommonUtils.kt
...base/filerecoveryrecyclebin/ads/admob/AdmobCommonUtils.kt
+2
-1
AdmobInterstitialUtils.kt
...ilerecoveryrecyclebin/ads/admob/AdmobInterstitialUtils.kt
+3
-3
AdmobNativeUtils.kt
...base/filerecoveryrecyclebin/ads/admob/AdmobNativeUtils.kt
+1
-1
AdmobOpenUtils.kt
...m/base/filerecoveryrecyclebin/ads/admob/AdmobOpenUtils.kt
+3
-3
AdMaxEvent.kt
...ava/com/base/filerecoveryrecyclebin/ads/max/AdMaxEvent.kt
+11
-8
AdMaxInit.kt
...java/com/base/filerecoveryrecyclebin/ads/max/AdMaxInit.kt
+2
-2
AdMaxInterstitialUtils.kt
.../filerecoveryrecyclebin/ads/max/AdMaxInterstitialUtils.kt
+42
-31
AdMaxNativeUtils.kt
...m/base/filerecoveryrecyclebin/ads/max/AdMaxNativeUtils.kt
+6
-10
AdMaxOpenUtils.kt
...com/base/filerecoveryrecyclebin/ads/max/AdMaxOpenUtils.kt
+51
-26
HomeFragment.kt
.../com/base/filerecoveryrecyclebin/fragment/HomeFragment.kt
+1
-0
StayNotificationService.kt
...filerecoveryrecyclebin/service/StayNotificationService.kt
+1
-0
DialogViews.kt
.../java/com/base/filerecoveryrecyclebin/view/DialogViews.kt
+2
-1
No files found.
app/build.gradle
View file @
145e98e1
...
...
@@ -87,10 +87,18 @@ dependencies {
//广告
implementation
(
"com.google.android.gms:play-services-ads:23.1.0"
)
implementation
'com.google.ads.mediation:applovin:12.4.3.0'
implementation
'com.google.ads.mediation:facebook:6.17.0.0'
implementation
'com.google.ads.mediation:mintegral:16.7.21.0'
implementation
'com.google.ads.mediation:pangle:5.9.0.4.0'
// implementation 'com.google.ads.mediation:applovin:12.4.3.0'
// implementation 'com.google.ads.mediation:facebook:6.17.0.0'
// implementation 'com.google.ads.mediation:mintegral:16.7.21.0'
// implementation 'com.google.ads.mediation:pangle:5.9.0.4.0'
//max
implementation
'com.applovin:applovin-sdk:+'
implementation
'com.applovin.mediation:google-ad-manager-adapter:+'
implementation
'com.applovin.mediation:facebook-adapter:+'
implementation
'com.applovin.mediation:mintegral-adapter:+'
implementation
'com.applovin.mediation:bytedance-adapter:+'
implementation
'com.applovin.mediation:ironsource-adapter:+'
//Google UMP
//https://docs.tradplusad.com/docs/tradplussdk_android_doc_v6/privacy_policy/google_ump/
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/MyApplication.kt
View file @
145e98e1
...
...
@@ -6,6 +6,7 @@ import android.content.Intent
import
android.os.Bundle
import
android.text.TextUtils
import
com.base.filerecoveryrecyclebin.activity.SplashActivity
import
com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobOpenUtils
import
com.base.filerecoveryrecyclebin.ads.max.AdMaxInit.initAdMax
import
com.base.filerecoveryrecyclebin.bean.ConstObject.ifAgreePrivacy
...
...
@@ -74,12 +75,7 @@ class MyApplication : BaseApplication() {
InstallHelps
.
init
()
if
(
ifAgreePrivacy
)
{
if
(
ConfigHelper
.
admobTrueMaxFlase
)
{
MobileAds
.
initialize
(
this
)
{
initializationStatus
->
}
}
else
{
initAdMax
()
}
AdmobMaxHelper
.
initAdmobMaxAd
()
MainScope
().
launch
(
Dispatchers
.
Main
)
{
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/activity/ResultActivity.kt
View file @
145e98e1
...
...
@@ -5,6 +5,7 @@ import android.content.Intent
import
android.graphics.Color
import
androidx.activity.OnBackPressedCallback
import
androidx.core.view.updatePadding
import
com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
import
com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacyPinOneActivity
import
com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacySpaceActivity
import
com.base.filerecoveryrecyclebin.activity.recovery.FileScanResultActivity
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/activity/SplashActivity.kt
View file @
145e98e1
...
...
@@ -10,6 +10,7 @@ import android.text.style.UnderlineSpan
import
android.view.View
import
androidx.lifecycle.lifecycleScope
import
com.base.filerecoveryrecyclebin.MyApplication
import
com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
import
com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacyPinOneActivity
import
com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacySpaceActivity
import
com.base.filerecoveryrecyclebin.activity.recovery.FileScanResultActivity
...
...
@@ -18,6 +19,7 @@ import com.base.filerecoveryrecyclebin.activity.screenshot.ScreenShotActivity
import
com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobNativeUtils
import
com.base.filerecoveryrecyclebin.ads.max.AdMaxInit
import
com.base.filerecoveryrecyclebin.ads.max.AdMaxInterstitialUtils
import
com.base.filerecoveryrecyclebin.ads.max.AdMaxOpenUtils
import
com.base.filerecoveryrecyclebin.bean.ConstObject
...
...
@@ -107,8 +109,10 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
AdmobNativeUtils
.
loadNativeAd
()
AdmobInterstitialUtils
.
loadInterstitialAd
(
this
)
}
else
{
AdMaxOpenUtils
.
loadAppOpenAd
(
this
)
AdMaxInterstitialUtils
.
loadInterstitialAd
(
this
)
AdMaxInit
.
maxInitAction
=
{
AdMaxOpenUtils
.
loadAppOpenAd
(
this
)
AdMaxInterstitialUtils
.
loadInterstitialAd
(
this
)
}
}
}
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/activity/junkclean/ScanJunkActivity.kt
View file @
145e98e1
...
...
@@ -10,6 +10,7 @@ import android.widget.Toast
import
androidx.activity.addCallback
import
androidx.core.view.updatePadding
import
androidx.lifecycle.lifecycleScope
import
com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper.admobMaxShowInterstitialAd
import
com.base.filerecoveryrecyclebin.databinding.ActivityLayoutScanJunkBinding
import
com.base.filerecoveryrecyclebin.help.BaseActivity
import
com.base.filerecoveryrecyclebin.help.PermissionHelp.checkStorePermission
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/ads/AdDisplayUtils.java
View file @
145e98e1
package
com
.
base
.
filerecoveryrecyclebin
.
ads
;
import
android.content.SharedPreferences
;
import
android.util.Log
;
import
com.base.filerecoveryrecyclebin.BuildConfig
;
import
com.base.filerecoveryrecyclebin.help.BaseApplication
;
import
com.base.filerecoveryrecyclebin.utils.EventUtils
;
import
com.base.filerecoveryrecyclebin.utils.LogEx
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
...
...
@@ -63,8 +70,23 @@ public class AdDisplayUtils {
return
adClickCount
<
getMaxAdClickCount
();
}
public
boolean
shouldShowAd
()
{
return
shouldDisplayAd
()
&&
shouldIncrementClickCount
()
&&
shouldIncrementRequestFailAd
();
public
boolean
shouldShowAd
(
String
ad_unit
)
{
if
(
BuildConfig
.
DEBUG
)
{
return
true
;
}
boolean
s
=
shouldDisplayAd
()
&&
shouldIncrementClickCount
()
&&
shouldIncrementRequestFailAd
();
if
(!
s
)
{
LogEx
.
INSTANCE
.
logDebug
(
"glc"
,
"!shouldShowAd"
,
false
);
JSONObject
obj2
=
new
JSONObject
();
try
{
obj2
.
put
(
"reason"
,
"ad limit"
);
obj2
.
put
(
"ad_unit"
,
ad_unit
);
EventUtils
.
INSTANCE
.
event
(
"ad_show_error"
,
null
,
obj2
,
false
);
}
catch
(
JSONException
e
)
{
}
}
return
s
;
}
public
void
incrementAdDisplayCount
()
{
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/ads/AdmobMaxHelper.kt
View file @
145e98e1
...
...
@@ -6,13 +6,40 @@ import com.base.filerecoveryrecyclebin.R
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobNativeUtils
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobOpenUtils
import
com.base.filerecoveryrecyclebin.ads.max.AdMaxInit.initAdMax
import
com.base.filerecoveryrecyclebin.ads.max.AdMaxInterstitialUtils
import
com.base.filerecoveryrecyclebin.ads.max.AdMaxNativeUtils
import
com.base.filerecoveryrecyclebin.ads.max.AdMaxOpenUtils
import
com.base.filerecoveryrecyclebin.help.BaseApplication
import
com.base.filerecoveryrecyclebin.help.ConfigHelper
import
com.google.android.gms.ads.MobileAds
import
java.util.concurrent.atomic.AtomicBoolean
object
AdmobMaxHelper
{
private
val
TAG
=
"AdmobMaxHelper"
var
isAdInit
=
AtomicBoolean
(
false
)
fun
initAdmobMaxAd
()
{
if
(
ConfigHelper
.
admobTrueMaxFlase
)
{
if
(!
isAdInit
.
get
())
{
MobileAds
.
initialize
(
BaseApplication
.
context
)
{
initializationStatus
->
isAdInit
.
set
(
true
)
}
}
}
else
{
if
(!
isAdInit
.
get
())
{
BaseApplication
.
context
.
initAdMax
()
}
}
}
fun
isOpenAdLoaded
():
Boolean
{
return
if
(
ConfigHelper
.
admobTrueMaxFlase
)
{
AdmobOpenUtils
.
isOpenAdLoaded
()
}
else
{
AdMaxOpenUtils
.
isOpenAdLoaded
()
}
}
fun
admobMaxShowInterstitialAd
(
activity
:
Activity
,
onHidden
:
(()
->
Unit
)?
=
null
)
{
if
(
ConfigHelper
.
admobTrueMaxFlase
)
{
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/ads/AdmobCommonUtils.kt
→
app/src/main/java/com/base/filerecoveryrecyclebin/ads/
admob/
AdmobCommonUtils.kt
View file @
145e98e1
package
com.base.filerecoveryrecyclebin.ads
package
com.base.filerecoveryrecyclebin.ads
.admob
import
com.base.filerecoveryrecyclebin.ads.AdDisplayUtils
import
com.base.filerecoveryrecyclebin.utils.ActivityManagerUtils
object
AdmobCommonUtils
{
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/ads/admob/AdmobInterstitialUtils.kt
View file @
145e98e1
...
...
@@ -8,7 +8,7 @@ import android.widget.Toast
import
com.base.filerecoveryrecyclebin.BuildConfig
import
com.base.filerecoveryrecyclebin.R
import
com.base.filerecoveryrecyclebin.ads.AdDisplayUtils
import
com.base.filerecoveryrecyclebin.ads.AdmobCommonUtils.isMultiClick
import
com.base.filerecoveryrecyclebin.ads.
admob.
AdmobCommonUtils.isMultiClick
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobEvent.clickAd
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobEvent.pullAd
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobEvent.showAd
...
...
@@ -70,7 +70,7 @@ object AdmobInterstitialUtils {
return
}
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
())
{
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
"interAd"
))
{
onHidden
?.
invoke
()
return
}
...
...
@@ -87,7 +87,7 @@ object AdmobInterstitialUtils {
onLoad
?.
invoke
()
return
}
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
())
{
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
""
))
{
onLoad
?.
invoke
()
return
}
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/ads/admob/AdmobNativeUtils.kt
View file @
145e98e1
...
...
@@ -5,7 +5,7 @@ import android.view.ViewGroup
import
androidx.core.view.isVisible
import
com.base.filerecoveryrecyclebin.R
import
com.base.filerecoveryrecyclebin.ads.AdDisplayUtils
import
com.base.filerecoveryrecyclebin.ads.AdmobCommonUtils.isMultiClick
import
com.base.filerecoveryrecyclebin.ads.
admob.
AdmobCommonUtils.isMultiClick
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobEvent.clickAd
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobEvent.pullAd
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobEvent.showAd
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/ads/admob/AdmobOpenUtils.kt
View file @
145e98e1
...
...
@@ -2,7 +2,7 @@ package com.base.filerecoveryrecyclebin.ads.admob
import
android.app.Activity
import
com.base.filerecoveryrecyclebin.ads.AdDisplayUtils
import
com.base.filerecoveryrecyclebin.ads.AdmobCommonUtils.isMultiClick
import
com.base.filerecoveryrecyclebin.ads.
admob.
AdmobCommonUtils.isMultiClick
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobEvent.clickAd
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobEvent.pullAd
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobEvent.showAd
...
...
@@ -32,7 +32,7 @@ object AdmobOpenUtils {
onLoad
?.
invoke
(
1
)
return
}
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
())
{
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
"openAd"
))
{
onLoad
?.
invoke
(
2
)
return
}
...
...
@@ -69,7 +69,7 @@ object AdmobOpenUtils {
if
(
activity
.
isFinishing
||
activity
.
isDestroyed
)
{
return
}
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
())
{
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
"openAd"
))
{
onHidden
?.
invoke
(
1
)
return
}
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/ads/max/AdMaxEvent.kt
View file @
145e98e1
package
com.base.
datarecovery
.ads.max
package
com.base.
filerecoveryrecyclebin
.ads.max
import
android.app.Activity
import
android.os.Bundle
import
com.applovin.mediation.MaxAd
import
com.applovin.mediation.MaxAdRevenueListener
import
com.applovin.sdk.AppLovinSdk
import
com.base.filerecoveryrecyclebin.help.BaseApplication
import
com.base.filerecoveryrecyclebin.utils.EventUtils
import
com.base.filerecoveryrecyclebin.utils.LogEx
import
com.facebook.FacebookSdk
import
com.google.firebase.analytics.FirebaseAnalytics
import
org.json.JSONObject
object
AdMaxEvent
{
fun
pullAd
(
ad
:
MaxAd
?,
adUnit
:
String
,
error
:
String
?
=
null
,
reqId
:
String
?
=
null
)
{
fun
pullAd
(
ad
:
MaxAd
?,
adUnit
:
String
,
error
:
String
?
=
null
,
reqId
:
String
?
=
null
,
code
:
Int
?
=
null
)
{
val
obj
=
JSONObject
()
obj
.
put
(
"UnitId"
,
ad
?.
adUnitId
)
obj
.
put
(
"ad_unit"
,
adUnit
)
...
...
@@ -50,15 +50,15 @@ object AdMaxEvent {
obj
.
put
(
"networkplacement"
,
ad
?.
networkPlacement
)
obj
.
put
(
"latency"
,
ad
?.
requestLatencyMillis
)
obj
.
put
(
"valueMicros"
,
ad
?.
revenue
)
if
(!
adUnit
.
equals
(
"nativeAd"
))
{
if
(!
adUnit
.
equals
(
"nativeAd"
))
{
EventUtils
.
event
(
"ad_click"
,
ext
=
obj
)
}
else
{
}
else
{
EventUtils
.
event
(
"big_imgad_click"
,
ext
=
obj
)
}
}
fun
showAd
(
ad
:
MaxAd
?,
adUnit
:
String
)
{
fun
showAd
(
ad
:
MaxAd
?,
adUnit
:
String
,
activity
:
String
?
)
{
val
obj
=
JSONObject
()
obj
.
put
(
"UnitId"
,
ad
?.
adUnitId
)
obj
.
put
(
"ad_unit"
,
adUnit
)
...
...
@@ -71,9 +71,12 @@ object AdMaxEvent {
obj
.
put
(
"networkplacement"
,
ad
?.
networkPlacement
)
obj
.
put
(
"latency"
,
ad
?.
requestLatencyMillis
)
obj
.
put
(
"valueMicros"
,
ad
?.
revenue
)
if
(!
adUnit
.
equals
(
"nativeAd"
)){
obj
.
put
(
"from"
,
activity
)
obj
.
put
(
"mediation"
,
"applovin"
)
LogEx
.
logDebug
(
"glc"
,
"from: $activity"
)
if
(
adUnit
!=
"nativeAd"
)
{
EventUtils
.
event
(
"ad_show"
,
ext
=
obj
)
}
else
{
}
else
{
EventUtils
.
event
(
"big_img_show"
,
ext
=
obj
)
}
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/ads/max/AdMaxInit.kt
View file @
145e98e1
...
...
@@ -3,6 +3,7 @@ import android.content.Context
import
com.applovin.sdk.AppLovinMediationProvider
import
com.applovin.sdk.AppLovinSdk
import
com.applovin.sdk.AppLovinSdkInitializationConfiguration
import
com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper.isAdInit
import
com.base.filerecoveryrecyclebin.utils.LogEx
import
com.google.android.gms.ads.identifier.AdvertisingIdClient
import
java.util.Collections
...
...
@@ -12,7 +13,6 @@ import java.util.concurrent.atomic.AtomicBoolean
object
AdMaxInit
{
private
val
TAG
=
"AdMaxInit"
var
isAdMaxInit
=
AtomicBoolean
(
false
)
var
maxInitAction
:
(()
->
Unit
)?
=
null
fun
Context
.
initAdMax
()
{
...
...
@@ -35,7 +35,7 @@ object AdMaxInit {
val
sdk
=
AppLovinSdk
.
getInstance
(
this
)
sdk
.
initialize
(
initConfigBuilder
.
build
())
{
LogEx
.
logDebug
(
TAG
,
"max init"
)
isAd
Max
Init
.
set
(
true
)
isAdInit
.
set
(
true
)
maxInitAction
?.
invoke
()
}
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/ads/max/AdMaxInterstitialUtils.kt
View file @
145e98e1
...
...
@@ -6,9 +6,9 @@ import com.applovin.mediation.MaxAd
import
com.applovin.mediation.MaxAdListener
import
com.applovin.mediation.MaxError
import
com.applovin.mediation.ads.MaxInterstitialAd
import
com.base.datarecovery.ads.max.AdMaxEvent
import
com.base.filerecoveryrecyclebin.R
import
com.base.filerecoveryrecyclebin.ads.AdDisplayUtils
import
com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper.isAdInit
import
com.base.filerecoveryrecyclebin.help.ConfigHelper
import
com.base.filerecoveryrecyclebin.utils.EventUtils
import
com.base.filerecoveryrecyclebin.utils.LogEx
...
...
@@ -28,53 +28,57 @@ object AdMaxInterstitialUtils {
@SuppressLint
(
"StaticFieldLeak"
)
private
var
customDialog
:
CustomDialog
?
=
null
private
var
activityString
:
String
=
""
private
fun
setListener
(
activity
:
Activity
)
{
activityString
=
activity
::
class
.
java
.
toString
().
split
(
"."
).
last
()
if
(
interstitialAd
==
null
)
{
val
reqId
=
UUID
.
randomUUID
().
toString
()
val
obj
=
JSONObject
()
obj
.
put
(
"req_id"
,
reqId
)
obj
.
put
(
"ad_type"
,
"interAd"
)
EventUtils
.
event
(
"ad_pull_start"
,
ext
=
obj
)
interstitialAd
=
MaxInterstitialAd
(
ConfigHelper
.
interAdMaxId
,
activity
)
interstitialAd
?.
setListener
(
object
:
MaxAdListener
{
override
fun
onAdLoaded
(
p0
:
MaxAd
)
{
LogEx
.
logDebug
(
TAG
,
"onAdLoaded"
)
loadingListener
?.
invoke
()
loadingListener
=
null
interLoadTime
=
System
.
currentTimeMillis
()
retryAttempt
=
0
val
reqId
=
UUID
.
randomUUID
().
toString
()
AdMaxEvent
.
pullAd
(
p0
,
"interAd"
,
reqId
=
reqId
)
}
override
fun
onAdLoadFailed
(
p0
:
String
,
p1
:
MaxError
)
{
LogEx
.
logDebug
(
TAG
,
"onAdLoadFailed"
)
AdMaxEvent
.
pullAd
(
null
,
"interAd"
,
reqId
=
reqId
)
val
reqId
=
UUID
.
randomUUID
().
toString
()
AdMaxEvent
.
pullAd
(
null
,
"interAd"
,
reqId
=
reqId
,
error
=
p1
.
message
,
code
=
p1
.
code
)
AdDisplayUtils
.
getInstance
().
incrementAdRequestFailCount
()
retryAttempt
++
LogEx
.
logDebug
(
TAG
,
"onAdLoadFailed retryAttempt=$retryAttempt"
)
if
(
retryAttempt
==
1
)
{
customDialog
?.
dismiss
()
onHidden
?.
invoke
()
onHidden
=
null
retryAttempt
=
0
}
else
{
// interstitialAd?.loadAd()
}
}
override
fun
onAdDisplayed
(
p0
:
MaxAd
)
{
LogEx
.
logDebug
(
TAG
,
"onAdDisplayed"
)
AdDisplayUtils
.
getInstance
().
incrementAdDisplayCount
()
AdMaxEvent
.
showAd
(
p0
,
"interAd"
)
AdMaxEvent
.
showAd
(
p0
,
"interAd"
,
activityString
)
}
override
fun
onAdHidden
(
p0
:
MaxAd
)
{
LogEx
.
logDebug
(
TAG
,
"onAdHidden"
)
onHidden
?.
invoke
()
interstitialAd
?.
loadAd
()
onHidden
=
null
AdMaxOpenUtils
.
loadAppOpenAd
(
activity
)
loadInterstitialAd
(
activity
)
}
override
fun
onAdClicked
(
p0
:
MaxAd
)
{
LogEx
.
logDebug
(
TAG
,
"onAdClicked"
)
LogEx
.
logDebug
(
TAG
,
"onAdClicked
activity=$activityString
"
)
AdDisplayUtils
.
getInstance
().
incrementAdClickCount
()
AdMaxEvent
.
clickAd
(
p0
,
"interAd"
)
}
...
...
@@ -85,7 +89,7 @@ object AdMaxInterstitialUtils {
val
obj2
=
JSONObject
()
obj2
.
put
(
"code"
,
p1
.
code
)
obj2
.
put
(
"reason"
,
p1
.
message
)
obj2
.
put
(
"ad_unit"
,
"
open
Ad"
)
obj2
.
put
(
"ad_unit"
,
"
inter
Ad"
)
EventUtils
.
event
(
"ad_show_error"
,
ext
=
obj2
)
}
})
...
...
@@ -93,41 +97,45 @@ object AdMaxInterstitialUtils {
}
}
fun
showInterstitialAd
(
activity
:
Activity
,
onHidden
:
(()
->
Unit
)?
=
null
)
{
fun
showInterstitialAd
(
activity
:
Activity
,
onHidden
:
(()
->
Unit
)?
=
null
)
{
setListener
(
activity
)
if
(
activity
.
isFinishing
||
activity
.
isDestroyed
)
{
return
}
val
obj1
=
JSONObject
()
obj1
.
put
(
"ad_unit"
,
"interAd"
)
EventUtils
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
if
(
isAdExpired
())
{
val
obj2
=
JSONObject
()
obj2
.
put
(
"ad_unit"
,
"interAd"
)
EventUtils
.
event
(
"ad_expire"
,
ext
=
obj2
)
interstitialAd
?.
loadAd
(
)
loadInterstitialAd
(
activity
)
onHidden
?.
invoke
()
return
}
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
())
{
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
"interAd"
))
{
onHidden
?.
invoke
()
return
}
AdMaxInterstitialUtils
.
onHidden
=
onHidden
LogEx
.
logDebug
(
TAG
,
"showInterstitialAd,展示插屏广告"
)
val
obj1
=
JSONObject
()
obj1
.
put
(
"ad_unit"
,
"interAd"
)
EventUtils
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
AdMaxInterstitialUtils
.
onHidden
=
onHidden
if
(
interstitialAd
?.
isReady
==
true
)
{
LogEx
.
logDebug
(
TAG
,
"
isReady=true
"
)
interstitialAd
?.
showAd
()
LogEx
.
logDebug
(
TAG
,
"
有缓存直接播放。
"
)
interstitialAd
?.
showAd
(
activity
)
}
else
{
interstitialAd
?.
loadAd
()
LogEx
.
logDebug
(
TAG
,
"展示广告时,没有缓存,需要拉取。"
)
val
obj2
=
JSONObject
()
obj2
.
put
(
"reason"
,
"no ad"
)
obj2
.
put
(
"ad_unit"
,
"interAd"
)
EventUtils
.
event
(
"ad_show_error"
,
ext
=
obj2
)
loadInterstitialAd
(
activity
)
LogEx
.
logDebug
(
TAG
,
"isReady=false"
)
showAdDialogAndLoadInterstitial
(
activity
)
}
...
...
@@ -149,8 +157,7 @@ object AdMaxInterstitialUtils {
}
loadingListener
=
{
customDialog
?.
dismiss
()
interstitialAd
?.
showAd
()
loadingListener
=
null
interstitialAd
?.
showAd
(
activity
)
}
}
...
...
@@ -158,15 +165,19 @@ object AdMaxInterstitialUtils {
fun
loadInterstitialAd
(
activity
:
Activity
)
{
setListener
(
activity
)
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
())
{
LogEx
.
logDebug
(
TAG
,
"!shouldShowAd"
)
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
"interAd"
))
{
return
}
if
(
interstitialAd
?.
isReady
==
true
)
{
return
}
if
(
AdMaxInit
.
isAdMax
Init
.
get
())
{
if
(
isAd
Init
.
get
())
{
LogEx
.
logDebug
(
TAG
,
"loadInterstitialAd"
)
val
reqId
=
UUID
.
randomUUID
().
toString
()
val
obj
=
JSONObject
()
obj
.
put
(
"req_id"
,
reqId
)
obj
.
put
(
"ad_type"
,
"interAd"
)
EventUtils
.
event
(
"ad_pull_start"
,
ext
=
obj
)
interstitialAd
?.
loadAd
()
}
}
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/ads/max/AdMaxNativeUtils.kt
View file @
145e98e1
...
...
@@ -10,10 +10,9 @@ import com.applovin.mediation.nativeAds.MaxNativeAdListener
import
com.applovin.mediation.nativeAds.MaxNativeAdLoader
import
com.applovin.mediation.nativeAds.MaxNativeAdView
import
com.applovin.mediation.nativeAds.MaxNativeAdViewBinder
import
com.base.datarecovery.ads.max.AdMaxEvent
import
com.base.filerecoveryrecyclebin.R
import
com.base.filerecoveryrecyclebin.ads.AdDisplayUtils
import
com.base.filerecoveryrecyclebin.ads.AdmobCommonUtils
import
com.base.filerecoveryrecyclebin.ads.
admob.
AdmobCommonUtils
import
com.base.filerecoveryrecyclebin.help.BaseApplication
import
com.base.filerecoveryrecyclebin.help.ConfigHelper
import
com.base.filerecoveryrecyclebin.utils.EventUtils
...
...
@@ -28,6 +27,7 @@ object AdMaxNativeUtils {
private
var
nativeLoadTime
=
Long
.
MAX_VALUE
private
var
haveSetAdListener
:
Boolean
=
false
private
var
loadingListener
:
(()
->
Unit
)?
=
null
private
var
activityString
:
String
=
""
private
fun
setNativeAdListener
()
{
if
(!
haveSetAdListener
)
{
//加载展示监听
...
...
@@ -109,14 +109,10 @@ object AdMaxNativeUtils {
}
fun
showNativeAd
(
activity
:
Activity
,
parent
:
ViewGroup
,
layout
:
Int
)
{
fun
showNativeAd
(
activity
:
Activity
,
parent
:
ViewGroup
,
layout
:
Int
)
{
activityString
=
activity
::
class
.
java
.
toString
().
split
(
"."
).
last
()
setNativeAdListener
()
val
obj
=
JSONObject
()
obj
.
put
(
"ad_unit"
,
"NativeAd"
)
EventUtils
.
event
(
"ad_prepare_show"
,
ext
=
obj
)
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
())
{
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
"nativeAd"
))
{
return
}
loadingListener
=
{
...
...
@@ -133,7 +129,7 @@ object AdMaxNativeUtils {
nativeAdLoader
.
render
(
adView
,
nativeAd
)
parent
.
removeAllViews
()
parent
.
addView
(
adView
)
nativeAd
?.
let
{
AdMaxEvent
.
showAd
(
it
,
"nativeAd"
)
}
nativeAd
?.
let
{
AdMaxEvent
.
showAd
(
it
,
"nativeAd"
,
activityString
)
}
AdDisplayUtils
.
getInstance
().
incrementAdDisplayCount
()
}
}
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/ads/max/AdMaxOpenUtils.kt
View file @
145e98e1
package
com.base.filerecoveryrecyclebin.ads.max
import
android.app.Activity
import
android.content.Context
import
com.applovin.mediation.MaxAd
import
com.applovin.mediation.MaxAdListener
import
com.applovin.mediation.MaxError
import
com.applovin.mediation.ads.MaxAppOpenAd
import
com.base.datarecovery.ads.max.AdMaxEvent
import
com.base.filerecoveryrecyclebin.ads.AdDisplayUtils
import
com.base.filerecoveryrecyclebin.ads.AdmobCommonUtils
import
com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobCommonUtils
import
com.base.filerecoveryrecyclebin.help.ConfigHelper
import
com.base.filerecoveryrecyclebin.utils.EventUtils
import
com.base.filerecoveryrecyclebin.utils.LogEx
import
org.json.JSONObject
import
java.util.UUID
object
AdMaxOpenUtils
{
private
val
TAG
=
"
A
dMaxOpenUtils"
private
val
TAG
=
"dMaxOpenUtils"
private
var
appOpenAd
:
MaxAppOpenAd
?
=
null
private
var
openLoadTime
=
Long
.
MAX_VALUE
private
var
onHidden
:
(()
->
Unit
)?
=
null
private
var
loadingListener
:
(()
->
Unit
)?
=
null
private
var
activityString
=
""
private
fun
setListener
(
context
:
Context
)
{
private
fun
setListener
(
activity
:
Activity
)
{
activityString
=
activity
::
class
.
java
.
toString
().
split
(
"."
).
last
()
if
(
appOpenAd
==
null
)
{
appOpenAd
=
MaxAppOpenAd
(
ConfigHelper
.
openAdMaxId
,
context
)
appOpenAd
=
MaxAppOpenAd
(
ConfigHelper
.
openAdMaxId
,
activity
)
appOpenAd
?.
setListener
(
object
:
MaxAdListener
{
override
fun
onAdLoaded
(
p0
:
MaxAd
)
{
LogEx
.
logDebug
(
TAG
,
"
onAdLoaded
"
)
LogEx
.
logDebug
(
TAG
,
"
广告拉取成功
"
)
openLoadTime
=
System
.
currentTimeMillis
()
loadingListener
?.
invoke
()
loadingListener
=
null
AdMaxEvent
.
pullAd
(
p0
,
"openAd"
)
}
override
fun
onAdLoadFailed
(
p0
:
String
,
p1
:
MaxError
)
{
LogEx
.
logDebug
(
TAG
,
"onAdLoadFailed:"
+
p1
.
message
.
toString
())
LogEx
.
logDebug
(
TAG
,
"广告拉取失败了,onAdLoadFailed:"
+
p1
.
message
.
toString
())
LogEx
.
logDebug
(
TAG
,
"广告拉取失败了,onAdLoadFailed:"
+
p0
)
LogEx
.
logDebug
(
TAG
,
"广告拉取失败了,onAdLoadFailed:"
+
p1
.
code
)
loadingListener
=
null
onHidden
?.
invoke
()
onHidden
=
null
AdDisplayUtils
.
getInstance
().
incrementAdRequestFailCount
()
AdMaxEvent
.
pullAd
(
null
,
"openAd"
)
val
reqId
=
UUID
.
randomUUID
().
toString
()
AdMaxEvent
.
pullAd
(
null
,
"openAd"
,
reqId
=
reqId
,
error
=
p1
.
message
,
code
=
p1
.
code
)
}
override
fun
onAdDisplayed
(
p0
:
MaxAd
)
{
AdDisplayUtils
.
getInstance
().
incrementAdDisplayCount
()
AdMaxEvent
.
showAd
(
p0
,
"openAd"
)
AdMaxEvent
.
showAd
(
p0
,
"openAd"
,
activityString
)
}
override
fun
onAdHidden
(
p0
:
MaxAd
)
{
onHidden
?.
invoke
()
appOpenAd
?.
loadAd
()
onHidden
=
null
loadAppOpenAd
(
activity
)
loadingListener
=
null
}
override
fun
onAdClicked
(
p0
:
MaxAd
)
{
AdDisplayUtils
.
getInstance
().
incrementAdClickCount
()
// com.base.datarecovery.ads.max.AdMaxEvent.clickAd(appOpenAd, "openAd")
AdmobCommonUtils
.
isMultiClick
(
appOpenAd
)
AdMaxEvent
.
clickAd
(
p0
,
"openAd"
)
}
...
...
@@ -63,7 +70,8 @@ object AdMaxOpenUtils {
override
fun
onAdDisplayFailed
(
p0
:
MaxAd
,
p1
:
MaxError
)
{
LogEx
.
logDebug
(
TAG
,
"onAdDisplayFailed"
)
onHidden
?.
invoke
()
appOpenAd
?.
loadAd
()
onHidden
=
null
loadAppOpenAd
(
activity
)
val
obj
=
JSONObject
()
obj
.
put
(
"code"
,
p1
.
code
)
obj
.
put
(
"reason"
,
p1
.
message
)
...
...
@@ -76,7 +84,11 @@ object AdMaxOpenUtils {
}
}
fun
showAppOpenAd
(
activity
:
Activity
,
loaded
:
(()
->
Unit
)?
=
null
,
onHidden
:
(()
->
Unit
)?
=
null
)
{
fun
showAppOpenAd
(
activity
:
Activity
,
loaded
:
(()
->
Unit
)?
=
null
,
onHidden
:
(()
->
Unit
)?
=
null
)
{
setListener
(
activity
)
...
...
@@ -84,7 +96,7 @@ object AdMaxOpenUtils {
return
}
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
())
{
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
"openAd"
))
{
LogEx
.
logDebug
(
TAG
,
"!shouldShowAd"
)
onHidden
?.
invoke
()
return
...
...
@@ -99,27 +111,31 @@ object AdMaxOpenUtils {
appOpenAd
?.
loadAd
()
}
if
(!
Ad
MaxInit
.
isAdMax
Init
.
get
())
{
if
(!
Ad
mobMaxHelper
.
isAd
Init
.
get
())
{
onHidden
?.
invoke
()
return
}
LogEx
.
logDebug
(
TAG
,
"showAppOpenAd continue"
)
LogEx
.
logDebug
(
TAG
,
"showAppOpenAd"
)
val
obj1
=
JSONObject
()
obj1
.
put
(
"ad_unit"
,
"openAd"
)
EventUtils
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
AdMaxOpenUtils
.
onHidden
=
onHidden
if
(
appOpenAd
?.
isReady
==
true
)
{
LogEx
.
logDebug
(
TAG
,
"
isReady=false
"
)
LogEx
.
logDebug
(
TAG
,
"
广告准备好了,展示广告
"
)
appOpenAd
?.
showAd
()
}
else
{
val
obj
=
JSONObject
()
obj
.
put
(
"reason"
,
"no ad"
)
obj
.
put
(
"ad_unit"
,
"openAd"
)
EventUtils
.
event
(
"ad_show_error"
,
ext
=
obj
)
LogEx
.
logDebug
(
TAG
,
"展示时候,发现广告需要拉取"
)
appOpenAd
?.
loadAd
()
loadingListener
=
{
LogEx
.
logDebug
(
TAG
,
"loadingListener callback"
)
loaded
?.
invoke
()
val
obj1
=
JSONObject
()
obj1
.
put
(
"ad_unit"
,
"openAd"
)
EventUtils
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
appOpenAd
?.
showAd
()
loadingListener
=
null
}
...
...
@@ -129,19 +145,28 @@ object AdMaxOpenUtils {
fun
loadAppOpenAd
(
activity
:
Activity
)
{
setListener
(
activity
)
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
())
{
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
"openAd"
))
{
LogEx
.
logDebug
(
TAG
,
"!shouldShowAd"
)
return
}
if
(
appOpenAd
?.
isReady
==
true
)
{
LogEx
.
logDebug
(
TAG
,
"appOpenAd?.isReady == true"
)
return
}
if
(
AdMaxInit
.
isAdMaxInit
.
get
())
{
LogEx
.
logDebug
(
TAG
,
"appOpenAd load"
)
if
(
AdmobMaxHelper
.
isAdInit
.
get
())
{
val
reqId
=
UUID
.
randomUUID
().
toString
()
val
obj
=
JSONObject
()
obj
.
put
(
"req_id"
,
reqId
)
obj
.
put
(
"ad_type"
,
"openAd"
)
EventUtils
.
event
(
"ad_pull_start"
,
ext
=
obj
)
appOpenAd
?.
loadAd
()
}
}
fun
isOpenAdLoaded
():
Boolean
{
return
appOpenAd
?.
isReady
==
true
}
}
app/src/main/java/com/base/filerecoveryrecyclebin/fragment/HomeFragment.kt
View file @
145e98e1
...
...
@@ -3,6 +3,7 @@ package com.base.filerecoveryrecyclebin.fragment
import
android.animation.ValueAnimator
import
android.content.Intent
import
com.base.filerecoveryrecyclebin.activity.SettingActivity
import
com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
import
com.base.filerecoveryrecyclebin.activity.recovery.FileScanResultActivity
import
com.base.filerecoveryrecyclebin.activity.repeat.RepeatAnimationActivity
import
com.base.filerecoveryrecyclebin.activity.screenshot.ScreenShotAnimationActivity
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/service/StayNotificationService.kt
View file @
145e98e1
...
...
@@ -21,6 +21,7 @@ import androidx.core.app.NotificationCompat
import
androidx.core.graphics.drawable.IconCompat
import
com.base.filerecoveryrecyclebin.R
import
com.base.filerecoveryrecyclebin.activity.MainActivity
import
com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
import
com.base.filerecoveryrecyclebin.activity.recovery.FileScanResultActivity
import
com.base.filerecoveryrecyclebin.activity.recyclebin.MediaContentObserver
import
com.base.filerecoveryrecyclebin.activity.recyclebin.MyFileObserver
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/view/DialogViews.kt
View file @
145e98e1
...
...
@@ -14,6 +14,7 @@ import android.view.View
import
android.view.WindowManager
import
androidx.lifecycle.LifecycleCoroutineScope
import
com.base.filerecoveryrecyclebin.R
import
com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
import
com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils.showInterAdSp
import
com.base.filerecoveryrecyclebin.bean.RecycleBinBean
import
com.base.filerecoveryrecyclebin.databinding.DialogCameraSettingBinding
...
...
@@ -333,7 +334,7 @@ object DialogViews {
dialog
.
window
?.
setBackgroundDrawableResource
(
android
.
R
.
color
.
transparent
)
val
lp
:
WindowManager
.
LayoutParams
?
=
dialog
.
window
?.
attributes
val
lp
:
WindowManager
.
LayoutParams
?
=
dialog
.
window
?.
attributes
lp
?.
alpha
=
0f
lp
?.
dimAmount
=
0.0f
window
.
setAttributes
(
lp
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment