Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
A
appzxhy
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
appzxhy
Commits
3cb03996
Commit
3cb03996
authored
Jun 26, 2025
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[pangle]激励广告
parent
60b29712
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
242 additions
and
37 deletions
+242
-37
GlobalConfig.kt
app/src/main/java/com/base/appzxhy/GlobalConfig.kt
+20
-16
ConfigBean.kt
app/src/main/java/com/base/appzxhy/bean/config/ConfigBean.kt
+3
-3
AdsMgr.kt
app/src/main/java/com/base/appzxhy/business/ads/AdsMgr.kt
+30
-6
PangleActivity.kt
...n/java/com/base/appzxhy/business/pangle/PangleActivity.kt
+12
-0
PangleBannerMgr.kt
.../java/com/base/appzxhy/business/pangle/PangleBannerMgr.kt
+53
-0
PangleRewardMgr.kt
.../java/com/base/appzxhy/business/pangle/PangleRewardMgr.kt
+94
-0
SplashActivity.kt
...rc/main/java/com/base/appzxhy/ui/splash/SplashActivity.kt
+12
-12
activity_pangle.xml
app/src/main/res/layout/activity_pangle.xml
+18
-0
No files found.
app/src/main/java/com/base/appzxhy/GlobalConfig.kt
View file @
3cb03996
...
@@ -39,25 +39,29 @@ object GlobalConfig {
...
@@ -39,25 +39,29 @@ object GlobalConfig {
*/
*/
const
val
KEY_SOLAR
=
""
const
val
KEY_SOLAR
=
""
// admob广告位id
//
// admob广告位id
inline
val
ID_ADMOB_APPLICATION
get
()
=
if
(
BuildConfig
.
DEBUG
)
"ca-app-pub-3940256099942544~3347511713"
else
"ca-app-pub-3940256099942544~3347511713"
//
inline val ID_ADMOB_APPLICATION get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544~3347511713" else "ca-app-pub-3940256099942544~3347511713"
inline
val
ID_ADMOB_INTER
get
()
=
if
(
BuildConfig
.
DEBUG
)
"ca-app-pub-3940256099942544/1033173712"
else
"ca-app-pub-3940256099942544/1033173712"
//
inline val ID_ADMOB_INTER get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/1033173712" else "ca-app-pub-3940256099942544/1033173712"
inline
val
ID_ADMOB_NATIVE
get
()
=
if
(
BuildConfig
.
DEBUG
)
"ca-app-pub-3940256099942544/2247696110"
else
"ca-app-pub-3940256099942544/2247696110"
//
inline val ID_ADMOB_NATIVE get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/2247696110" else "ca-app-pub-3940256099942544/2247696110"
inline
val
ID_ADMOB_OPEN
get
()
=
if
(
BuildConfig
.
DEBUG
)
"ca-app-pub-3940256099942544/9257395921"
else
"ca-app-pub-3940256099942544/9257395921"
//
inline val ID_ADMOB_OPEN get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/9257395921" else "ca-app-pub-3940256099942544/9257395921"
inline
val
ID_ADMOB_BANNER
get
()
=
if
(
BuildConfig
.
DEBUG
)
"ca-app-pub-3940256099942544/9214589741"
else
"ca-app-pub-3940256099942544/9214589741"
//
inline val ID_ADMOB_BANNER get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/9214589741" else "ca-app-pub-3940256099942544/9214589741"
inline
val
ID_ADMOB_REWARD
get
()
=
if
(
BuildConfig
.
DEBUG
)
"ca-app-pub-3940256099942544/5224354917"
else
"ca-app-pub-3940256099942544/5224354917"
//
inline val ID_ADMOB_REWARD get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/5224354917" else "ca-app-pub-3940256099942544/5224354917"
//
//
// max广告位id
//
// max广告位id
inline
val
KEY_MAX
get
()
=
if
(
BuildConfig
.
DEBUG
)
"GGPreND6SRmCt1zJgn5faiLGD8c2PVGPLgPpSg7cHanVTud1DhtuI9MmteTqlEviaJ57WnxW68kQDaATJ5z3cW"
else
"GGPreND6SRmCt1zJgn5faiLGD8c2PVGPLgPpSg7cHanVTud1DhtuI9MmteTqlEviaJ57WnxW68kQDaATJ5z3cW"
//
inline val KEY_MAX get() = if (BuildConfig.DEBUG) "GGPreND6SRmCt1zJgn5faiLGD8c2PVGPLgPpSg7cHanVTud1DhtuI9MmteTqlEviaJ57WnxW68kQDaATJ5z3cW" else "GGPreND6SRmCt1zJgn5faiLGD8c2PVGPLgPpSg7cHanVTud1DhtuI9MmteTqlEviaJ57WnxW68kQDaATJ5z3cW"
inline
val
ID_MAX_INTER
get
()
=
if
(
BuildConfig
.
DEBUG
)
"3a9efc39d536ffe6"
else
"3a9efc39d536ffe6"
//
inline val ID_MAX_INTER get() = if (BuildConfig.DEBUG) "3a9efc39d536ffe6" else "3a9efc39d536ffe6"
inline
val
ID_MAX_NATIVE
get
()
=
if
(
BuildConfig
.
DEBUG
)
"cc0cc5b36a2608ca"
else
"cc0cc5b36a2608ca"
//
inline val ID_MAX_NATIVE get() = if (BuildConfig.DEBUG) "cc0cc5b36a2608ca" else "cc0cc5b36a2608ca"
inline
val
ID_MAX_OPEN
get
()
=
if
(
BuildConfig
.
DEBUG
)
"ad4efa4a0bc2a585"
else
"ad4efa4a0bc2a585"
//
inline val ID_MAX_OPEN get() = if (BuildConfig.DEBUG) "ad4efa4a0bc2a585" else "ad4efa4a0bc2a585"
inline
val
ID_MAX_BANNER
get
()
=
if
(
BuildConfig
.
DEBUG
)
""
else
""
//
inline val ID_MAX_BANNER get() = if (BuildConfig.DEBUG) "" else ""
inline
val
ID_MAX_REWARD
get
()
=
if
(
BuildConfig
.
DEBUG
)
""
else
""
//
inline val ID_MAX_REWARD get() = if (BuildConfig.DEBUG) "" else ""
inline
val
ID_PANGLE_APPLICATION
get
()
=
"8025677"
inline
val
ID_PANGLE_APPLICATION
get
()
=
"8025677"
inline
val
ID_PANGLE_OPEN
get
()
=
"890000078"
inline
val
ID_PANGLE_OPEN
get
()
=
"890000078"
inline
val
ID_PANGLE_INTER
get
()
=
"980088188"
inline
val
ID_PANGLE_INTER
get
()
=
"980088188"
inline
val
ID_PANGLE_REWARDED
get
()
=
"980088192"
inline
val
ID_PANGLE_BANNER_300X250
get
()
=
"980088196"
inline
val
ID_PANGLE_BANNER_320X50
get
()
=
"980099802"
}
}
\ No newline at end of file
app/src/main/java/com/base/appzxhy/bean/config/ConfigBean.kt
View file @
3cb03996
...
@@ -8,13 +8,13 @@ data class ConfigBean(
...
@@ -8,13 +8,13 @@ data class ConfigBean(
// var isInBlackList: Boolean = false,
// var isInBlackList: Boolean = false,
val
ut
:
Int
=
0
,
val
ut
:
Int
=
0
,
var
vpnCanUse
:
Boolean
=
true
,
//
var vpnCanUse: Boolean = true,
val
adConfigBean
:
AdConfigBean
=
AdConfigBean
(),
val
adConfigBean
:
AdConfigBean
=
AdConfigBean
(),
val
popupConfigBean
:
PopupConfigBean
=
PopupConfigBean
(),
val
popupConfigBean
:
PopupConfigBean
=
PopupConfigBean
(),
val
vipConfigBean
:
VipConfigBean
=
VipConfigBean
(),
//
val vipConfigBean: VipConfigBean = VipConfigBean(),
val
noEventKey
:
List
<
String
>
=
listOf
(),
val
noEventKey
:
List
<
String
>
=
listOf
(),
val
getConfigInterval
:
Int
=
4
,
//请求配间隔小时
val
getConfigInterval
:
Int
=
4
,
//请求配间隔小时
val
guideMode
:
Int
=
0
,
//引导页模式
//
val guideMode: Int = 0,//引导页模式
)
{
)
{
...
...
app/src/main/java/com/base/appzxhy/business/ads/AdsMgr.kt
View file @
3cb03996
...
@@ -4,6 +4,7 @@ import android.app.Activity
...
@@ -4,6 +4,7 @@ import android.app.Activity
import
android.content.Context
import
android.content.Context
import
android.view.View
import
android.view.View
import
android.view.ViewGroup
import
android.view.ViewGroup
import
android.widget.FrameLayout
import
androidx.annotation.LayoutRes
import
androidx.annotation.LayoutRes
//import com.applovin.sdk.AppLovinMediationProvider
//import com.applovin.sdk.AppLovinMediationProvider
//import com.applovin.sdk.AppLovinSdk
//import com.applovin.sdk.AppLovinSdk
...
@@ -23,19 +24,17 @@ import com.base.appzxhy.bean.config.ConfigBean.Companion.configBean
...
@@ -23,19 +24,17 @@ import com.base.appzxhy.bean.config.ConfigBean.Companion.configBean
//import com.base.appzxhy.business.ads.applovin.MaxNativeMgr
//import com.base.appzxhy.business.ads.applovin.MaxNativeMgr
//import com.base.appzxhy.business.ads.applovin.MaxOpenMgr
//import com.base.appzxhy.business.ads.applovin.MaxOpenMgr
import
com.base.appzxhy.business.helper.EventUtils
import
com.base.appzxhy.business.helper.EventUtils
import
com.base.appzxhy.business.pangle.PangleBannerMgr
import
com.base.appzxhy.business.pangle.PangleInterMgr
import
com.base.appzxhy.business.pangle.PangleInterMgr
import
com.base.appzxhy.business.pangle.PangleOpenMgr
import
com.base.appzxhy.business.pangle.PangleOpenMgr
import
com.base.appzxhy.utils.AppPreferences
import
com.base.appzxhy.business.pangle.PangleRewardMgr
import
com.base.appzxhy.utils.LogEx
import
com.base.appzxhy.utils.ToastUtils.toast
import
com.base.appzxhy.utils.ToastUtils.toast
import
com.bytedance.sdk.openadsdk.api.init.PAGConfig
import
com.bytedance.sdk.openadsdk.api.init.PAGConfig
import
com.bytedance.sdk.openadsdk.api.init.PAGSdk
import
com.bytedance.sdk.openadsdk.api.init.PAGSdk
import
com.bytedance.sdk.openadsdk.api.init.PAGSdk.PAGInitCallback
import
com.bytedance.sdk.openadsdk.api.init.PAGSdk.PAGInitCallback
//import com.google.android.gms.ads.MobileAds
//import com.google.android.gms.ads.MobileAds
import
com.google.android.gms.ads.identifier.AdvertisingIdClient
//import com.google.android.gms.ads.initialization.AdapterStatus
//import com.google.android.gms.ads.initialization.AdapterStatus
import
java.util.Collections
import
java.util.concurrent.Executors
/**
/**
* 广告管理类
* 广告管理类
...
@@ -73,6 +72,13 @@ object AdsMgr {
...
@@ -73,6 +72,13 @@ object AdsMgr {
PangleInterMgr
()
PangleInterMgr
()
}
}
private
val
pangleBannerMgr
by
lazy
{
PangleBannerMgr
()
}
private
val
pangleRewardMgr
by
lazy
{
PangleRewardMgr
()
}
/**
/**
* 是否初始化
* 是否初始化
*/
*/
...
@@ -268,6 +274,22 @@ object AdsMgr {
...
@@ -268,6 +274,22 @@ object AdsMgr {
pangleInterMgr
.
show
(
activity
,
showCallBack
)
pangleInterMgr
.
show
(
activity
,
showCallBack
)
}
}
/**
* 展示激励
*/
fun
showReward
(
activity
:
Activity
,
showCallBack
:
AdsShowCallBack
?
=
null
,
)
{
eventAdUt
()
if
(!
adsConfigBean
.
isAdShow
)
{
showCallBack
?.
failed
()
return
}
pangleRewardMgr
.
show
(
activity
,
showCallBack
)
}
/**
/**
* 展示原生广告
* 展示原生广告
*
*
...
@@ -311,7 +333,7 @@ object AdsMgr {
...
@@ -311,7 +333,7 @@ object AdsMgr {
*
*
* @param parent 展示广告的父布局容器
* @param parent 展示广告的父布局容器
*/
*/
fun
showBanner
(
parent
:
ViewGroup
,
collapsible
:
Boolean
=
true
,
adClose
:
(()
->
Unit
)?
=
null
)
{
fun
showBanner
(
parent
:
FrameLayout
,
collapsible
:
Boolean
=
true
,
adClose
:
(()
->
Unit
)?
=
null
)
{
if
(!
adsConfigBean
.
isAdShow
)
{
if
(!
adsConfigBean
.
isAdShow
)
{
parent
.
visibility
=
View
.
GONE
parent
.
visibility
=
View
.
GONE
return
return
...
@@ -324,5 +346,7 @@ object AdsMgr {
...
@@ -324,5 +346,7 @@ object AdsMgr {
// if (adsConfigBean.adSwitch) {
// if (adsConfigBean.adSwitch) {
// adBannerMgr.show(parent, collapsible, adClose)
// adBannerMgr.show(parent, collapsible, adClose)
// }
// }
pangleBannerMgr
.
showBanner
(
parent
)
}
}
}
}
\ No newline at end of file
app/src/main/java/com/base/appzxhy/business/pangle/PangleActivity.kt
View file @
3cb03996
...
@@ -47,6 +47,18 @@ class PangleActivity : AppCompatActivity() {
...
@@ -47,6 +47,18 @@ class PangleActivity : AppCompatActivity() {
})
})
}
}
binding
.
showReward
.
setOnClickListener
{
AdsMgr
.
showReward
(
this
,
showCallBack
=
object
:
AdsShowCallBack
()
{
override
fun
next
()
{
}
})
}
binding
.
showBanner
.
setOnClickListener
{
AdsMgr
.
showBanner
(
binding
.
flBanner
)
}
}
}
...
...
app/src/main/java/com/base/appzxhy/business/pangle/PangleBannerMgr.kt
0 → 100644
View file @
3cb03996
package
com.base.appzxhy.business.pangle
import
android.view.Gravity
import
android.widget.FrameLayout
import
com.base.appzxhy.GlobalConfig.ID_PANGLE_BANNER_300X250
import
com.base.appzxhy.GlobalConfig.ID_PANGLE_BANNER_320X50
import
com.bytedance.sdk.openadsdk.api.banner.PAGBannerAd
import
com.bytedance.sdk.openadsdk.api.banner.PAGBannerAdInteractionListener
import
com.bytedance.sdk.openadsdk.api.banner.PAGBannerAdLoadListener
import
com.bytedance.sdk.openadsdk.api.banner.PAGBannerRequest
import
com.bytedance.sdk.openadsdk.api.banner.PAGBannerSize.BANNER_W_300_H_250
import
com.bytedance.sdk.openadsdk.api.banner.PAGBannerSize.BANNER_W_320_H_50
class
PangleBannerMgr
{
fun
showBanner
(
fl
:
FrameLayout
)
{
fl
.
removeAllViews
()
val
bannerRequest
=
PAGBannerRequest
(
BANNER_W_320_H_50
)
PAGBannerAd
.
loadAd
(
ID_PANGLE_BANNER_320X50
,
bannerRequest
,
object
:
PAGBannerAdLoadListener
{
override
fun
onError
(
code
:
Int
,
message
:
String
?)
{
fl
.
removeAllViews
()
}
override
fun
onAdLoaded
(
bannerAd
:
PAGBannerAd
?)
{
bannerAd
?:
return
val
mPAGBannerAd
=
bannerAd
mPAGBannerAd
.
setAdInteractionListener
(
object
:
PAGBannerAdInteractionListener
{
override
fun
onAdShowed
()
{
}
override
fun
onAdClicked
()
{
}
override
fun
onAdDismissed
()
{
}
})
val
params
=
FrameLayout
.
LayoutParams
(
FrameLayout
.
LayoutParams
.
MATCH_PARENT
,
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
)
params
.
gravity
=
Gravity
.
CENTER
fl
.
addView
(
mPAGBannerAd
.
bannerView
,
params
)
}
})
}
}
\ No newline at end of file
app/src/main/java/com/base/appzxhy/business/pangle/PangleRewardMgr.kt
0 → 100644
View file @
3cb03996
package
com.base.appzxhy.business.pangle
import
android.app.Activity
import
com.base.appzxhy.GlobalConfig
import
com.base.appzxhy.business.ads.AdsShowCallBack
import
com.base.appzxhy.utils.LogEx
import
com.bytedance.sdk.openadsdk.api.reward.PAGRewardItem
import
com.bytedance.sdk.openadsdk.api.reward.PAGRewardedAd
import
com.bytedance.sdk.openadsdk.api.reward.PAGRewardedAdInteractionListener
import
com.bytedance.sdk.openadsdk.api.reward.PAGRewardedAdLoadListener
import
com.bytedance.sdk.openadsdk.api.reward.PAGRewardedRequest
class
PangleRewardMgr
{
private
val
TAG
=
"PangleRewardMgr"
private
var
mPAGRewardedAd
:
PAGRewardedAd
?
=
null
private
var
showCallBack
:
AdsShowCallBack
?
=
null
fun
load
(
callback
:
((
flag
:
Boolean
)
->
Unit
)?
=
null
)
{
PAGRewardedAd
.
loadAd
(
GlobalConfig
.
ID_PANGLE_REWARDED
,
PAGRewardedRequest
(),
object
:
PAGRewardedAdLoadListener
{
override
fun
onError
(
code
:
Int
,
message
:
String
?)
{
LogEx
.
logDebug
(
TAG
,
"loadAd onError code=$code message=$message"
)
callback
?.
invoke
(
false
)
}
override
fun
onAdLoaded
(
ad
:
PAGRewardedAd
?)
{
LogEx
.
logDebug
(
TAG
,
"onAdLoaded"
)
mPAGRewardedAd
=
ad
callback
?.
invoke
(
true
)
}
})
}
fun
show
(
activity
:
Activity
,
showCallBack
:
AdsShowCallBack
?)
{
if
(
activity
.
isFinishing
||
activity
.
isDestroyed
)
{
return
}
this
.
showCallBack
=
showCallBack
if
(
mPAGRewardedAd
==
null
)
{
LogEx
.
logDebug
(
TAG
,
"mPAGRewardedAd load"
)
load
{
if
(
it
)
{
showReadyAd
(
activity
)
}
else
{
showCallBack
?.
adFailed
()
}
}
}
else
{
LogEx
.
logDebug
(
TAG
,
"mPAGRewardedAd ready"
)
showReadyAd
(
activity
)
}
}
private
fun
showReadyAd
(
ac
:
Activity
)
{
if
(
ac
.
isFinishing
||
ac
.
isDestroyed
)
{
return
}
if
(
mPAGRewardedAd
==
null
)
{
showCallBack
?.
failed
()
return
}
LogEx
.
logDebug
(
TAG
,
"ttAppOpenAd show"
)
mPAGRewardedAd
?.
setAdInteractionListener
(
object
:
PAGRewardedAdInteractionListener
{
override
fun
onAdShowed
()
{
showCallBack
?.
show
()
mPAGRewardedAd
=
null
load
()
}
override
fun
onAdClicked
()
{
}
override
fun
onAdDismissed
()
{
showCallBack
?.
close
()
}
override
fun
onUserEarnedReward
(
p0
:
PAGRewardItem
?)
{
}
override
fun
onUserEarnedRewardFail
(
p0
:
Int
,
p1
:
String
?)
{
}
})
mPAGRewardedAd
?.
show
(
ac
)
}
}
\ No newline at end of file
app/src/main/java/com/base/appzxhy/ui/splash/SplashActivity.kt
View file @
3cb03996
...
@@ -67,7 +67,6 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
...
@@ -67,7 +67,6 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
}
}
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
// initUMP()
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
handleIntentExtras
()
handleIntentExtras
()
}
}
...
@@ -248,17 +247,18 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
...
@@ -248,17 +247,18 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
when
{
when
{
!
isGuided
->
{
!
isGuided
->
{
isGuided
=
true
isGuided
=
true
when
(
ConfigBean
.
configBean
.
guideMode
)
{
// when (ConfigBean.configBean.guideMode) {
0
->
{
// 0 -> {
// goToAc(GuideExperienceActivity::class.java)
// }
//
// 1 -> {
// goToAc(GuideCleanActivity::class.java)
// }
//
// else -> goToAc(MainActivity::class.java)
// }
goToAc
(
GuideExperienceActivity
::
class
.
java
)
goToAc
(
GuideExperienceActivity
::
class
.
java
)
}
1
->
{
goToAc
(
GuideCleanActivity
::
class
.
java
)
}
else
->
goToAc
(
MainActivity
::
class
.
java
)
}
finish
()
finish
()
}
}
...
...
app/src/main/res/layout/activity_pangle.xml
View file @
3cb03996
...
@@ -30,5 +30,23 @@
...
@@ -30,5 +30,23 @@
android:layout_marginVertical=
"@dimen/dp_3"
android:layout_marginVertical=
"@dimen/dp_3"
android:text=
"展示插页"
/>
android:text=
"展示插页"
/>
<androidx.appcompat.widget.AppCompatButton
android:id=
"@+id/showReward"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginVertical=
"@dimen/dp_3"
android:text=
"展示激励"
/>
<androidx.appcompat.widget.AppCompatButton
android:id=
"@+id/showBanner"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginVertical=
"@dimen/dp_3"
android:text=
"展示banner"
/>
<FrameLayout
android:id=
"@+id/flBanner"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
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