From 4b1293448ccaac2d21b56af5eaa3ab3d1755ca0c Mon Sep 17 00:00:00 2001 From: lsiret Date: Thu, 7 Jan 2021 10:22:07 -0500 Subject: [PATCH 1/3] feature: add/remove custom adEventListener for Manilo --- kohii-ads/src/main/java/kohii/v1/ads/Manilo.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/kohii-ads/src/main/java/kohii/v1/ads/Manilo.kt b/kohii-ads/src/main/java/kohii/v1/ads/Manilo.kt index 34e5999b..be71480d 100644 --- a/kohii-ads/src/main/java/kohii/v1/ads/Manilo.kt +++ b/kohii-ads/src/main/java/kohii/v1/ads/Manilo.kt @@ -63,6 +63,8 @@ class Manilo( rendererProviderFactory: RendererProviderFactory = { PlayerViewProvider() } ) : Kohii(master, playableCreator, rendererProviderFactory), AdEventListener { + private val adEventListeners = mutableSetOf() + private constructor(context: Context) : this(Master[context]) /** @@ -198,9 +200,21 @@ class Manilo( } // AdEventListener + fun addAdEventListener(listener: AdEventListener) { + adEventListeners.add(listener) + } + + fun removeAdEventListener(listener: AdEventListener) { + adEventListeners.remove(listener) + } + + fun removeAllAdEventListener() { + adEventListeners.clear() + } // This callback only works when [Manilo] uses a default [ImaAdsLoader.Builder]. override fun onAdEvent(adEvent: AdEvent) { "AdEvent: $adEvent".logInfo() + adEventListeners.forEach { it.onAdEvent(adEvent) } } } From 5ac484130807c52250acb96c844234a79c4e8bcd Mon Sep 17 00:00:00 2001 From: lsiret Date: Thu, 7 Jan 2021 10:40:36 -0500 Subject: [PATCH 2/3] add sample to show usage of custom logger --- .../main/java/kohii/v1/sample/ui/ads/AdsContainerFragment.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kohii-sample/src/main/java/kohii/v1/sample/ui/ads/AdsContainerFragment.kt b/kohii-sample/src/main/java/kohii/v1/sample/ui/ads/AdsContainerFragment.kt index ac3c0b97..c43fbee0 100644 --- a/kohii-sample/src/main/java/kohii/v1/sample/ui/ads/AdsContainerFragment.kt +++ b/kohii-sample/src/main/java/kohii/v1/sample/ui/ads/AdsContainerFragment.kt @@ -35,6 +35,7 @@ import kohii.v1.sample.common.ViewBindingFragment import kohii.v1.sample.databinding.FragmentAdsListBinding import okio.buffer import okio.source +import timber.log.Timber class AdsContainerFragment : ViewBindingFragment(FragmentAdsListBinding::inflate) { @@ -93,6 +94,10 @@ class AdsContainerFragment : manilo.register(this).addBucket(requireBinding().playerContainer) + manilo.addAdEventListener { + Timber.d("AdEventListener received : $it") + } + val layoutManager = LinearLayoutManager(view.context) requireBinding().adsContainer.layoutManager = layoutManager requireBinding().adsContainer.adapter = object : Adapter() { From 6118f6d5e77c6ce56efe6768b33b3748c8b3e048 Mon Sep 17 00:00:00 2001 From: lsiret Date: Thu, 7 Jan 2021 11:16:48 -0500 Subject: [PATCH 3/3] update api changed --- kohii-ads/api/kohii-ads.api | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kohii-ads/api/kohii-ads.api b/kohii-ads/api/kohii-ads.api index 614918e0..f4a2526c 100644 --- a/kohii-ads/api/kohii-ads.api +++ b/kohii-ads/api/kohii-ads.api @@ -49,7 +49,10 @@ public final class kohii/v1/ads/Manilo : kohii/v1/exoplayer/Kohii, com/google/ad public synthetic fun (Landroid/content/Context;Lkotlin/jvm/internal/DefaultConstructorMarker;)V public fun (Lkohii/v1/core/Master;Lkohii/v1/core/PlayableCreator;Lkotlin/jvm/functions/Function0;)V public synthetic fun (Lkohii/v1/core/Master;Lkohii/v1/core/PlayableCreator;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun addAdEventListener (Lcom/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener;)V public fun onAdEvent (Lcom/google/ads/interactivemedia/v3/api/AdEvent;)V + public final fun removeAdEventListener (Lcom/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener;)V + public final fun removeAllAdEventListener ()V } public final class kohii/v1/ads/Manilo$Companion {