Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
19f20ec
Bump dependencies
tvanlaerhoven Mar 11, 2026
650cdb1
Add changelog
tvanlaerhoven Mar 12, 2026
297c7e8
Merge pull request #772 from THEOplayer/maintenance/rn-0.84
tvanlaerhoven Mar 30, 2026
fde8961
Bump serialize-javascript, terser-webpack-plugin and copy-webpack-plugin
dependabot[bot] Mar 30, 2026
20e3aae
Bump serialize-javascript, terser-webpack-plugin and copy-webpack-plugin
dependabot[bot] Mar 30, 2026
7d3e69a
Add useIsAttached hook
tvanlaerhoven Mar 30, 2026
fe96776
Check for attached container
tvanlaerhoven Mar 30, 2026
ecd2180
Add changelog entry
tvanlaerhoven Mar 30, 2026
ac813c1
Merge pull request #794 from THEOplayer/dependabot/npm_and_yarn/examp…
tvanlaerhoven Mar 30, 2026
762a710
Merge pull request #795 from THEOplayer/dependabot/npm_and_yarn/e2e/m…
tvanlaerhoven Mar 31, 2026
e99c343
Bump @xmldom/xmldom from 0.8.10 to 0.8.12
dependabot[bot] Apr 1, 2026
5fb1d50
Merge pull request #798 from THEOplayer/dependabot/npm_and_yarn/xmldo…
tvanlaerhoven Apr 1, 2026
aa95c5f
Merge pull request #796 from THEOplayer/bugfix/reverse-portal
tvanlaerhoven Apr 1, 2026
4c809b7
Update NativeAd implementation to changed Ad API
wvanhaevre Apr 1, 2026
58537c4
Use adBreak as an optional property
wvanhaevre Apr 1, 2026
a23e5d9
Bump lodash from 4.17.23 to 4.18.1
dependabot[bot] Apr 8, 2026
5122341
Bump lodash from 4.17.23 to 4.18.1 in /example
dependabot[bot] Apr 8, 2026
bd0e9e9
Bump wrapper
rbnbtns Apr 10, 2026
3b42ad0
Update android version
rbnbtns Apr 10, 2026
ec24988
Merge pull request #802 from THEOplayer/dependabot/npm_and_yarn/examp…
tvanlaerhoven Apr 13, 2026
99b2945
Merge pull request #801 from THEOplayer/dependabot/npm_and_yarn/lodas…
tvanlaerhoven Apr 13, 2026
d89e6cb
Bump lodash from 4.17.23 to 4.18.1 in /e2e
dependabot[bot] Apr 13, 2026
29cb051
Fix Ad deprecations
tvanlaerhoven Apr 13, 2026
18e91d7
Fix ImaSdkSettings properties
tvanlaerhoven Apr 13, 2026
cf9491e
Fix trivial warning
tvanlaerhoven Apr 13, 2026
2b4be31
Drop deprecated reactNativeHost
tvanlaerhoven Apr 13, 2026
78a42cd
Merge remote-tracking branch 'origin/feature/prepare-v11-rb' into fea…
tvanlaerhoven Apr 13, 2026
542c24b
Upgrade dependencies
tvanlaerhoven Apr 13, 2026
68b46b5
Fix trivial warnings
tvanlaerhoven Apr 13, 2026
e49d1b3
Add desugaring for e2e app
tvanlaerhoven Apr 13, 2026
187ed99
Drop deprecated ResizeEvent
tvanlaerhoven Apr 13, 2026
5a353ad
Remove deprecated theolive property
tvanlaerhoven Apr 13, 2026
03d8a9a
Drop deprecated integration property
tvanlaerhoven Apr 13, 2026
d83bb1a
Run prettier
tvanlaerhoven Apr 13, 2026
07e3b76
Add favicon
tvanlaerhoven Apr 13, 2026
8257cfa
Update TheoLiveSource
tvanlaerhoven Apr 13, 2026
75eb408
Update web peerDependency version
tvanlaerhoven Apr 13, 2026
3ccab4e
Update deprecated node version constraint
tvanlaerhoven Apr 13, 2026
2738e38
Update changelog
tvanlaerhoven Apr 13, 2026
fb47c39
Update podspec file
tvanlaerhoven Apr 13, 2026
eefb559
Add changelog entry
tvanlaerhoven Apr 13, 2026
60b484c
Merge pull request #800 from THEOplayer/dependabot/npm_and_yarn/e2e/l…
tvanlaerhoven Apr 13, 2026
edb87dc
Bump follow-redirects from 1.15.11 to 1.16.0 in /e2e
dependabot[bot] Apr 15, 2026
044e6d4
Bump follow-redirects from 1.15.11 to 1.16.0 in /example
dependabot[bot] Apr 15, 2026
cb8063d
Merge pull request #806 from THEOplayer/dependabot/npm_and_yarn/examp…
tvanlaerhoven Apr 16, 2026
620c391
Merge pull request #805 from THEOplayer/dependabot/npm_and_yarn/e2e/f…
tvanlaerhoven Apr 16, 2026
45607cf
Add migration guide
tvanlaerhoven Apr 16, 2026
74e3965
Bump package versions
tvanlaerhoven Apr 16, 2026
9f927af
Update DRM package
tvanlaerhoven Apr 16, 2026
3abc3d9
Drop unused imports
tvanlaerhoven Apr 16, 2026
2851301
Update cmcd connector
tvanlaerhoven Apr 16, 2026
c518b20
Update lock files
tvanlaerhoven Apr 16, 2026
2150d82
Drop Sideloaded texttracks feature for e2e tests.
wvanhaevre Apr 16, 2026
3b72b7d
Merge pull request #803 from THEOplayer/feature/prepare-v11
tvanlaerhoven Apr 16, 2026
53abeab
Require THEOplayer Web SDK 11.x
MattiasBuelens Apr 16, 2026
5449e14
Enable buildConfig feature
MattiasBuelens Apr 14, 2026
7c3fb55
Add `TextTrack.captionChannel`
MattiasBuelens Apr 14, 2026
83f9682
Update changelog
MattiasBuelens Apr 14, 2026
9353507
Use platform tag
tvanlaerhoven Apr 16, 2026
16cc1bf
Merge pull request #804 from THEOplayer/feature/caption-channel
tvanlaerhoven Apr 16, 2026
52a67e4
Update changelog
tvanlaerhoven Apr 16, 2026
e0b5bde
11.0.0
tvanlaerhoven Apr 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.1.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [11.0.0] - 26-04-16

### Added

- Added support for player SDK v11. More info on the [migration documentation](./doc/migrating-to-react-native-theoplayer-11.md) page.
- Enabled core library desugaring for Android to support version 3.39.0 of the Google IMA SDK.
- Added `TextTrack.captionChannel` to retrieve the CEA-608 channel and/or CEA-708 service numbers of closed caption text tracks.

### Changed

- Upgraded example app to React-Native v0.84.1.
- Changed the minimum supported iOS/tvOS version to 15.0, dropping support for iOS/tvOS 13 and 14.

### Fixed

- Fixed an issue on Web where Google IMA could fail to initialize when used with `react-reverse-portal` due to the player container not being attached to the document yet.

### Removed

- Removed deprecated `ResizeEvent` in favor of `DimensionChangeEvent`.
- Removed deprecated `player.theolive` property in favor of `player.theoLive`.
- Removed deprecated `source.integration` property in favor of `source.type`.

## [10.13.0] - 26-03-27

### Fixed
Expand Down
20 changes: 13 additions & 7 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ buildscript {
}

dependencies {
classpath "com.android.tools.build:gradle:${safeExtGet('gradlePluginVersion', '8.12.3')}"
classpath "com.android.tools.build:gradle:${safeExtGet('gradlePluginVersion', '8.13.0')}"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${safeExtGet('kotlinVersion', '2.2.10')}"
}
}
Expand Down Expand Up @@ -92,12 +92,16 @@ android {
minifyEnabled false
}
}
buildFeatures {
buildConfig true
}
lint {
disable 'GradleCompatible'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
coreLibraryDesugaringEnabled true
}
packagingOptions {
exclude 'META-INF/kotlin-stdlib.kotlin_module'
Expand All @@ -122,15 +126,16 @@ repositories {
mavenLocal()
}

// The minimum supported THEOplayer version is 10.12.0
def theoVersion = safeExtGet('THEOplayer_sdk', '[10.12.0, 11.0.0)')
def theoMediaSessionVersion = safeExtGet('THEOplayer_mediasession', '[8.0.0, 11.0.0)')
def theoAdsWrapperVersion = "10.12.0"
// The minimum supported THEOplayer version is 11.0.0
def theoVersion = safeExtGet('THEOplayer_sdk', '[11.0.0, 12.0.0)')
def theoMediaSessionVersion = safeExtGet('THEOplayer_mediasession', '[11.0.0, 12.0.0)')
def theoAdsWrapperVersion = "11.0.0"
def coroutinesVersion = safeExtGet('coroutinesVersion', '1.10.2')
def appcompatVersion = safeExtGet('appcompatVersion', '1.7.1')
def corektxVersion = safeExtGet('corektxVersion', '1.16.0')
def gsonVersion = safeExtGet('gsonVersion', '2.13.1')
def corektxVersion = safeExtGet('corektxVersion', '1.17.0')
def gsonVersion = safeExtGet('gsonVersion', '2.13.2')
def activityktxVersion = safeExtGet('activityktxVersion', '1.10.1')
def coreLibraryDesugaringVersion = safeExtGet('coreLibraryDesugaringVersion', '2.1.5')

dependencies {
def addOptiViewIntegration = { enabled, notation, additional = null ->
Expand All @@ -156,6 +161,7 @@ dependencies {
implementation("androidx.core:core-ktx:$corektxVersion")
implementation("androidx.activity:activity-ktx:$activityktxVersion")
implementation("com.google.code.gson:gson:$gsonVersion")
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:$coreLibraryDesugaringVersion")

println("Using THEOplayer (${versionString(theoVersion)})")
implementation("com.theoplayer.theoplayer-sdk-android:core:$theoVersion")
Expand Down
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>10.12.0</modelVersion>
<modelVersion>11.0.0</modelVersion>
<groupId>com.theoplayer.theoplayer-sdk-android</groupId>
<artifactId>ads-wrapper</artifactId>
<version>10.12.0</version>
<version>11.0.0</version>
<packaging>aar</packaging>
<dependencies>
<!-- Include transitive dependencies -->
<dependency>
<groupId>com.theoplayer.theoplayer-sdk-android</groupId>
<artifactId>integration-ads-ima</artifactId>
<version>[10.0.0,11.0.0)</version>
<version>[11.0.0,12.0.0)</version>
<scope>runtime</scope>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
<groupId>com.theoplayer.theoplayer-sdk-android</groupId>
<artifactId>ads-wrapper</artifactId>
<versioning>
<latest>10.12.0</latest>
<release>10.12.0</release>
<latest>11.0.0</latest>
<release>11.0.0</release>
<versions>
<version>10.12.0</version>
<version>11.0.0</version>
</versions>
<lastUpdated>20260318164412</lastUpdated>
<lastUpdated>20260410095400</lastUpdated>
</versioning>
</metadata>
14 changes: 7 additions & 7 deletions android/src/main/java/com/theoplayer/PlayerConfigAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -133,24 +133,24 @@ class PlayerConfigAdapter(private val configProps: ReadableMap?) {
getMap(PROP_FEATURE_FLAGS)?.toHashMap()?.forEach { (key, value) ->
convertedMap[key] = value as String
}
featureFlags = convertedMap
setFeatureFlags(convertedMap)
}
// The maximum number of VAST redirects.
if (hasKey(PROP_MAX_REDIRECTS)) {
maxRedirects = getInt(PROP_MAX_REDIRECTS)
}
// The partner provided player type.
playerType = "THEOplayer"
setPlayerType("THEOplayer")
// The partner provided player version.
playerVersion = THEOplayerGlobal.getVersion()
setPlayerVersion(THEOplayerGlobal.getVersion())
// The Publisher Provided Identification (PPID) sent with ads request.
if (hasKey(PROP_PPID)) {
ppid = getString(PROP_PPID) ?: ""
setPpid(getString(PROP_PPID) ?: "")
}
// The session ID to identify a single user session. This should be a UUID. It
// is used exclusively for frequency capping across the user session.
if (hasKey(PROP_SESSION_ID)) {
sessionId = getString(PROP_PPID) ?: ""
setSessionId(getString(PROP_PPID) ?: "")
}
// Toggles debug mode which will output detailed log information to the console.
if (hasKey(PROP_ENABLE_DEBUG_MODE)) {
Expand All @@ -177,11 +177,11 @@ class PlayerConfigAdapter(private val configProps: ReadableMap?) {
enablePreloading = preloadTypeString !== "none"
}
if (hasKey(PROP_ALLOWED_MIMETYPES)) {
mimeTypes = ArrayList<String>().apply {
setMimeTypes(ArrayList<String>().apply {
getArray(PROP_ALLOWED_MIMETYPES)?.toArrayList()?.forEach {
add(it as String)
}
}
})
}
}
// bitrate and timeout are configured under the ima config
Expand Down
19 changes: 7 additions & 12 deletions android/src/main/java/com/theoplayer/ads/AdAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ object AdAdapter {
adPayload.putDouble(PROP_AD_HEIGHT, ad.imaAd.vastMediaHeight.toDouble())
adPayload.putString(PROP_AD_CONTENT_TYPE, ad.imaAd.contentType)
adPayload.putString(PROP_AD_DESCRIPTION, ad.imaAd.description)
} catch (ignore: Exception) {
} catch (_: Exception) {
// googleImaAd.getImaAd() is not known yet
}
val universalAdIdsPayload = Arguments.createArray()
Expand Down Expand Up @@ -142,7 +142,7 @@ object AdAdapter {
return adbreakPayload
}
adbreakPayload.putString(PROP_ADBREAK_INTEGRATION, adbreak.integration.type)
adbreakPayload.putString(PROP_ADBREAK_ID, adbreak.idAsString)
adbreakPayload.putString(PROP_ADBREAK_ID, adbreak.id)
adbreakPayload.putInt(PROP_ADBREAK_MAXDURATION,adbreak.maxDuration)
adbreakPayload.putInt(PROP_ADBREAK_TIMEOFFSET, adbreak.timeOffset)
adbreakPayload.putDouble(PROP_ADBREAK_MAXREMAININGDURATION, adbreak.maxRemainingDuration)
Expand Down Expand Up @@ -288,10 +288,15 @@ object AdAdapter {
return adBreak.getString(PROP_AD_CUSTOM_INTEGRATION)
}

@Deprecated("Deprecated in favor of getIdAsString()")
override fun getIdAsString(): String? {
return if (adBreak.hasKey(PROP_ADBREAK_ID)) adBreak.getString(PROP_ADBREAK_ID) else null
}

override fun getId(): String? {
return if (adBreak.hasKey(PROP_ADBREAK_ID)) adBreak.getString(PROP_ADBREAK_ID) else null
}

override fun getCustomData(): Any? {
// Not supported yet
return null
Expand Down Expand Up @@ -415,16 +420,6 @@ object AdAdapter {
return ad?.getString(PROP_AD_TRAFFICKING_PARAMETERS) ?: ""
}

@Deprecated("Deprecated in Java")
override fun getUniversalAdIdRegistry(): String {
return ""
}

@Deprecated("Deprecated in Java")
override fun getUniversalAdIdValue(): String {
return ad?.getString(PROP_UNIVERSAL_AD_ID_VALUE) ?: ""
}

override fun getCompanionAds(): List<com.google.ads.interactivemedia.v3.api.CompanionAd> {
return emptyList()
}
Expand Down
1 change: 0 additions & 1 deletion android/src/main/java/com/theoplayer/cast/CastModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ class CastModule(context: ReactApplicationContext) : ReactContextBaseJavaModule(
PlayerCastState.AVAILABLE -> "available"
PlayerCastState.CONNECTED -> "connected"
PlayerCastState.CONNECTING -> "connecting"
PlayerCastState.UNAVAILABLE -> "unavailable"
else -> "unavailable"
}
}
Expand Down
31 changes: 14 additions & 17 deletions android/src/main/java/com/theoplayer/track/TrackListAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ private const val PROP_NAME = "name"
private const val PROP_ENABLED = "enabled"
private const val PROP_SRC = "src"
private const val PROP_FORCED = "forced"
private const val PROP_CAPTION_CHANNEL = "captionChannel"
private const val PROP_AUDIO_SAMPLING_RATE = "audioSamplingRate"
private const val PROP_BANDWIDTH = "bandwidth"
private const val PROP_QUALITIES = "qualities"
Expand All @@ -43,9 +44,6 @@ private const val PROP_ENDDATE = "endDate"
private const val PROP_DURATION = "duration"
private const val PROP_PLANNED_DURATION = "plannedDuration"
private const val PROP_END_ON_NEXT = "endOnNext"
private const val PROP_SCTE35CMD = "scte35Cmd"
private const val PROP_SCTE35OUT = "scte35Out"
private const val PROP_SCTE35IN = "scte35In"
private const val PROP_CUSTOM_ATTRIBUTES = "customAttributes"

object TrackListAdapter {
Expand All @@ -72,6 +70,9 @@ object TrackListAdapter {
textTrackPayload.putString(PROP_SRC, textTrack.source)
textTrackPayload.putBoolean(PROP_FORCED, textTrack.isForced)

// THEOplayer v10.13+
textTrack.captionChannel?.let { textTrackPayload.putInt(PROP_CAPTION_CHANNEL, it) }

// Optionally pass cue list.
val cueList = textTrack.cues
if (cueList != null) {
Expand Down Expand Up @@ -167,13 +168,12 @@ object TrackListAdapter {
audioTrackPayload.putString(PROP_LABEL, audioTrack.label)
audioTrackPayload.putString(PROP_LANGUAGE, audioTrack.language)
audioTrackPayload.putBoolean(PROP_ENABLED, audioTrack.isEnabled)
val qualityList = audioTrack.qualities
val qualities = Arguments.createArray()
try {
qualityList?.forEach { quality ->
audioTrack.qualities.forEach { quality ->
qualities.pushMap(fromAudioQuality(quality))
}
} catch (ignore: NullPointerException) {
} catch (_: NullPointerException) {
}
audioTrackPayload.putArray(PROP_QUALITIES, qualities)
val activeQuality = audioTrack.activeQuality
Expand Down Expand Up @@ -214,18 +214,15 @@ object TrackListAdapter {
videoTrackPayload.putBoolean(PROP_ENABLED, videoTrack.isEnabled)
val qualities = Arguments.createArray()
try {
val qualityList = videoTrack.qualities
if (qualityList != null) {
// Sort qualities according to (height, bandwidth)
val sortedQualityList = QualityListAdapter(qualityList)
sortedQualityList.sort { o: VideoQuality, t1: VideoQuality ->
if (o.height == t1.height) t1.bandwidth.compareTo(o.bandwidth) else t1.height.compareTo(o.height)
}
for (quality in sortedQualityList) {
qualities.pushMap(fromVideoQuality(quality as VideoQuality))
}
// Sort qualities according to (height, bandwidth)
val sortedQualityList = QualityListAdapter(videoTrack.qualities)
sortedQualityList.sort { o: VideoQuality, t1: VideoQuality ->
if (o.height == t1.height) t1.bandwidth.compareTo(o.bandwidth) else t1.height.compareTo(o.height)
}
for (quality in sortedQualityList) {
qualities.pushMap(fromVideoQuality(quality as VideoQuality))
}
} catch (ignore: java.lang.NullPointerException) {
} catch (_: java.lang.NullPointerException) {
}
videoTrackPayload.putArray(PROP_QUALITIES, qualities)
val activeQuality = videoTrack.activeQuality
Expand Down
41 changes: 41 additions & 0 deletions doc/migrating-to-react-native-theoplayer-11.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Migrating to THEOplayer React Native SDK 11.x

This article will guide you through updating to THEOplayer React Native SDK version 11 (from version 10),
and the changes needed in your code.

## Update React Native THEOplayer

Run the following command to install THEOplayer React Native SDK version 11:

```bash
npm install react-native-theoplayer@11
```

## Breaking API changes

- Removed deprecated `ResizeEvent` in favor of `DimensionChangeEvent`.
- Removed deprecated `player.theolive` property in favor of `player.theoLive`.
- Removed deprecated `source.integration` property in favor of `source.type`.

## Breaking Changes on Web

The breaking changes for the native Web SDK are listed in the v11 [changelog](https://optiview.dolby.com/docs/theoplayer/changelog/#-breaking-changes),
none of which impact the React Native SDK on Web.

## Breaking Changes on iOS

The breaking changes for the native Web SDK are listed in the v11 [changelog](https://optiview.dolby.com/docs/theoplayer/changelog/#-breaking-changes-2).

The following updates in particular impact the React Native SDK on iOS.

- The minimum supported iOS/tvOS version is now 15.0, dropping support for iOS/tvOS 13 and 14.

## Breaking Changes on Android

The breaking changes for the native Android SDK are listed in the v11 [changelog](https://optiview.dolby.com/docs/theoplayer/changelog/#-breaking-changes-1).

The following updates in particular impact the React Native SDK on Android.

- The Google IMA SDK integration now requires [core library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring) to be enabled.
See [our updated guide for Google IMA](https://optiview.dolby.com/docs/theoplayer/how-to-guides/ads/google-ima/#android-sdk) for instructions, or the
React Native THEOplayer [example app](https://github.com/THEOplayer/react-native-theoplayer/tree/develop/example) for a sample implementation.
9 changes: 7 additions & 2 deletions e2e/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ react {

/* Variants */
// The list of variants to that are debuggable. For those we're going to
// skip the bundling of the JS bundle and the assets. By default is just 'debug'.
// skip the bundling of the JS bundle and the assets. Default is "debug", "debugOptimized".
// If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
// debuggableVariants = ["liteDebug", "prodDebug"]
// debuggableVariants = ["liteDebug", "liteDebugOptimized", "prodDebug", "prodDebugOptimized"]

/* Bundling */
// A list containing the node command and its flags. Default is just 'node'.
Expand Down Expand Up @@ -94,6 +94,9 @@ android {
keyPassword 'android'
}
}
compileOptions {
coreLibraryDesugaringEnabled true
}
buildTypes {
debug {
signingConfig signingConfigs.debug
Expand All @@ -119,6 +122,8 @@ dependencies {
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")

coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")

if (hermesEnabled.toBoolean()) {
implementation("com.facebook.react:hermes-android")
} else {
Expand Down
Loading
Loading