Skip to content

Commit

Permalink
[interactive_media_ads] Adds remaining methods for internal wrapper o…
Browse files Browse the repository at this point in the history
…f the iOS native `IMAAdsRenderingSettings` (#7745)
  • Loading branch information
bparrishMines authored Oct 8, 2024
1 parent 0097256 commit 7ee7b86
Show file tree
Hide file tree
Showing 10 changed files with 615 additions and 7 deletions.
4 changes: 4 additions & 0 deletions packages/interactive_media_ads/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.2.2+8

* Adds remaining methods for internal wrapper of the iOS native `IMAAdsRenderingSettings`.

## 0.2.2+7

* Updates Java compatibility version to 11.
Expand Down
8 changes: 4 additions & 4 deletions packages/interactive_media_ads/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,10 +147,10 @@ iOS:
```yaml
pigeon:
git:
url: git@github.com:bparrishMines/packages.git
ref: pigeon_wrapper_swift
path: packages/pigeon
git:
url: git@github.com:bparrishMines/packages.git
ref: pigeon_wrapper_swift
path: packages/pigeon
```
##### 3. Uncomment the multiline comments in the pigeon file
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class AdsRequestProxyApi(override val pigeonRegistrar: ProxyApiRegistrar) :
*
* This must match the version in pubspec.yaml.
*/
const val pluginVersion = "0.2.2+7"
const val pluginVersion = "0.2.2+8"
}

override fun setAdTagUrl(pigeon_instance: AdsRequest, adTagUrl: String) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,87 @@ final class AdsRenderingSettingsTests: XCTestCase {

XCTAssertTrue(instance != nil)
}

func testSetMimeTypes() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdsRenderingSettings(registrar)

let instance = IMAAdsRenderingSettings()
let types = ["myString"]
try? api.pigeonDelegate.setMimeTypes(pigeonApi: api, pigeonInstance: instance, types: types)

XCTAssertEqual(instance.mimeTypes, types)
}

func testSetBitrate() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdsRenderingSettings(registrar)

let instance = IMAAdsRenderingSettings()
let bitrate = 0
try? api.pigeonDelegate.setBitrate(
pigeonApi: api, pigeonInstance: instance, bitrate: Int64(bitrate))

XCTAssertEqual(instance.bitrate, bitrate)
}

func testSetLoadVideoTimeout() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdsRenderingSettings(registrar)

let instance = IMAAdsRenderingSettings()
let seconds = 1.0
try? api.pigeonDelegate.setLoadVideoTimeout(
pigeonApi: api, pigeonInstance: instance, seconds: seconds)

XCTAssertEqual(instance.loadVideoTimeout, seconds)
}

func testSetPlayAdsAfterTime() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdsRenderingSettings(registrar)

let instance = IMAAdsRenderingSettings()
let seconds = 1.0
try? api.pigeonDelegate.setPlayAdsAfterTime(
pigeonApi: api, pigeonInstance: instance, seconds: seconds)

XCTAssertEqual(instance.playAdsAfterTime, seconds)
}

func testSetUIElements() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdsRenderingSettings(registrar)

let instance = IMAAdsRenderingSettings()
let types = [UIElementType.adAttribution]
try? api.pigeonDelegate.setUIElements(pigeonApi: api, pigeonInstance: instance, types: types)

XCTAssertEqual(
instance.uiElements, [IMAUiElementType.elements_AD_ATTRIBUTION.rawValue as NSNumber])
}

func testSetEnablePreloading() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdsRenderingSettings(registrar)

let instance = IMAAdsRenderingSettings()
let enable = true
try? api.pigeonDelegate.setEnablePreloading(
pigeonApi: api, pigeonInstance: instance, enable: enable)

XCTAssertTrue(instance.enablePreloading)
}

func testSetLinkOpenerPresentingController() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdsRenderingSettings(registrar)

let instance = IMAAdsRenderingSettings()
let controller = UIViewController()
try? api.pigeonDelegate.setLinkOpenerPresentingController(
pigeonApi: api, pigeonInstance: instance, controller: controller)

XCTAssertEqual(instance.linkOpenerPresentingController, controller)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,65 @@ class AdsRenderingSettingsProxyAPIDelegate: PigeonApiDelegateIMAAdsRenderingSett
{
return IMAAdsRenderingSettings()
}

func setMimeTypes(
pigeonApi: PigeonApiIMAAdsRenderingSettings, pigeonInstance: IMAAdsRenderingSettings,
types: [String]?
) throws {
pigeonInstance.mimeTypes = types
}

func setBitrate(
pigeonApi: PigeonApiIMAAdsRenderingSettings, pigeonInstance: IMAAdsRenderingSettings,
bitrate: Int64
) throws {
pigeonInstance.bitrate = Int(bitrate)
}

func setLoadVideoTimeout(
pigeonApi: PigeonApiIMAAdsRenderingSettings, pigeonInstance: IMAAdsRenderingSettings,
seconds: Double
) throws {
pigeonInstance.loadVideoTimeout = seconds
}

func setPlayAdsAfterTime(
pigeonApi: PigeonApiIMAAdsRenderingSettings, pigeonInstance: IMAAdsRenderingSettings,
seconds: Double
) throws {
pigeonInstance.playAdsAfterTime = seconds
}

func setUIElements(
pigeonApi: PigeonApiIMAAdsRenderingSettings, pigeonInstance: IMAAdsRenderingSettings,
types: [UIElementType]?
) throws {
let nativeUiElementTypes: [NSNumber]? = try types?.map { type in
switch type {
case .adAttribution:
return IMAUiElementType.elements_AD_ATTRIBUTION.rawValue as NSNumber
case .countdown:
return IMAUiElementType.elements_COUNTDOWN.rawValue as NSNumber
case .unknown:
throw (pigeonApi.pigeonRegistrar.apiDelegate as! ProxyApiDelegate).createUnknownEnumError(
withEnum: type)
}
}

pigeonInstance.uiElements = nativeUiElementTypes
}

func setEnablePreloading(
pigeonApi: PigeonApiIMAAdsRenderingSettings, pigeonInstance: IMAAdsRenderingSettings,
enable: Bool
) throws {
pigeonInstance.enablePreloading = enable
}

func setLinkOpenerPresentingController(
pigeonApi: PigeonApiIMAAdsRenderingSettings, pigeonInstance: IMAAdsRenderingSettings,
controller: UIViewController
) throws {
pigeonInstance.linkOpenerPresentingController = controller
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class AdsRequestProxyAPIDelegate: PigeonApiDelegateIMAAdsRequest {
/// The current version of the `interactive_media_ads` plugin.
///
/// This must match the version in pubspec.yaml.
static let pluginVersion = "0.2.2+7"
static let pluginVersion = "0.2.2+8"

func pigeonDefaultConstructor(
pigeonApi: PigeonApiIMAAdsRequest, adTagUrl: String, adDisplayContainer: IMAAdDisplayContainer,
Expand Down
Loading

0 comments on commit 7ee7b86

Please sign in to comment.