diff --git a/.github/workflows/finish-release-train.yml b/.github/workflows/finish-release-train.yml index 6fc51e78..83a9fd82 100644 --- a/.github/workflows/finish-release-train.yml +++ b/.github/workflows/finish-release-train.yml @@ -5,12 +5,15 @@ on: - closed branches: - main + env: LC_ALL: en_US.UTF-8 LANG: en_US.UTF-8 + concurrency: group: finish-release-train-${{ github.ref_name }} cancel-in-progress: true + jobs: create_pr: if: github.event.pull_request.merged == true && startsWith(github.head_ref, 'release/v') @@ -88,3 +91,13 @@ jobs: tag: v${{ needs.create_pr.outputs.version_number }} token: ${{ secrets.GITHUB_TOKEN }} body: ${{ steps.changelog.outputs.release_notes }} + + publish_documentation: + needs: [publish_release] + name: Generate API Documentation + uses: ./.github/workflows/generate-documentation.yml + secrets: + GH_TOKEN: ${{ secrets.GH_TOKEN }} + GCS_ACCOUNT: ${{ secrets.GCS_ACCOUNT }} + CF_TOKEN: ${{ secrets.CF_TOKEN }} + CF_ZONEID: ${{ secrets.CF_ZONEID }} diff --git a/.github/workflows/generate-documentation.yml b/.github/workflows/generate-documentation.yml index fd16ea04..71d8a0b9 100644 --- a/.github/workflows/generate-documentation.yml +++ b/.github/workflows/generate-documentation.yml @@ -1,10 +1,65 @@ name: Generate documentation on: + workflow_call: + secrets: + GH_TOKEN: + description: GitHub token to access player-ci repo for CI scripts + required: true + GCS_ACCOUNT: + description: Google Cloud Storage account for uploading API docs + required: true + CF_TOKEN: + description: CloudFlare token for API docs cache purging + required: true + CF_ZONEID: + description: CloudFlare zone ID for API docs cache purging + required: true + workflow_dispatch: +env: + LC_ALL: en_US.UTF-8 + LANG: en_US.UTF-8 + jobs: - placeholder: - name: Placeholder job + generate-documentation: + env: + GH_TOKEN: ${{ secrets.GH_TOKEN }} + GC_SACCOUNT: ${{ secrets.GCS_ACCOUNT }} + CF_TOKEN: ${{ secrets.CF_TOKEN }} + CF_ZONEID: ${{ secrets.CF_ZONEID }} + + name: Generate documentation runs-on: ubuntu-latest steps: - - run: echo "Hello, world!" + - uses: actions/checkout@v4 + + - name: Setup node and npm registry + uses: actions/setup-node@v3 + with: + node-version: '16' + registry-url: 'https://registry.npmjs.org/' + cache: 'yarn' + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Install dependencies (example/) + run: yarn example install --frozen-lockfile + + - name: Detect version using jq + run: | + echo "PCI_BRANCH=$(jq -r '.version' package.json)" >> $GITHUB_ENV + + - name: Generate documentation + run: yarn docs + + - name: Install CI scripts + run: | + curl -sS -H "Authorization: token ${GH_TOKEN}" -L https://raw.githubusercontent.com/bitmovin-engineering/player-ci/master/install.sh | bash + + - name: Upload to CDN + run: node ./ci_scripts/src/uploadToGcs.js reactnative ../../docs/generated + + - name: Purge CDN cache + run: node ./ci_scripts/src/purgeCloudflarePath.js 'reactnative' diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fccf185..37837c3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [Unreleased] + +### Added + +- API Reference now can be found [here](https://cdn.bitmovin.com/player/reactnative/0/docs/index.html) + +### Changed + +- Update IMA SDK dependency on Android to `3.31.0` +- Update Bitmovin's native Android SDK version to `3.47.0` + + ## [0.12.0] (2023-09-25) ### Added diff --git a/README.md b/README.md index 62de9eef..7596dc8a 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,10 @@ Please refer to the [Features](https://developer.bitmovin.com/playback/docs/reac ## Documentation +### API Reference + +Our API reference can be found [here](https://cdn.bitmovin.com/player/reactnative/0/docs/index.html). + ### Getting Started Guide Our [Getting Started Guide](https://developer.bitmovin.com/playback/docs/getting-started-react-native) walks you through setting up and configuring the Bitmovin Player in React Native projects. @@ -41,6 +45,7 @@ Check out our [React Native Guides](https://developer.bitmovin.com/playback/docs In the [/example/](https://github.com/bitmovin/bitmovin-player-react-native/tree/development/example) folder you can find a sample application showcasing many of the features of the Player React Native SDK. ## Maintenance and Updates + As an open source project, this library is not part of a regular maintenance or update schedule and is updated on an adhoc basis when contributions are made. ## Contributing to this project @@ -48,14 +53,17 @@ As an open source project, this library is not part of a regular maintenance or We are pleased to accept changes, updates and fixes from the community wishing to use and expand this project. Bitmovin will review any Pull Requests made. We do our best to provide timely feedback, but please note that no SLAs apply. New releases are tagged and published on our discretion. Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more details on how to contribute. ## Raising a Feature Suggestion + If you see something missing that might be useful but are unable to contribute the feature yourself, please feel free to [submit a feature request](https://community.bitmovin.com/t/how-to-submit-a-feature-request-to-us/1463) through the Bitmovin Community. Feature suggestions will be considered by Bitmovin’s Product team for future roadmap plans. ## Reporting a bug + If you come across a bug related to the Player React Native SDK, please raise this through the support ticketing system accessible in your [Bitmovin Dashboard](https://dashboard.bitmovin.com/support/tickets). ## Support and SLA Disclaimer + As an open-source project and not a core product offering, any request, issue or query related to this project is excluded from any SLA and Support terms that a customer might have with either Bitmovin or another third-party service provider or Company contributing to this project. Any and all updates are purely at the contributor's discretion. ## Need more help? -Should you need further help, please raise your request to your Bitmovin account team. We can assist in a number of ways, from providing you professional services help to putting you in touch with preferred system integrators who can work with you to achieve your goals. +Should you need further help, please raise your request to your Bitmovin account team. We can assist in a number of ways, from providing you professional services help to putting you in touch with preferred system integrators who can work with you to achieve your goals. diff --git a/android/build.gradle b/android/build.gradle index 7ea3b6a7..34b847aa 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -57,9 +57,9 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion" - implementation 'com.google.ads.interactivemedia.v3:interactivemedia:3.29.0' + implementation 'com.google.ads.interactivemedia.v3:interactivemedia:3.31.0' implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' - implementation 'com.bitmovin.player:player:3.46.0+jason' + implementation 'com.bitmovin.player:player:3.47.0+jason' //noinspection GradleDynamicVersion implementation 'com.facebook.react:react-native:+' // From node_modules } diff --git a/package.json b/package.json index 5ff00bac..fdaa61d5 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "pods-update": "cd example/ios && pod update --silent", "bootstrap": "yarn && yarn example && yarn pods", "prepare": "husky install", - "docs": "typedoc --options ./typedoc.json" + "docs": "typedoc" }, "keywords": [ "react-native", diff --git a/src/subtitleTrack.ts b/src/subtitleTrack.ts index f2003a54..950f3987 100644 --- a/src/subtitleTrack.ts +++ b/src/subtitleTrack.ts @@ -49,37 +49,9 @@ export interface SubtitleTrack { * A subtitle track that can be added to `SourceConfig.subtitleTracks`. * */ -export interface SideLoadedSubtitleTrack { - /** - * The URL to the timed file, e.g. WebVTT file. - */ +export interface SideLoadedSubtitleTrack extends SubtitleTrack { url: string; - /** - * The label for this track. - */ label: string; - /** - * The IETF BCP 47 language tag associated with this track, e.g. `pt`, `en`, `es` etc. - */ language: string; - /** - * The unique identifier for this track. If no value is provided, a random UUIDv4 will be generated for it. - */ - identifier?: string; - /** - * Specifies the file format to be used by this track. - */ format: SubtitleFormat; - /** - * If set to true, this track would be considered as default. Default is `false`. - */ - isDefault?: boolean; - /** - * Tells if a subtitle track is forced. If set to `true` it means that the player should automatically - * select and switch this subtitle according to the selected audio language. Forced subtitles do - * not appear in `Player.getAvailableSubtitles`. - * - * Default is `false`. - */ - isForced?: boolean; }