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
Hide 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 {
*/
const
val
KEY_SOLAR
=
""
// 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_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_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_REWARD
get
()
=
if
(
BuildConfig
.
DEBUG
)
"ca-app-pub-3940256099942544/5224354917"
else
"ca-app-pub-3940256099942544/5224354917"
// max广告位id
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_NATIVE
get
()
=
if
(
BuildConfig
.
DEBUG
)
"cc0cc5b36a2608ca"
else
"cc0cc5b36a2608ca"
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_REWARD
get
()
=
if
(
BuildConfig
.
DEBUG
)
""
else
""
//
// 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_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_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_REWARD get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/5224354917" else "ca-app-pub-3940256099942544/5224354917"
//
//
//
// max广告位id
//
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_NATIVE get() = if (BuildConfig.DEBUG) "cc0cc5b36a2608ca" else "cc0cc5b36a2608ca"
//
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_REWARD get() = if (BuildConfig.DEBUG) "" else ""
inline
val
ID_PANGLE_APPLICATION
get
()
=
"8025677"
inline
val
ID_PANGLE_OPEN
get
()
=
"890000078"
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(
// var isInBlackList: Boolean = false,
val
ut
:
Int
=
0
,
var
vpnCanUse
:
Boolean
=
true
,
//
var vpnCanUse: Boolean = true,
val
adConfigBean
:
AdConfigBean
=
AdConfigBean
(),
val
popupConfigBean
:
PopupConfigBean
=
PopupConfigBean
(),
val
vipConfigBean
:
VipConfigBean
=
VipConfigBean
(),
//
val vipConfigBean: VipConfigBean = VipConfigBean(),
val
noEventKey
:
List
<
String
>
=
listOf
(),
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
import
android.content.Context
import
android.view.View
import
android.view.ViewGroup
import
android.widget.FrameLayout
import
androidx.annotation.LayoutRes
//import com.applovin.sdk.AppLovinMediationProvider
//import com.applovin.sdk.AppLovinSdk
...
...
@@ -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.MaxOpenMgr
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.PangleOpenMgr
import
com.base.appzxhy.utils.AppPreferences
import
com.base.appzxhy.utils.LogEx
import
com.base.appzxhy.business.pangle.PangleRewardMgr
import
com.base.appzxhy.utils.ToastUtils.toast
import
com.bytedance.sdk.openadsdk.api.init.PAGConfig
import
com.bytedance.sdk.openadsdk.api.init.PAGSdk
import
com.bytedance.sdk.openadsdk.api.init.PAGSdk.PAGInitCallback
//import com.google.android.gms.ads.MobileAds
import
com.google.android.gms.ads.identifier.AdvertisingIdClient
//import com.google.android.gms.ads.initialization.AdapterStatus
import
java.util.Collections
import
java.util.concurrent.Executors
/**
* 广告管理类
...
...
@@ -73,6 +72,13 @@ object AdsMgr {
PangleInterMgr
()
}
private
val
pangleBannerMgr
by
lazy
{
PangleBannerMgr
()
}
private
val
pangleRewardMgr
by
lazy
{
PangleRewardMgr
()
}
/**
* 是否初始化
*/
...
...
@@ -268,6 +274,22 @@ object AdsMgr {
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 {
*
* @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
)
{
parent
.
visibility
=
View
.
GONE
return
...
...
@@ -324,5 +346,7 @@ object AdsMgr {
// if (adsConfigBean.adSwitch) {
// 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() {
})
}
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
}
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
// initUMP()
super
.
onCreate
(
savedInstanceState
)
handleIntentExtras
()
}
...
...
@@ -248,17 +247,18 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
when
{
!
isGuided
->
{
isGuided
=
true
when
(
ConfigBean
.
configBean
.
guideMode
)
{
0
->
{
goToAc
(
GuideExperienceActivity
::
class
.
java
)
}
1
->
{
goToAc
(
GuideCleanActivity
::
class
.
java
)
}
else
->
goToAc
(
MainActivity
::
class
.
java
)
}
// when (ConfigBean.configBean.guideMode) {
// 0 -> {
// goToAc(GuideExperienceActivity::class.java)
// }
//
// 1 -> {
// goToAc(GuideCleanActivity::class.java)
// }
//
// else -> goToAc(MainActivity::class.java)
// }
goToAc
(
GuideExperienceActivity
::
class
.
java
)
finish
()
}
...
...
app/src/main/res/layout/activity_pangle.xml
View file @
3cb03996
...
...
@@ -30,5 +30,23 @@
android:layout_marginVertical=
"@dimen/dp_3"
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>
\ 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