Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
D
Data Recovery White
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
Data Recovery White
Commits
86b85cda
Commit
86b85cda
authored
Jul 16, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of gitlab.huolea.com:koko/data-recovery-white
parents
a1cf9db7
f576c13a
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
135 additions
and
39 deletions
+135
-39
MyApplication.kt
app/src/main/java/com/base/datarecovery/MyApplication.kt
+1
-1
ResultActivity.kt
...ain/java/com/base/datarecovery/activity/ResultActivity.kt
+14
-4
SplashActivity.kt
...ain/java/com/base/datarecovery/activity/SplashActivity.kt
+2
-0
AdMaxEvent.kt
...src/main/java/com/base/datarecovery/ads/max/AdMaxEvent.kt
+107
-33
AdMaxInterstitialUtils.kt
...a/com/base/datarecovery/ads/max/AdMaxInterstitialUtils.kt
+10
-0
AdMaxOpenUtils.kt
...main/java/com/base/datarecovery/ads/max/AdMaxOpenUtils.kt
+1
-1
No files found.
app/src/main/java/com/base/datarecovery/MyApplication.kt
View file @
86b85cda
...
...
@@ -5,6 +5,7 @@ import android.app.Activity
import
android.content.Intent
import
android.os.Bundle
import
android.text.TextUtils
import
android.util.Log
import
com.base.datarecovery.activity.SplashActivity
import
com.base.datarecovery.ads.AdmobMaxHelper
import
com.base.datarecovery.ads.admob.AdmobOpenUtils
...
...
@@ -67,7 +68,6 @@ class MyApplication : BaseApplication() {
}
else
{
initAdMax
()
}
InstallHelps
.
init
()
MainScope
().
launch
(
Dispatchers
.
Main
)
{
val
deferred
=
async
(
Dispatchers
.
IO
)
{
...
...
app/src/main/java/com/base/datarecovery/activity/ResultActivity.kt
View file @
86b85cda
...
...
@@ -103,7 +103,8 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
}
else
{
binding
.
tvInfo
.
text
=
"No junk files found."
}
AppPreferences
.
getInstance
().
put
(
"last_use_junk_cleaner"
,
System
.
currentTimeMillis
())
AppPreferences
.
getInstance
()
.
put
(
"last_use_junk_cleaner"
,
System
.
currentTimeMillis
())
}
else
->
{}
...
...
@@ -116,17 +117,26 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
onBackPressedDispatcher
.
addCallback
(
object
:
OnBackPressedCallback
(
true
)
{
override
fun
handleOnBackPressed
()
{
AdmobMaxHelper
.
admobMaxShowInterstitialAd
(
this
@ResultActivity
){
val
s
=
AppPreferences
.
getInstance
().
getString
(
"isShowBackIntAd"
,
"0"
).
toIntOrNull
()
?:
0
if
(
s
==
1
)
{
AdmobMaxHelper
.
admobMaxShowInterstitialAd
(
this
@ResultActivity
)
{
finishToMain
()
}
}
else
{
finishToMain
()
}
}
})
binding
.
ivBack
.
setOnClickListener
{
onBackPressedDispatcher
.
onBackPressed
()
}
AdmobNativeUtils
.
showNativeAd
(
this
@ResultActivity
,
binding
.
flAd
,
R
.
layout
.
layout_native_custom_white
)
AdmobNativeUtils
.
showNativeAd
(
this
@ResultActivity
,
binding
.
flAd
,
R
.
layout
.
layout_native_custom_white
)
}
override
fun
onDestroy
()
{
...
...
app/src/main/java/com/base/datarecovery/activity/SplashActivity.kt
View file @
86b85cda
...
...
@@ -7,6 +7,7 @@ import android.net.Uri
import
android.text.SpannableString
import
android.text.Spanned
import
android.text.style.UnderlineSpan
import
android.util.Log
import
android.view.View
import
androidx.lifecycle.lifecycleScope
import
com.base.datarecovery.MyApplication
...
...
@@ -87,6 +88,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
}
else
{
LogEx
.
logDebug
(
TAG
,
"load max"
)
maxInitAction
=
{
Log
.
d
(
TAG
,
"max init suc"
)
AdMaxOpenUtils
.
loadAppOpenAd
(
this
)
AdMaxInterstitialUtils
.
loadInterstitialAd
(
this
)
}
...
...
app/src/main/java/com/base/datarecovery/ads/max/AdMaxEvent.kt
View file @
86b85cda
package
com.base.datarecovery.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.datarecovery.help.BaseApplication
import
com.base.datarecovery.utils.EventUtils
import
com.facebook.FacebookSdk
import
com.google.firebase.analytics.FirebaseAnalytics
import
com.google.firebase.analytics.ktx.analytics
import
com.google.firebase.ktx.Firebase
import
org.json.JSONObject
object
AdMaxEvent
{
fun
clickAd
(
nativeAd
:
MaxAd
,
adUnit
:
String
)
{
// val response = responseInfo?.adapterResponses?.getOrNull(0)
fun
pullAd
(
ad
:
MaxAd
?,
adUnit
:
String
,
error
:
String
?
=
null
,
reqId
:
String
?
=
null
)
{
val
obj
=
JSONObject
()
// obj.put("source", response?.adSourceName)
obj
.
put
(
"source"
,
nativeAd
.
dspName
)
obj
.
put
(
"UnitId"
,
ad
?.
adUnitId
)
obj
.
put
(
"ad_unit"
,
adUnit
)
val
credentials
=
mapOf
(
"placementid"
to
nativeAd
.
placement
,
"appid"
to
nativeAd
.
adUnitId
,
// "pubid" to
obj
.
put
(
"creativeId"
,
ad
?.
creativeId
)
// obj.put("credentials", credentials.toString())
// obj.put("session_id", responseInfo?.responseId)
// obj.put("networkname", responseInfo?.mediationAdapterClassName)
obj
.
put
(
"networkname"
,
nativeAd
.
networkName
)
if
(
adUnit
!=
"nativeAd"
)
{
EventUtils
.
event
(
"ad_click"
,
ext
=
obj
)
obj
.
put
(
"req_id"
,
reqId
)
obj
.
put
(
"status"
,
if
(
ad
==
null
)
"0"
else
"1"
)
obj
.
put
(
"networkname"
,
ad
?.
networkName
)
obj
.
put
(
"placement"
,
ad
?.
placement
)
obj
.
put
(
"networkplacement"
,
ad
?.
networkPlacement
)
obj
.
put
(
"requestLatencyMillis"
,
ad
?.
requestLatencyMillis
)
obj
.
put
(
"valueMicros"
,
ad
?.
revenue
?.
times
(
1000000
))
if
(
error
==
null
)
{
obj
.
put
(
"status"
,
"1"
)
}
else
{
EventUtils
.
event
(
"bigimage_ad_click"
,
ext
=
obj
)
obj
.
put
(
"errMsg"
,
error
)
obj
.
put
(
"status"
,
"2"
)
}
EventUtils
.
event
(
"ad_pull"
,
ext
=
obj
)
}
fun
showAd
(
nativeAd
:
MaxAd
,
adUnit
:
String
,
activity
:
Activity
?
=
null
)
{
// val response = responseInfo?.adapterResponses?.getOrNull(0)
fun
clickAd
(
ad
:
MaxAd
?,
adUnit
:
String
)
{
val
obj
=
JSONObject
()
// obj.put("source", response?.adSourceName
)
obj
.
put
(
"UnitId"
,
ad
?.
adUnitId
)
obj
.
put
(
"ad_unit"
,
adUnit
)
obj
.
put
(
"networkname"
,
nativeAd
.
networkName
)
// val credentials = mapOf(
// "placementid" to response?.credentials?.get("placementid"),
// "appid" to response?.credentials?.get("appid"),
// "pubid" to response?.credentials?.get("pubid")
// )
// obj.put("credentials", credentials.toString())
// obj.put("session_id", responseInfo?.responseId)
obj
.
put
(
"from"
,
activity
?.
javaClass
?.
simpleName
)
if
(
adUnit
!=
"nativeAd"
)
{
EventUtils
.
event
(
"ad_show"
,
ext
=
obj
)
}
else
{
EventUtils
.
event
(
"bigimage_ad_show"
,
ext
=
obj
)
obj
.
put
(
"creativeId"
,
ad
?.
creativeId
)
obj
.
put
(
"networkname"
,
ad
?.
networkName
)
obj
.
put
(
"placement"
,
ad
?.
placement
)
obj
.
put
(
"networkplacement"
,
ad
?.
networkPlacement
)
obj
.
put
(
"requestLatencyMillis"
,
ad
?.
requestLatencyMillis
)
obj
.
put
(
"valueMicros"
,
ad
?.
revenue
)
EventUtils
.
event
(
"ad_click"
,
ext
=
obj
)
}
fun
showAd
(
ad
:
MaxAd
?,
adUnit
:
String
)
{
val
obj
=
JSONObject
()
obj
.
put
(
"UnitId"
,
ad
?.
adUnitId
)
obj
.
put
(
"ad_unit"
,
adUnit
)
obj
.
put
(
"creativeId"
,
ad
?.
creativeId
)
obj
.
put
(
"networkname"
,
ad
?.
networkName
)
obj
.
put
(
"placement"
,
ad
?.
placement
)
obj
.
put
(
"networkplacement"
,
ad
?.
networkPlacement
)
obj
.
put
(
"requestLatencyMillis"
,
ad
?.
requestLatencyMillis
)
obj
.
put
(
"valueMicros"
,
ad
?.
revenue
)
EventUtils
.
event
(
"ad_show"
,
ext
=
obj
)
}
private
val
taichiPref
=
FacebookSdk
.
getApplicationContext
()
.
getSharedPreferences
(
"TaichiTroasCache"
,
0
)
private
val
taichiSharedPreferencesEditor
=
taichiPref
.
edit
()
class
EventOnPaidEventListener
:
MaxAdRevenueListener
{
override
fun
onAdRevenuePaid
(
ad
:
MaxAd
)
{
val
params
=
Bundle
()
val
currentImpressionRevenue
:
Double
=
ad
.
revenue
// In USD
val
mFirebaseAnalytics
=
FirebaseAnalytics
.
getInstance
(
BaseApplication
.
context
)
params
.
putString
(
FirebaseAnalytics
.
Param
.
AD_PLATFORM
,
"appLovin"
)
params
.
putString
(
FirebaseAnalytics
.
Param
.
AD_SOURCE
,
ad
.
networkName
)
params
.
putString
(
FirebaseAnalytics
.
Param
.
AD_FORMAT
,
ad
.
format
.
getDisplayName
())
params
.
putString
(
FirebaseAnalytics
.
Param
.
AD_UNIT_NAME
,
ad
.
adUnitId
)
params
.
putDouble
(
FirebaseAnalytics
.
Param
.
VALUE
,
currentImpressionRevenue
)
params
.
putString
(
FirebaseAnalytics
.
Param
.
CURRENCY
,
"USD"
)
mFirebaseAnalytics
.
logEvent
(
FirebaseAnalytics
.
Event
.
AD_IMPRESSION
,
params
)
mFirebaseAnalytics
.
logEvent
(
"Ad_Impression_Revenue"
,
params
)
val
previousTaichiTroasCache
=
taichiPref
.
getFloat
(
"TaichiTroasCache"
,
0f
)
val
currentTaichiTroasCache
=
previousTaichiTroasCache
+
currentImpressionRevenue
if
(
currentTaichiTroasCache
>=
0.01
)
{
val
roasbundle
=
Bundle
()
roasbundle
.
putDouble
(
FirebaseAnalytics
.
Param
.
VALUE
,
currentTaichiTroasCache
)
roasbundle
.
putString
(
FirebaseAnalytics
.
Param
.
CURRENCY
,
"USD"
)
///(Required)tROAS事件必须
mFirebaseAnalytics
.
logEvent
(
"Total_Ads_Revenue_001"
,
roasbundle
)
// 给Taichi用
taichiSharedPreferencesEditor
.
putFloat
(
"TaichiTroasCache"
,
0f
)
//重新清零,开始计算
}
else
{
taichiSharedPreferencesEditor
.
putFloat
(
"TaichiTroasCache"
,
currentTaichiTroasCache
.
toFloat
()
)
taichiSharedPreferencesEditor
.
commit
()
}
val
obj
=
JSONObject
()
val
revenue
=
ad
.
revenue
val
countryCode
=
AppLovinSdk
.
getInstance
(
BaseApplication
.
context
).
configuration
.
countryCode
val
networkName
=
ad
.
networkName
val
adUnitId
=
ad
.
adUnitId
val
adFormat
=
ad
.
format
val
placement
=
ad
.
placement
val
networkPlacement
=
ad
.
networkPlacement
obj
.
put
(
"valueMicros"
,
revenue
)
obj
.
put
(
"currencyCode"
,
countryCode
)
obj
.
put
(
"adUnitId"
,
adUnitId
)
obj
.
put
(
"networkName"
,
networkName
)
obj
.
put
(
"adFormat"
,
adFormat
)
obj
.
put
(
"placement"
,
placement
)
obj
.
put
(
"networkPlacement"
,
networkPlacement
)
EventUtils
.
event
(
"ad_price"
,
ext
=
obj
)
}
}
}
\ No newline at end of file
app/src/main/java/com/base/datarecovery/ads/max/AdMaxInterstitialUtils.kt
View file @
86b85cda
...
...
@@ -13,6 +13,7 @@ import com.base.datarecovery.utils.EventUtils
import
com.base.datarecovery.utils.LogEx
import
com.base.datarecovery.view.CustomDialog
import
org.json.JSONObject
import
java.util.UUID
import
java.util.concurrent.TimeUnit
import
kotlin.math.min
import
kotlin.math.pow
...
...
@@ -31,6 +32,12 @@ object AdMaxInterstitialUtils {
private
fun
setListener
(
activity
:
Activity
)
{
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
)
{
...
...
@@ -38,10 +45,12 @@ object AdMaxInterstitialUtils {
loadingListener
?.
invoke
()
interLoadTime
=
System
.
currentTimeMillis
()
retryAttempt
=
0
AdMaxEvent
.
pullAd
(
p0
,
"interAd"
,
reqId
=
reqId
)
}
override
fun
onAdLoadFailed
(
p0
:
String
,
p1
:
MaxError
)
{
LogEx
.
logDebug
(
TAG
,
"onAdLoadFailed"
)
AdMaxEvent
.
pullAd
(
null
,
"interAd"
,
reqId
=
reqId
)
AdDisplayUtils
.
getInstance
().
incrementAdRequestFailCount
()
retryAttempt
++
LogEx
.
logDebug
(
TAG
,
"onAdLoadFailed retryAttempt=$retryAttempt"
)
...
...
@@ -107,6 +116,7 @@ object AdMaxInterstitialUtils {
}
this
.
onHidden
=
onHidden
interstitialAd
?.
setRevenueListener
(
AdMaxEvent
.
EventOnPaidEventListener
())
if
(
interstitialAd
?.
isReady
==
true
)
{
LogEx
.
logDebug
(
TAG
,
"isReady=true"
)
interstitialAd
?.
showAd
()
...
...
app/src/main/java/com/base/datarecovery/ads/max/AdMaxOpenUtils.kt
View file @
86b85cda
...
...
@@ -32,7 +32,7 @@ object AdMaxOpenUtils {
}
override
fun
onAdLoadFailed
(
p0
:
String
,
p1
:
MaxError
)
{
LogEx
.
logDebug
(
TAG
,
"onAdLoadFailed
"
)
LogEx
.
logDebug
(
TAG
,
"onAdLoadFailed
:"
+
p1
.
message
.
toString
()
)
onHidden
?.
invoke
()
AdDisplayUtils
.
getInstance
().
incrementAdRequestFailCount
()
}
...
...
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