Skip to content

Commit 2a0f254

Browse files
[interactive_media_ads] Adds internal wrapper for remaining methods of the Android native AdsManager (#7437)
1 parent afc24ac commit 2a0f254

File tree

9 files changed

+1244
-960
lines changed

9 files changed

+1244
-960
lines changed

packages/interactive_media_ads/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.1.2+5
2+
3+
* Adds internal wrapper for remaining methods of the Android native `AdsManager`.
4+
15
## 0.1.2+4
26

37
* Bumps androidx.annotation:annotation from 1.8.1 to 1.8.2.

packages/interactive_media_ads/android/src/main/kotlin/dev/flutter/packages/interactive_media_ads/AdsManagerProxyApi.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,16 @@ class AdsManagerProxyApi(override val pigeonRegistrar: ProxyApiRegistrar) :
2525
override fun start(pigeon_instance: AdsManager) {
2626
pigeon_instance.start()
2727
}
28+
29+
override fun getAdCuePoints(pigeon_instance: AdsManager): List<Double> {
30+
return pigeon_instance.adCuePoints.map { it.toDouble() }
31+
}
32+
33+
override fun resume(pigeon_instance: AdsManager) {
34+
pigeon_instance.resume()
35+
}
36+
37+
override fun skip(pigeon_instance: AdsManager) {
38+
pigeon_instance.skip()
39+
}
2840
}

packages/interactive_media_ads/android/src/main/kotlin/dev/flutter/packages/interactive_media_ads/AdsRequestProxyApi.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class AdsRequestProxyApi(override val pigeonRegistrar: ProxyApiRegistrar) :
2121
*
2222
* This must match the version in pubspec.yaml.
2323
*/
24-
const val pluginVersion = "0.1.2+4"
24+
const val pluginVersion = "0.1.2+5"
2525
}
2626

2727
override fun setAdTagUrl(pigeon_instance: AdsRequest, adTagUrl: String) {

packages/interactive_media_ads/android/src/main/kotlin/dev/flutter/packages/interactive_media_ads/InteractiveMediaAdsLibrary.g.kt

Lines changed: 90 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright 2013 The Flutter Authors. All rights reserved.
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
4-
// Autogenerated from Pigeon (v21.2.0), do not edit directly.
4+
// Autogenerated from Pigeon (v21.3.0), do not edit directly.
55
// See also: https://pub.dev/packages/pigeon
66
@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass", "SyntheticAccessor")
77

@@ -258,7 +258,7 @@ class InteractiveMediaAdsLibraryPigeonInstanceManager(
258258
}
259259
}
260260

261-
/** Generated API for managing the Dart and native `PigeonInstanceManager`s. */
261+
/** Generated API for managing the Dart and native `InstanceManager`s. */
262262
private class InteractiveMediaAdsLibraryPigeonInstanceManagerApi(
263263
val binaryMessenger: BinaryMessenger
264264
) {
@@ -278,7 +278,7 @@ private class InteractiveMediaAdsLibraryPigeonInstanceManagerApi(
278278
val channel =
279279
BasicMessageChannel<Any?>(
280280
binaryMessenger,
281-
"dev.flutter.pigeon.interactive_media_ads.PigeonInstanceManagerApi.removeStrongReference",
281+
"dev.flutter.pigeon.interactive_media_ads.PigeonInternalInstanceManager.removeStrongReference",
282282
codec)
283283
if (instanceManager != null) {
284284
channel.setMessageHandler { message, reply ->
@@ -301,7 +301,7 @@ private class InteractiveMediaAdsLibraryPigeonInstanceManagerApi(
301301
val channel =
302302
BasicMessageChannel<Any?>(
303303
binaryMessenger,
304-
"dev.flutter.pigeon.interactive_media_ads.PigeonInstanceManagerApi.clear",
304+
"dev.flutter.pigeon.interactive_media_ads.PigeonInternalInstanceManager.clear",
305305
codec)
306306
if (instanceManager != null) {
307307
channel.setMessageHandler { _, reply ->
@@ -323,7 +323,7 @@ private class InteractiveMediaAdsLibraryPigeonInstanceManagerApi(
323323

324324
fun removeStrongReference(identifierArg: Long, callback: (Result<Unit>) -> Unit) {
325325
val channelName =
326-
"dev.flutter.pigeon.interactive_media_ads.PigeonInstanceManagerApi.removeStrongReference"
326+
"dev.flutter.pigeon.interactive_media_ads.PigeonInternalInstanceManager.removeStrongReference"
327327
val channel = BasicMessageChannel<Any?>(binaryMessenger, channelName, codec)
328328
channel.send(listOf(identifierArg)) {
329329
if (it is List<*>) {
@@ -1488,6 +1488,25 @@ abstract class PigeonApiAdsManager(
14881488
/** Starts playing the ads. */
14891489
abstract fun start(pigeon_instance: com.google.ads.interactivemedia.v3.api.AdsManager)
14901490

1491+
/**
1492+
* List of content time offsets in seconds at which ad breaks are scheduled.
1493+
*
1494+
* The list will be empty if no ad breaks are scheduled.
1495+
*/
1496+
abstract fun getAdCuePoints(
1497+
pigeon_instance: com.google.ads.interactivemedia.v3.api.AdsManager
1498+
): List<Double>
1499+
1500+
/** Resumes the current ad. */
1501+
abstract fun resume(pigeon_instance: com.google.ads.interactivemedia.v3.api.AdsManager)
1502+
1503+
/**
1504+
* Skips the current ad.
1505+
*
1506+
* `AdsManager.skip()` only skips ads if IMA does not render the 'Skip ad' button.
1507+
*/
1508+
abstract fun skip(pigeon_instance: com.google.ads.interactivemedia.v3.api.AdsManager)
1509+
14911510
companion object {
14921511
@Suppress("LocalVariableName")
14931512
fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAdsManager?) {
@@ -1557,6 +1576,72 @@ abstract class PigeonApiAdsManager(
15571576
channel.setMessageHandler(null)
15581577
}
15591578
}
1579+
run {
1580+
val channel =
1581+
BasicMessageChannel<Any?>(
1582+
binaryMessenger,
1583+
"dev.flutter.pigeon.interactive_media_ads.AdsManager.getAdCuePoints",
1584+
codec)
1585+
if (api != null) {
1586+
channel.setMessageHandler { message, reply ->
1587+
val args = message as List<Any?>
1588+
val pigeon_instanceArg = args[0] as com.google.ads.interactivemedia.v3.api.AdsManager
1589+
val wrapped: List<Any?> =
1590+
try {
1591+
listOf(api.getAdCuePoints(pigeon_instanceArg))
1592+
} catch (exception: Throwable) {
1593+
wrapError(exception)
1594+
}
1595+
reply.reply(wrapped)
1596+
}
1597+
} else {
1598+
channel.setMessageHandler(null)
1599+
}
1600+
}
1601+
run {
1602+
val channel =
1603+
BasicMessageChannel<Any?>(
1604+
binaryMessenger,
1605+
"dev.flutter.pigeon.interactive_media_ads.AdsManager.resume",
1606+
codec)
1607+
if (api != null) {
1608+
channel.setMessageHandler { message, reply ->
1609+
val args = message as List<Any?>
1610+
val pigeon_instanceArg = args[0] as com.google.ads.interactivemedia.v3.api.AdsManager
1611+
val wrapped: List<Any?> =
1612+
try {
1613+
api.resume(pigeon_instanceArg)
1614+
listOf(null)
1615+
} catch (exception: Throwable) {
1616+
wrapError(exception)
1617+
}
1618+
reply.reply(wrapped)
1619+
}
1620+
} else {
1621+
channel.setMessageHandler(null)
1622+
}
1623+
}
1624+
run {
1625+
val channel =
1626+
BasicMessageChannel<Any?>(
1627+
binaryMessenger, "dev.flutter.pigeon.interactive_media_ads.AdsManager.skip", codec)
1628+
if (api != null) {
1629+
channel.setMessageHandler { message, reply ->
1630+
val args = message as List<Any?>
1631+
val pigeon_instanceArg = args[0] as com.google.ads.interactivemedia.v3.api.AdsManager
1632+
val wrapped: List<Any?> =
1633+
try {
1634+
api.skip(pigeon_instanceArg)
1635+
listOf(null)
1636+
} catch (exception: Throwable) {
1637+
wrapError(exception)
1638+
}
1639+
reply.reply(wrapped)
1640+
}
1641+
} else {
1642+
channel.setMessageHandler(null)
1643+
}
1644+
}
15601645
}
15611646
}
15621647

packages/interactive_media_ads/android/src/test/kotlin/dev/flutter/packages/interactive_media_ads/AdsManagerProxyApiTest.kt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ package dev.flutter.packages.interactive_media_ads
66

77
import com.google.ads.interactivemedia.v3.api.AdsManager
88
import kotlin.test.Test
9+
import kotlin.test.assertEquals
910
import org.mockito.kotlin.mock
1011
import org.mockito.kotlin.verify
12+
import org.mockito.kotlin.whenever
1113

1214
class AdsManagerProxyApiTest {
1315
@Test
@@ -39,4 +41,35 @@ class AdsManagerProxyApiTest {
3941

4042
verify(instance).start()
4143
}
44+
45+
@Test
46+
fun getAdCuePoints() {
47+
val api = TestProxyApiRegistrar().getPigeonApiAdsManager()
48+
49+
val instance = mock<AdsManager>()
50+
val value = listOf(1.0)
51+
whenever(instance.adCuePoints).thenReturn(listOf(1.0f))
52+
53+
assertEquals(value, api.getAdCuePoints(instance))
54+
}
55+
56+
@Test
57+
fun resume() {
58+
val api = TestProxyApiRegistrar().getPigeonApiAdsManager()
59+
60+
val instance = mock<AdsManager>()
61+
api.resume(instance)
62+
63+
verify(instance).resume()
64+
}
65+
66+
@Test
67+
fun skip() {
68+
val api = TestProxyApiRegistrar().getPigeonApiAdsManager()
69+
70+
val instance = mock<AdsManager>()
71+
api.skip(instance)
72+
73+
verify(instance).skip()
74+
}
4275
}

packages/interactive_media_ads/ios/interactive_media_ads/Sources/interactive_media_ads/AdsRequestProxyAPIDelegate.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class AdsRequestProxyAPIDelegate: PigeonApiDelegateIMAAdsRequest {
1313
/// The current version of the `interactive_media_ads` plugin.
1414
///
1515
/// This must match the version in pubspec.yaml.
16-
static let pluginVersion = "0.1.2+4"
16+
static let pluginVersion = "0.1.2+5"
1717

1818
func pigeonDefaultConstructor(
1919
pigeonApi: PigeonApiIMAAdsRequest, adTagUrl: String, adDisplayContainer: IMAAdDisplayContainer,

0 commit comments

Comments
 (0)