From 78add777729e7cd704f8f504ab242d08b8c1dcfe Mon Sep 17 00:00:00 2001 From: Tom Van Laerhoven Date: Wed, 11 Jun 2025 14:57:33 +0200 Subject: [PATCH 1/6] Fix missing hasIntegration method --- .../theoplayeryospace/ReactTHEOplayerYospaceModule.kt | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/yospace/android/src/main/java/com/theoplayeryospace/ReactTHEOplayerYospaceModule.kt b/yospace/android/src/main/java/com/theoplayeryospace/ReactTHEOplayerYospaceModule.kt index 3b86ff5a..15b70c7c 100644 --- a/yospace/android/src/main/java/com/theoplayeryospace/ReactTHEOplayerYospaceModule.kt +++ b/yospace/android/src/main/java/com/theoplayeryospace/ReactTHEOplayerYospaceModule.kt @@ -13,18 +13,14 @@ private const val PROP_SSAI_INTEGRATION_YOSPACE = "yospace" class ReactTHEOplayerYospaceModule(context: ReactApplicationContext) : ReactContextBaseJavaModule(context) { - private val viewResolver: ViewResolver + private val viewResolver: ViewResolver = ViewResolver(context) private var yospaceConnectors: HashMap = HashMap() init { - viewResolver = ViewResolver(context) - // Register source builder - if (!SSAIAdapterRegistry.hasIntegration(PROP_SSAI_INTEGRATION_YOSPACE)) { - SSAIAdapterRegistry.register(PROP_SSAI_INTEGRATION_YOSPACE) { json, currentBuilder -> - yospaceBuilderFromJson(currentBuilder, json) - } + SSAIAdapterRegistry.register(PROP_SSAI_INTEGRATION_YOSPACE) { json, currentBuilder -> + yospaceBuilderFromJson(currentBuilder, json) } } From eb9e352f9e10d3da62461b26ac21ee6913c5ab65 Mon Sep 17 00:00:00 2001 From: Tom Van Laerhoven Date: Wed, 11 Jun 2025 14:57:59 +0200 Subject: [PATCH 2/6] Add Yospace e2e test for Android --- .../reactnativetheoplayer/MainApplication.kt | 2 ++ apps/e2e/android/settings.gradle | 2 ++ apps/e2e/src/tests/Yospace.spec.ts | 20 +++++++++++++++++++ apps/e2e/src/tests/index.ts | 9 ++++++++- apps/e2e/tsconfig.json | 3 +++ 5 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 apps/e2e/src/tests/Yospace.spec.ts diff --git a/apps/e2e/android/app/src/main/java/com/reactnativetheoplayer/MainApplication.kt b/apps/e2e/android/app/src/main/java/com/reactnativetheoplayer/MainApplication.kt index 0218213d..4e5a5e33 100644 --- a/apps/e2e/android/app/src/main/java/com/reactnativetheoplayer/MainApplication.kt +++ b/apps/e2e/android/app/src/main/java/com/reactnativetheoplayer/MainApplication.kt @@ -13,6 +13,7 @@ import com.facebook.soloader.SoLoader import com.theoplayercomscore.ReactTHEOplayerComscorePackage import com.theoplayerconviva.ReactTHEOplayerConvivaPackage import com.theoplayernielsen.ReactTHEOplayerNielsenPackage +import com.yospace.ReactTHEOplayerYospacePackage class MainApplication : Application(), ReactApplication { override val reactNativeHost: ReactNativeHost = @@ -23,6 +24,7 @@ class MainApplication : Application(), ReactApplication { add(ReactTHEOplayerComscorePackage()) add(ReactTHEOplayerConvivaPackage()) add(ReactTHEOplayerNielsenPackage()) + add(ReactTHEOplayerYospacePackage()) } override fun getJSMainModuleName(): String = "index" diff --git a/apps/e2e/android/settings.gradle b/apps/e2e/android/settings.gradle index 7593e4a6..bc5ec84d 100644 --- a/apps/e2e/android/settings.gradle +++ b/apps/e2e/android/settings.gradle @@ -12,3 +12,5 @@ include ':react-native-theoplayer-analytics-conviva' project(':react-native-theoplayer-analytics-conviva').projectDir = new File(rootProject.projectDir, '../../../conviva/android') include ':react-native-theoplayer-analytics-nielsen' project(':react-native-theoplayer-analytics-nielsen').projectDir = new File(rootProject.projectDir, '../../../nielsen/android') +include ':react-native-theoplayer-yospace' +project(':react-native-theoplayer-yospace').projectDir = new File(rootProject.projectDir, '../../../yospace/android') diff --git a/apps/e2e/src/tests/Yospace.spec.ts b/apps/e2e/src/tests/Yospace.spec.ts new file mode 100644 index 00000000..ae9c594c --- /dev/null +++ b/apps/e2e/src/tests/Yospace.spec.ts @@ -0,0 +1,20 @@ +import { TestScope } from 'cavy'; +import { YospaceConnector } from '@theoplayer/react-native-yospace'; +import { testConnector } from './ConnectorUtils'; +import { THEOplayer } from 'react-native-theoplayer'; + +export default function (spec: TestScope) { + spec.describe(`Setup Yospace connector`, function () { + let connector: YospaceConnector; + testConnector( + spec, + (player: THEOplayer) => { + connector = new YospaceConnector(player); + }, + () => {}, + () => { + connector.destroy(); + }, + ); + }); +} diff --git a/apps/e2e/src/tests/index.ts b/apps/e2e/src/tests/index.ts index d580bf2e..1b3538dd 100644 --- a/apps/e2e/src/tests/index.ts +++ b/apps/e2e/src/tests/index.ts @@ -2,5 +2,12 @@ import Adobe from './Adobe.spec'; import Comscore from './Comscore.spec'; import Conviva from './Conviva.spec'; import Nielsen from './Nielsen.spec'; +import Yospace from './Yospace.spec'; +import { Platform } from 'react-native'; -export default [Adobe, Comscore, Conviva, Nielsen]; +const tests = [Adobe, Comscore, Conviva, Nielsen]; +if (Platform.OS === 'android') { + tests.push(Yospace); +} + +export default tests; diff --git a/apps/e2e/tsconfig.json b/apps/e2e/tsconfig.json index 3e53c296..8c0856b0 100644 --- a/apps/e2e/tsconfig.json +++ b/apps/e2e/tsconfig.json @@ -14,6 +14,9 @@ ], "@theoplayer/react-native-analytics-nielsen": [ "../../nielsen/src/index" + ], + "@theoplayer/react-native-yospace": [ + "../../yospace/src/index" ] } } From 2fd87e75a690854eab34bc515a2a444efd0dbbae Mon Sep 17 00:00:00 2001 From: Tom Van Laerhoven Date: Wed, 11 Jun 2025 14:58:13 +0200 Subject: [PATCH 3/6] Update build pipeline --- .github/workflows/pr_android.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/pr_android.yml b/.github/workflows/pr_android.yml index 7b6bc6a2..d43cb2cc 100644 --- a/.github/workflows/pr_android.yml +++ b/.github/workflows/pr_android.yml @@ -7,6 +7,11 @@ on: jobs: build: runs-on: ubuntu-latest + + env: + YOSPACE_USERNAME: ${{ secrets.YOSPACE_USERNAME }} + YOSPACE_PASSWORD: ${{ secrets.YOSPACE_PASSWORD }} + strategy: matrix: api-level: [ 34 ] @@ -81,6 +86,12 @@ jobs: disable-animations: true script: echo "Generated AVD snapshot for caching." + - name: Modify gradle.properties with repository secrets + working-directory: apps/e2e/android + run: | + echo "YOSPACE_USERNAME=${{ YOSPACE_USERNAME }}" >> ./gradle.properties + echo "YOSPACE_PASSWORD=${{ YOSPACE_PASSWORD }}" >> ./gradle.properties + - name: Modify gradle.properties for newArchEnabled working-directory: apps/e2e/android run: | From 83763c4b4ce35e1df3e4f74413ed5578e0d48adb Mon Sep 17 00:00:00 2001 From: Tom Van Laerhoven Date: Wed, 11 Jun 2025 15:01:38 +0200 Subject: [PATCH 4/6] Fix Android build pipeline --- .github/workflows/pr_android.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/pr_android.yml b/.github/workflows/pr_android.yml index d43cb2cc..e9e46b02 100644 --- a/.github/workflows/pr_android.yml +++ b/.github/workflows/pr_android.yml @@ -7,11 +7,6 @@ on: jobs: build: runs-on: ubuntu-latest - - env: - YOSPACE_USERNAME: ${{ secrets.YOSPACE_USERNAME }} - YOSPACE_PASSWORD: ${{ secrets.YOSPACE_PASSWORD }} - strategy: matrix: api-level: [ 34 ] @@ -89,8 +84,8 @@ jobs: - name: Modify gradle.properties with repository secrets working-directory: apps/e2e/android run: | - echo "YOSPACE_USERNAME=${{ YOSPACE_USERNAME }}" >> ./gradle.properties - echo "YOSPACE_PASSWORD=${{ YOSPACE_PASSWORD }}" >> ./gradle.properties + echo "YOSPACE_USERNAME=${{ secrets.YOSPACE_USERNAME }}" >> ./gradle.properties + echo "YOSPACE_PASSWORD=${{ secrets.YOSPACE_PASSWORD }}" >> ./gradle.properties - name: Modify gradle.properties for newArchEnabled working-directory: apps/e2e/android From ff3666fbcf6d6128321c67c9872bf90982e6b0b2 Mon Sep 17 00:00:00 2001 From: Tom Van Laerhoven Date: Wed, 11 Jun 2025 15:05:23 +0200 Subject: [PATCH 5/6] Add changeset --- .changeset/shy-zoos-film.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/shy-zoos-film.md diff --git a/.changeset/shy-zoos-film.md b/.changeset/shy-zoos-film.md new file mode 100644 index 00000000..4295b8e6 --- /dev/null +++ b/.changeset/shy-zoos-film.md @@ -0,0 +1,5 @@ +--- +'@theoplayer/react-native-yospace': patch +--- + +Fixed an issue where the connector would throw an error while building on Android. From a59ddb7e3aa7dbf0d6eb90bd6c96d93a2a342af2 Mon Sep 17 00:00:00 2001 From: Tom Van Laerhoven Date: Wed, 11 Jun 2025 15:29:50 +0200 Subject: [PATCH 6/6] Fix package import --- apps/e2e/android/app/build.gradle | 1 + .../src/main/java/com/reactnativetheoplayer/MainApplication.kt | 2 +- apps/e2e/package.json | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/e2e/android/app/build.gradle b/apps/e2e/android/app/build.gradle index fafc0286..5fa17271 100644 --- a/apps/e2e/android/app/build.gradle +++ b/apps/e2e/android/app/build.gradle @@ -115,6 +115,7 @@ dependencies { implementation project(path: ':react-native-theoplayer-analytics-comscore') implementation project(path: ':react-native-theoplayer-analytics-conviva') implementation project(path: ':react-native-theoplayer-analytics-nielsen') + implementation project(path: ':react-native-theoplayer-yospace') implementation "com.google.android.gms:play-services-cast-framework:${safeExtGet('castFrameworkVersion', '+')}" diff --git a/apps/e2e/android/app/src/main/java/com/reactnativetheoplayer/MainApplication.kt b/apps/e2e/android/app/src/main/java/com/reactnativetheoplayer/MainApplication.kt index 4e5a5e33..28dc7f3a 100644 --- a/apps/e2e/android/app/src/main/java/com/reactnativetheoplayer/MainApplication.kt +++ b/apps/e2e/android/app/src/main/java/com/reactnativetheoplayer/MainApplication.kt @@ -13,7 +13,7 @@ import com.facebook.soloader.SoLoader import com.theoplayercomscore.ReactTHEOplayerComscorePackage import com.theoplayerconviva.ReactTHEOplayerConvivaPackage import com.theoplayernielsen.ReactTHEOplayerNielsenPackage -import com.yospace.ReactTHEOplayerYospacePackage +import com.theoplayeryospace.ReactTHEOplayerYospacePackage class MainApplication : Application(), ReactApplication { override val reactNativeHost: ReactNativeHost = diff --git a/apps/e2e/package.json b/apps/e2e/package.json index f42323fe..4eb492f6 100644 --- a/apps/e2e/package.json +++ b/apps/e2e/package.json @@ -21,8 +21,8 @@ "react-native": "npm:react-native-tvos@^0.75.4-0", "react-native-device-info": "^10.14.0", "react-native-status-bar-height": "^2.6.0", - "react-native-theoplayer": "^9.3.0", "react-native-svg": "^15.8.0", + "react-native-theoplayer": "^9.3.0", "react-native-web": "^0.19.13", "react-native-web-image-loader": "^0.1.1" },