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. diff --git a/.github/workflows/pr_android.yml b/.github/workflows/pr_android.yml index 7b6bc6a2..e9e46b02 100644 --- a/.github/workflows/pr_android.yml +++ b/.github/workflows/pr_android.yml @@ -81,6 +81,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=${{ secrets.YOSPACE_USERNAME }}" >> ./gradle.properties + echo "YOSPACE_PASSWORD=${{ secrets.YOSPACE_PASSWORD }}" >> ./gradle.properties + - name: Modify gradle.properties for newArchEnabled working-directory: apps/e2e/android run: | 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 0218213d..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,6 +13,7 @@ import com.facebook.soloader.SoLoader import com.theoplayercomscore.ReactTHEOplayerComscorePackage import com.theoplayerconviva.ReactTHEOplayerConvivaPackage import com.theoplayernielsen.ReactTHEOplayerNielsenPackage +import com.theoplayeryospace.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/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" }, 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" ] } } 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) } }