Skip to content

Commit

Permalink
version update
Browse files Browse the repository at this point in the history
  • Loading branch information
steadymoka committed Aug 19, 2022
1 parent 431d200 commit 261d5b1
Show file tree
Hide file tree
Showing 35 changed files with 253 additions and 275 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,6 @@
/adhelper/build/
/fileutil/build/

/app/apikey.properties
/app/apikey.properties

buildSrc/build
16 changes: 9 additions & 7 deletions adhelper/build.gradle
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

group = 'com.github.moka-a'

android {
compileSdkVersion 29
compileSdkVersion 33
buildToolsVersion "29.0.2"

defaultConfig {
minSdkVersion 21
targetSdkVersion 29
targetSdkVersion 33

versionCode 1
versionName "1.0"
}

viewBinding {
enabled = true
}

buildTypes {
release {
minifyEnabled false
Expand All @@ -28,15 +30,15 @@ android {

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
implementation project(':base')
implementation project(':dialog')

implementation "com.google.firebase:firebase-ads:18.3.0"
implementation "com.google.android.gms:play-services-ads:21.1.0"
implementation "com.facebook.android:audience-network-sdk:5.5.0"

implementation "androidx.core:core-ktx:1.1.0"
implementation "androidx.appcompat:appcompat:1.1.0"
implementation "androidx.appcompat:appcompat:1.5.0"
implementation "androidx.constraintlayout:constraintlayout:2.0.0-beta4"
implementation 'androidx.cardview:cardview:1.0.0'
}
32 changes: 17 additions & 15 deletions adhelper/src/main/java/moka/land/adhelper/BannerAdView.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package moka.land.adhelper

import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.FrameLayout
import com.facebook.ads.Ad
Expand All @@ -11,8 +12,8 @@ import com.facebook.ads.AdListener
import com.facebook.ads.AdSize
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView
import kotlinx.android.synthetic.main.view_moka_ad_banner.view.*
import moka.land.base.BuildConfig.DEBUG
import com.google.android.gms.ads.LoadAdError
import moka.land.adhelper.databinding.ViewMokaAdBannerBinding

interface Runner {

Expand All @@ -21,8 +22,10 @@ interface Runner {

class BannerAdView constructor(context: Context, attributeSet: AttributeSet? = null) : FrameLayout(context, attributeSet), Runner {

var _view: ViewMokaAdBannerBinding

init {
View.inflate(context, R.layout.view_moka_ad_banner, this)
_view = ViewMokaAdBannerBinding.inflate(LayoutInflater.from(context))
}

inner class Option {
Expand Down Expand Up @@ -74,8 +77,8 @@ class BannerAdView constructor(context: Context, attributeSet: AttributeSet? = n
}

fun showError() {
banner_container.visibility = View.GONE
textView_banner_noFill.visibility = View.VISIBLE
_view.bannerContainer.visibility = View.GONE
_view.textViewBannerNoFill.visibility = View.VISIBLE
}

private fun loadFacebookBannerAd(fail: () -> Unit) {
Expand All @@ -85,16 +88,16 @@ class BannerAdView constructor(context: Context, attributeSet: AttributeSet? = n
}

facebookBannerAd = com.facebook.ads.AdView(context, option.fbAudienceKey, AdSize.BANNER_HEIGHT_50)
banner_container.removeAllViews()
banner_container.addView(facebookBannerAd)
_view.bannerContainer.removeAllViews()
_view.bannerContainer.addView(facebookBannerAd)

facebookBannerAd?.setAdListener(object : AdListener {
override fun onAdLoaded(ad: Ad) {
callback?.invoke(true)
}

override fun onError(ad: Ad?, error: AdError?) {
banner_container.removeAllViews()
_view.bannerContainer.removeAllViews()
fail()
}

Expand All @@ -114,11 +117,11 @@ class BannerAdView constructor(context: Context, attributeSet: AttributeSet? = n
}

admobBannerAdView = AdView(context).apply {
adSize = com.google.android.gms.ads.AdSize.SMART_BANNER
adUnitId = option.admobKey
// setAdSize(com.google.android.gms.ads.AdSize.BANNER)
adUnitId = option.admobKey!!
}
banner_container.removeAllViews()
banner_container.addView(admobBannerAdView)
_view.bannerContainer.removeAllViews()
_view.bannerContainer.addView(admobBannerAdView)

admobBannerAdView?.adListener = object : com.google.android.gms.ads.AdListener() {

Expand All @@ -127,15 +130,14 @@ class BannerAdView constructor(context: Context, attributeSet: AttributeSet? = n
callback?.invoke(true)
}

override fun onAdFailedToLoad(errorCode: Int) {
banner_container.removeAllViews()
override fun onAdFailedToLoad(errorCode: LoadAdError) {
_view.bannerContainer.removeAllViews()
fail()
}
}
admobBannerAdView?.loadAd(
AdRequest
.Builder()
.addTestDevice(AdHelper.testDevice?.ADMOB ?: "")
.build()
)
}
Expand Down
43 changes: 21 additions & 22 deletions adhelper/src/main/java/moka/land/adhelper/InterstitialAdHelper.kt
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
package moka.land.adhelper

import android.content.Context
import android.app.Activity
import com.facebook.ads.Ad
import com.facebook.ads.AdError
import com.facebook.ads.InterstitialAd
import com.facebook.ads.InterstitialAdListener
import com.google.android.gms.ads.AdRequest
import moka.land.base.BuildConfig.DEBUG
import com.google.android.gms.ads.FullScreenContentCallback
import com.google.android.gms.ads.LoadAdError
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback
import moka.land.base.log
import com.google.android.gms.ads.interstitial.InterstitialAd as AdmobInterstitialAd


class InterstitialAdHelper private constructor(
var context: Context
var context: Activity
) {

var onShow: (() -> Boolean)? = null
Expand All @@ -30,35 +33,31 @@ class InterstitialAdHelper private constructor(
}

fun showAdmob(key: String, success: () -> Unit, fail: () -> Unit) {
val mInterstitialAd = com.google.android.gms.ads.InterstitialAd(context)
mInterstitialAd.adUnitId = key
mInterstitialAd.adListener = object : com.google.android.gms.ads.AdListener() {
override fun onAdFailedToLoad(p0: Int) {
val request = AdRequest.Builder().build()
AdmobInterstitialAd.load(context, key, request, object : InterstitialAdLoadCallback() {
override fun onAdFailedToLoad(p0: LoadAdError) {
super.onAdFailedToLoad(p0)
log("show_admob_InterstitialAd fail")
fail()
}

override fun onAdLoaded() {
super.onAdLoaded()
override fun onAdLoaded(interstitialAd: AdmobInterstitialAd) {
super.onAdLoaded(interstitialAd)
log("Success admob ad")

interstitialAd.fullScreenContentCallback = object : FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
onClose?.invoke()
log("show_admob_InterstitialAd adClosed")
}
}
if (null == onShow || onShow?.invoke() == true) {
mInterstitialAd.show()
interstitialAd.show(context)
}
success()
}

override fun onAdClosed() {
onClose?.invoke()
super.onAdClosed()
log("show_admob_InterstitialAd adClosed")
}
}

mInterstitialAd.loadAd(
AdRequest
.Builder()
.build())
)
}

fun showAudience(key: String, success: () -> Unit, fail: () -> Unit) {
Expand Down Expand Up @@ -95,7 +94,7 @@ class InterstitialAdHelper private constructor(
}

companion object {
fun with(context: Context): InterstitialAdHelper {
fun with(context: Activity): InterstitialAdHelper {
return InterstitialAdHelper(context)
}
}
Expand Down
33 changes: 16 additions & 17 deletions adhelper/src/main/java/moka/land/adhelper/NativeAdView.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ import com.facebook.ads.*
import com.google.android.gms.ads.AdListener
import com.google.android.gms.ads.AdLoader
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.formats.MediaView
import com.google.android.gms.ads.formats.NativeAdOptions
import com.google.android.gms.ads.formats.UnifiedNativeAd
import com.google.android.gms.ads.formats.UnifiedNativeAdView
import com.google.android.gms.ads.LoadAdError
import com.google.android.gms.ads.nativead.MediaView
import com.google.android.gms.ads.nativead.NativeAdOptions
import com.google.android.gms.ads.nativead.NativeAdView
import moka.land.base.*


Expand All @@ -41,7 +41,7 @@ class NativeAdView constructor(context: Context, attributeSet: AttributeSet? = n
private var callback: ((isSuccess: Boolean) -> Unit)? = null

private var audienceNativeAd: NativeAd? = null
private var admobNativeAdView: UnifiedNativeAdView? = null
private var admobNativeAdView: NativeAdView? = null

fun setOption(block: Option.() -> Unit): Runnable {
val option = Option()
Expand Down Expand Up @@ -176,7 +176,8 @@ class NativeAdView constructor(context: Context, attributeSet: AttributeSet? = n
relativeLayoutContainer,
mediaView,
findViewById<ImageView>(R.id.imageView_adIcon),
clickableViews)
clickableViews
)
}

private fun loadAdmobNativeAd(fail: () -> Unit) {
Expand All @@ -187,14 +188,14 @@ class NativeAdView constructor(context: Context, attributeSet: AttributeSet? = n
return
}

admobNativeAdView = UnifiedNativeAdView(context)
admobNativeAdView = NativeAdView(context)
admobNativeAdView!!.addView(View.inflate(context, option.nativeLayoutResId, null))
admobNativeAdView!!.findViewById<FrameLayout>(R.id.frameLayout_media).visibleOrGone(option.media)
addView(admobNativeAdView)

AdLoader
.Builder(context, option.admobKey)
.forUnifiedNativeAd { unifiedNativeAd ->
.Builder(context, option.admobKey!!)
.forNativeAd { unifiedNativeAd ->
populateUnifiedNativeAdView(unifiedNativeAd, admobNativeAdView!!)
}
.withNativeAdOptions(
Expand All @@ -208,7 +209,7 @@ class NativeAdView constructor(context: Context, attributeSet: AttributeSet? = n
callback?.invoke(true)
}

override fun onAdFailedToLoad(fail: Int) {
override fun onAdFailedToLoad(fail: LoadAdError) {
super.onAdFailedToLoad(fail)
log("=== Admob's ad failed to load / ${fail}")
fail()
Expand All @@ -218,27 +219,25 @@ class NativeAdView constructor(context: Context, attributeSet: AttributeSet? = n
.loadAd(
AdRequest
.Builder()
.addTestDevice(AdHelper.testDevice?.ADMOB ?: "")
.build()
)
}

private fun populateUnifiedNativeAdView(adItem: UnifiedNativeAd, nativeAdView: UnifiedNativeAdView) {
private fun populateUnifiedNativeAdView(adItem: com.google.android.gms.ads.nativead.NativeAd, nativeAdView: NativeAdView) {
nativeAdView.findViewById<ConstraintLayout>(R.id.constraintLayout_ad).visible()

// Add the AdChoices icon
if (null != adItem.adChoicesInfo) {
val adChoiceImageView = nativeAdView.findViewById<ImageView>(R.id.imageView_adChoice)
adChoiceImageView.setImageDrawable(adItem.adChoicesInfo.images[0].drawable)
adChoiceImageView.setImageDrawable(adItem.adChoicesInfo!!.images[0].drawable)
}

// Ad thumbnail Icon
if (null != adItem.icon) {
val iconView = nativeAdView.findViewById<ImageView>(R.id.imageView_adIcon)
iconView.setImageDrawable(adItem.icon.drawable)
iconView.setImageDrawable(adItem.icon!!.drawable)
nativeAdView.iconView = iconView
}
else {
} else {
nativeAdView.findViewById<CardView>(R.id.cardView_adIcon).gone()
}

Expand All @@ -262,7 +261,7 @@ class NativeAdView constructor(context: Context, attributeSet: AttributeSet? = n
// media
if (option.media) {
val mediaView = MediaView(context).apply {
setMediaContent(adItem.mediaContent)
setMediaContent(adItem.mediaContent!!)
setImageScaleType(ImageView.ScaleType.CENTER_CROP)
nativeAdView.mediaView = this
}
Expand Down
Loading

0 comments on commit 261d5b1

Please sign in to comment.