Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
ac30ad9
Keep GitHub Actions up-to-date
MattiasBuelens Mar 3, 2026
f701aa1
Update GitHub Actions
MattiasBuelens Mar 3, 2026
53f5e7e
Update `setup-gradle` action to version 5
MattiasBuelens Mar 3, 2026
ae364d3
Enable Gradle configuration cache
MattiasBuelens Mar 3, 2026
b2df371
Allow writing to cache from `main` and `develop`
MattiasBuelens Mar 3, 2026
714e8de
Merge pull request #83 from THEOplayer/maintenance/improve-ci
MattiasBuelens Mar 3, 2026
f745452
Bump actions/create-github-app-token from 2 to 3 (#87)
dependabot[bot] Mar 17, 2026
9f90289
Add unit tests step to the CI workflow (#86)
adadukin-dolby Mar 17, 2026
460c031
Bump minimum THEOplayer version to 7.6.0
MattiasBuelens Mar 16, 2026
86f3e27
Keep using `THEOplayerConfig.Builder.pipConfiguration` for now
MattiasBuelens Mar 16, 2026
93f0e4c
Add flag to install lowest supported player version
MattiasBuelens Mar 16, 2026
bc0e8cb
Test lowest supported player version on CI
MattiasBuelens Mar 16, 2026
3ffcab6
Update changelog
MattiasBuelens Mar 16, 2026
f635e6b
Run tests first
MattiasBuelens Mar 17, 2026
0a1f7d8
Merge pull request #85 from THEOplayer/bugfix/minimum-player-version
MattiasBuelens Mar 17, 2026
cce9bf8
Use product flavor for latest or minimum supported THEOplayer (#88)
MattiasBuelens Mar 18, 2026
7369976
Check if Activity is in picture-in-picture mode
MattiasBuelens Mar 20, 2026
2c6a5ac
Move to PictureInPictureUtil
MattiasBuelens Mar 20, 2026
f2871b8
Listen for PIP mode changes
MattiasBuelens Mar 20, 2026
f25de99
Fix `Player.pictureInPicture` not correctly updating
MattiasBuelens Mar 20, 2026
7b3370f
Hide all UI controls when in PIP mode
MattiasBuelens Mar 20, 2026
a8e9879
Extract PlayerContent composable
MattiasBuelens Mar 20, 2026
51b787d
Add custom PIP button to sample app
MattiasBuelens Mar 20, 2026
73aaa13
Create THEOplayerView in onCreate
MattiasBuelens Mar 20, 2026
3d874b0
Use `PiPType.CUSTOM` for custom PIP
MattiasBuelens Mar 20, 2026
2786465
Rename import
MattiasBuelens Mar 20, 2026
1dc53c0
Update changelog
MattiasBuelens Mar 23, 2026
ca78d3c
Check if we're transitioning to PIP mode
MattiasBuelens Mar 23, 2026
63ba8aa
Optimize slightly
MattiasBuelens Mar 23, 2026
d1d4235
Simplify
MattiasBuelens Mar 23, 2026
98a7203
Merge pull request #89 from THEOplayer/bugfix/activity-pip
MattiasBuelens Mar 23, 2026
bc0f7e4
Remove obsolete property
MattiasBuelens Mar 23, 2026
11a9ab7
1.13.3
Mar 23, 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
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
15 changes: 9 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,18 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Setup Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 17
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }}
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
- name: Run tests
run: ./gradlew test --configuration-cache
- name: Assemble
run: ./gradlew assembleRelease
run: ./gradlew assembleRelease --configuration-cache
4 changes: 2 additions & 2 deletions .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ jobs:
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- name: Create app token
uses: actions/create-github-app-token@v1
uses: actions/create-github-app-token@v3
id: app-token
with:
app-id: ${{ vars.THEOPLAYER_BOT_APP_ID }}
private-key: ${{ secrets.THEOPLAYER_BOT_PRIVATE_KEY }}
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ steps.app-token.outputs.token }}
- name: Configure Git user
Expand Down
17 changes: 9 additions & 8 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,27 +25,28 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Setup Pages
uses: actions/configure-pages@v4
uses: actions/configure-pages@v5
- name: Setup Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 17
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: true
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
- name: Build API documentation with Dokka
run: ./gradlew ui:dokkaGeneratePublicationHtml
run: ./gradlew ui:dokkaGeneratePublicationHtml --configuration-cache
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./site
destination: ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
uses: actions/upload-pages-artifact@v4

# Deployment job
deploy:
Expand Down
15 changes: 8 additions & 7 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,30 +21,31 @@ jobs:
id-token: write
steps:
- name: Create app token
uses: actions/create-github-app-token@v1
uses: actions/create-github-app-token@v3
id: app-token
with:
app-id: ${{ vars.THEOPLAYER_BOT_APP_ID }}
private-key: ${{ secrets.THEOPLAYER_BOT_PRIVATE_KEY }}
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ steps.app-token.outputs.token }}
- name: Configure Git user
run: |
git config user.name 'theoplayer-bot[bot]'
git config user.email '873105+theoplayer-bot[bot]@users.noreply.github.com'
- name: Setup Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 17
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: true
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
- name: Publish package
run: ./gradlew publish
run: ./gradlew publish --configuration-cache
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPOSILITE_USERNAME: ${{ secrets.REPOSILITE_USERNAME }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/sync-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Create app token
uses: actions/create-github-app-token@v1
uses: actions/create-github-app-token@v3
id: app-token
with:
app-id: ${{ vars.THEOPLAYER_BOT_APP_ID }}
private-key: ${{ secrets.THEOPLAYER_BOT_PRIVATE_KEY }}
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ steps.app-token.outputs.token }}
ref: develop
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@
> - 🏠 Internal
> - 💅 Polish

## v1.13.3 (2026-03-23)

* 🐛 Changed the minimum supported THEOplayer version to 7.6.0. ([#85](https://github.com/THEOplayer/android-ui/pull/85))
* This was effectively already the minimum version as of Open Video UI for Android version 1.7.2, but it wasn't noticed until now.
* Future versions will be properly tested with the minimum supported THEOplayer version to avoid similar compatibility issues.
* 🐛 `Player.pictureInPicture` now also checks whether the `Activity` itself is in picture-in-picture mode, in case the activity has custom picture-in-picture logic (that does not use THEOplayer's `PiPManager` API). ([#89](https://github.com/THEOplayer/android-ui/pull/89/))

## v1.13.2 (2026-03-03)

* 🐛 Fixed `PictureInPictureButton` to only be shown when the backing `THEOplayerView` has a valid `PiPConfiguration`. ([#81](https://github.com/THEOplayer/android-ui/pull/81))
Expand Down
33 changes: 28 additions & 5 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,19 @@ android {
matchingFallbacks += listOf("debug")
}
}

flavorDimensions += "player"
productFlavors {
create("latestPlayer") {
// Use the latest supported THEOplayer version
dimension = "player"
}
create("minPlayer") {
// Use the minimum supported THEOplayer version
dimension = "player"
}
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
Expand All @@ -59,12 +72,18 @@ android {
}

dependencies {
val mavenImplementation = configurations.getByName("mavenImplementation")
val latestPlayerImplementation = configurations.getByName("latestPlayerImplementation")
val minPlayerImplementation = configurations.getByName("minPlayerImplementation")

implementation(platform(libs.androidx.compose.bom))

implementation(libs.androidx.ktx)
implementation(libs.androidx.lifecycle.compose)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.core)
implementation(libs.androidx.core.pip)
implementation(libs.androidx.compose.ui.ui)
implementation(libs.androidx.compose.ui.toolingPreview)
implementation(libs.androidx.compose.material3)
Expand All @@ -80,9 +99,13 @@ dependencies {

debugImplementation(project(":ui"))
releaseImplementation(project(":ui"))
"mavenImplementation"("com.theoplayer.android-ui:android-ui:1.+")
mavenImplementation("com.theoplayer.android-ui:android-ui:1.+")

implementation(libs.theoplayer)
implementation(libs.theoplayer.ads.ima)
implementation(libs.theoplayer.cast)
}
latestPlayerImplementation(libs.theoplayer)
latestPlayerImplementation(libs.theoplayer.ads.ima)
latestPlayerImplementation(libs.theoplayer.cast)

minPlayerImplementation(libs.theoplayer.min)
minPlayerImplementation(libs.theoplayer.min.ads.ima)
minPlayerImplementation(libs.theoplayer.min.cast)
}
Loading