Skip to content

Commit bd16530

Browse files
committed
Merge branch 'develop-v2' into v2/feature/rahullohra/build-on-sdk-37
# Conflicts: # .github/workflows/android.yml # .github/workflows/app-distribute.yml # .github/workflows/e2e-build.yml # .github/workflows/e2e-test-cron.yml # .github/workflows/e2e-test.yml # .github/workflows/internal-app-distribute.yml # gradle.properties # stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/GenericCallActionBroadcastReceiver.kt
2 parents db105f7 + f204d27 commit bd16530

364 files changed

Lines changed: 20606 additions & 6201 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/android.yml‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,13 @@ concurrency:
1818

1919
jobs:
2020
base-android-ci:
21+
permissions:
22+
contents: read
23+
pull-requests: read
2124
uses: GetStream/stream-build-conventions-android/.github/workflows/android-ci.yml@feature/rahullohra/build-on-sdk-37
22-
secrets: inherit
25+
secrets:
26+
BUILD_CACHE_AWS_REGION: ${{ secrets.BUILD_CACHE_AWS_REGION }}
27+
BUILD_CACHE_AWS_BUCKET: ${{ secrets.BUILD_CACHE_AWS_BUCKET }}
28+
BUILD_CACHE_AWS_ACCESS_KEY_ID: ${{ secrets.BUILD_CACHE_AWS_ACCESS_KEY_ID }}
29+
BUILD_CACHE_AWS_SECRET_KEY: ${{ secrets.BUILD_CACHE_AWS_SECRET_KEY }}
30+
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

‎.github/workflows/app-distribute.yml‎

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,28 @@ on:
88

99
jobs:
1010
build_dogfooding_sample_app:
11+
permissions:
12+
actions: write
13+
contents: read
1114
name: Build and Distribute Dogfooding Android
1215
runs-on: ubuntu-24.04
1316
steps:
14-
- uses: actions/checkout@v6
15-
- uses: GetStream/android-ci-actions/actions/setup-java@main
17+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
18+
- uses: GetStream/android-ci-actions/actions/setup-java@cb46e4f44d105a68738bfd2a1cfd156bb768665b
1619
with:
1720
java-version: '21'
1821
- name: Prepare environment
22+
env:
23+
ENV_PROPERTIES: ${{ secrets.ENV_PROPERTIES }}
24+
PASSPHRASE: ${{ secrets.PASSPHRASE }}
25+
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
26+
RELEASE_KEYSTORE_PROPERTIES: ${{ secrets.RELEASE_KEYSTORE_PROPERTIES }}
1927
run: |
20-
echo "${{ secrets.RELEASE_KEYSTORE }}" > .sign/release.keystore.asc
21-
gpg -d --passphrase "${{ secrets.PASSPHRASE }}" --batch .sign/release.keystore.asc > .sign/release.keystore
22-
echo "${{ secrets.RELEASE_KEYSTORE_PROPERTIES }}" > .sign/keystore.properties.asc
23-
gpg -d --passphrase "${{ secrets.PASSPHRASE }}" --batch .sign/keystore.properties.asc > .sign/keystore.properties
24-
echo "${{ secrets.ENV_PROPERTIES }}" > .env.properties
28+
echo "${{ env.RELEASE_KEYSTORE }}" > .sign/release.keystore.asc
29+
gpg -d --passphrase "${{ env.PASSPHRASE }}" --batch .sign/release.keystore.asc > .sign/release.keystore
30+
echo "${{ env.RELEASE_KEYSTORE_PROPERTIES }}" > .sign/keystore.properties.asc
31+
gpg -d --passphrase "${{ env.PASSPHRASE }}" --batch .sign/keystore.properties.asc > .sign/keystore.properties
32+
echo "${{ env.ENV_PROPERTIES }}" > .env.properties
2533
- name: Assemble
2634
run: bash ./gradlew :demo-app:assembleRelease --stacktrace
2735
- name: Upload APK
@@ -30,7 +38,7 @@ jobs:
3038
name: demo-app-release
3139
path: demo-app/build/outputs/apk/demo-app/release/
3240
- name: Upload artifact to Firebase App Distribution
33-
uses: wzieba/Firebase-Distribution-Github-Action@v1.7.1
41+
uses: wzieba/Firebase-Distribution-Github-Action@bd494989dd4bec0343f78adee87fe66e48279ad6
3442
with:
3543
appId: ${{secrets.FIREBASE_DOGFOODING_SAMPLE_APP_ID}}
3644
serviceCredentialsFileContent: ${{ secrets.CREDENTIAL_FILE_CONTENT }}

‎.github/workflows/e2e-build.yml‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,18 @@ env:
1111

1212
jobs:
1313
build:
14+
permissions:
15+
actions: write
16+
contents: read
1417
name: compose apks
1518
runs-on: ubuntu-24.04
1619
steps:
17-
- uses: actions/checkout@v6
18-
- uses: GetStream/android-ci-actions/actions/setup-java@main
20+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
21+
- uses: GetStream/android-ci-actions/actions/setup-java@cb46e4f44d105a68738bfd2a1cfd156bb768665b
1922
with:
2023
java-version: '21'
21-
- uses: GetStream/android-ci-actions/actions/enable-kvm@main
22-
- uses: GetStream/android-ci-actions/actions/setup-ruby@main
24+
- uses: GetStream/android-ci-actions/actions/enable-kvm@cb46e4f44d105a68738bfd2a1cfd156bb768665b
25+
- uses: GetStream/android-ci-actions/actions/setup-ruby@cb46e4f44d105a68738bfd2a1cfd156bb768665b
2326
- uses: GetStream/android-ci-actions/actions/gradle-cache@main
2427
- name: Build apks
2528
run: bundle exec fastlane build_e2e_test

‎.github/workflows/e2e-test-cron.yml‎

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,15 @@ env:
2020

2121
jobs:
2222
build-compose-apks:
23+
permissions:
24+
actions: write
25+
contents: read
2326
name: Build
2427
uses: ./.github/workflows/e2e-build.yml
25-
2628
run-compose-tests-nightly:
29+
permissions:
30+
actions: write
31+
contents: read
2732
name: Test compose
2833
runs-on: ubuntu-24.04
2934
needs: build-compose-apks
@@ -40,22 +45,22 @@ jobs:
4045
env:
4146
ANDROID_API_LEVEL: ${{ matrix.android_api_level }}
4247
steps:
43-
- uses: actions/checkout@v6
48+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
4449
- uses: actions/download-artifact@v8.0.1
4550
continue-on-error: true
4651
with:
4752
name: apks
48-
- uses: GetStream/android-ci-actions/actions/setup-java@main
53+
- uses: GetStream/android-ci-actions/actions/setup-java@cb46e4f44d105a68738bfd2a1cfd156bb768665b
4954
with:
5055
java-version: '21'
51-
- uses: GetStream/android-ci-actions/actions/enable-kvm@main
52-
- uses: GetStream/android-ci-actions/actions/setup-ruby@main
53-
- uses: GetStream/android-ci-actions/actions/allure-launch@main
56+
- uses: GetStream/android-ci-actions/actions/enable-kvm@cb46e4f44d105a68738bfd2a1cfd156bb768665b
57+
- uses: GetStream/android-ci-actions/actions/setup-ruby@cb46e4f44d105a68738bfd2a1cfd156bb768665b
58+
- uses: GetStream/android-ci-actions/actions/allure-launch@cb46e4f44d105a68738bfd2a1cfd156bb768665b
5459
with:
5560
allure-token: ${{ secrets.ALLURE_TOKEN }}
5661
cron: true
5762
- name: Run tests
58-
uses: reactivecircus/android-emulator-runner@v2
63+
uses: reactivecircus/android-emulator-runner@a421e43855164a8197daf9d8d40fe71c6996bb0d
5964
timeout-minutes: 120
6065
with:
6166
api-level: ${{ env.ANDROID_API_LEVEL }}
@@ -86,14 +91,16 @@ jobs:
8691
fastlane/recordings/*
8792
fastlane/video-buddy-server.log
8893
fastlane/video-buddy-console.log
89-
9094
slack:
95+
permissions:
96+
actions: write
97+
contents: read
9198
name: Slack Report
9299
runs-on: ubuntu-latest
93100
needs: [build-compose-apks, run-compose-tests-nightly]
94101
if: failure() && github.event_name == 'schedule'
95102
steps:
96-
- uses: 8398a7/action-slack@v3
103+
- uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e
97104
with:
98105
status: cancelled
99106
text: "You shall not pass!"

‎.github/workflows/e2e-test.yml‎

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,35 @@ env:
1919

2020
jobs:
2121
build-compose-apks:
22+
permissions:
23+
actions: write
24+
contents: read
25+
pull-requests: read
2226
name: Build
2327
uses: ./.github/workflows/e2e-build.yml
2428
secrets: inherit
25-
2629
allure_testops_launch:
30+
permissions:
31+
actions: write
32+
contents: read
33+
pull-requests: read
2734
name: Launch Allure TestOps
2835
runs-on: ubuntu-24.04
2936
needs: build-compose-apks
3037
outputs:
3138
launch_id: ${{ env.LAUNCH_ID }}
3239
steps:
33-
- uses: actions/checkout@v6
34-
- uses: GetStream/android-ci-actions/actions/setup-ruby@main
35-
- uses: GetStream/android-ci-actions/actions/allure-launch@main
40+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
41+
- uses: GetStream/android-ci-actions/actions/setup-ruby@cb46e4f44d105a68738bfd2a1cfd156bb768665b
42+
- uses: GetStream/android-ci-actions/actions/allure-launch@cb46e4f44d105a68738bfd2a1cfd156bb768665b
3643
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
3744
with:
3845
allure-token: ${{ secrets.ALLURE_TOKEN }}
39-
4046
run-compose-tests:
47+
permissions:
48+
actions: write
49+
contents: read
50+
pull-requests: read
4151
name: Test compose
4252
runs-on: ubuntu-24.04
4353
needs:
@@ -54,18 +64,18 @@ jobs:
5464
ANDROID_API_LEVEL: 34
5565
LAUNCH_ID: ${{ needs.allure_testops_launch.outputs.launch_id }}
5666
steps:
57-
- uses: actions/checkout@v6
67+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
5868
- uses: actions/download-artifact@v8.0.1
5969
continue-on-error: true
6070
with:
6171
name: apks
62-
- uses: GetStream/android-ci-actions/actions/setup-java@main
72+
- uses: GetStream/android-ci-actions/actions/setup-java@cb46e4f44d105a68738bfd2a1cfd156bb768665b
6373
with:
6474
java-version: '21'
65-
- uses: GetStream/android-ci-actions/actions/enable-kvm@main
66-
- uses: GetStream/android-ci-actions/actions/setup-ruby@main
75+
- uses: GetStream/android-ci-actions/actions/enable-kvm@cb46e4f44d105a68738bfd2a1cfd156bb768665b
76+
- uses: GetStream/android-ci-actions/actions/setup-ruby@cb46e4f44d105a68738bfd2a1cfd156bb768665b
6777
- name: Run tests
68-
uses: reactivecircus/android-emulator-runner@v2
78+
uses: reactivecircus/android-emulator-runner@a421e43855164a8197daf9d8d40fe71c6996bb0d
6979
timeout-minutes: 45
7080
with:
7181
api-level: ${{ env.ANDROID_API_LEVEL }}

‎.github/workflows/internal-app-distribute.yml‎

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,29 @@ env:
1616

1717
jobs:
1818
distribute_stream_video_calls_to_google_play:
19+
permissions:
20+
contents: read
1921
name: Distribute Stream Video Calls to Google Play
2022
runs-on: ubuntu-24.04
2123
steps:
22-
- uses: actions/checkout@v6
23-
- uses: GetStream/android-ci-actions/actions/setup-java@main
24+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
25+
- uses: GetStream/android-ci-actions/actions/setup-java@cb46e4f44d105a68738bfd2a1cfd156bb768665b
2426
with:
2527
java-version: '21'
2628
- name: Prepare environment
29+
env:
30+
ENV_PROPERTIES: ${{ secrets.ENV_PROPERTIES }}
31+
PASSPHRASE: ${{ secrets.PASSPHRASE }}
32+
RELEASE_KEYSTORE: ${{ secrets.RELEASE_KEYSTORE }}
33+
RELEASE_KEYSTORE_PROPERTIES: ${{ secrets.RELEASE_KEYSTORE_PROPERTIES }}
34+
SERVICE_ACCOUNT_CREDENTIALS: ${{ secrets.SERVICE_ACCOUNT_CREDENTIALS }}
2735
run: |
28-
echo "${{ secrets.RELEASE_KEYSTORE }}" > .sign/release.keystore.asc
29-
gpg -d --passphrase "${{ secrets.PASSPHRASE }}" --batch .sign/release.keystore.asc > .sign/release.keystore
30-
echo "${{ secrets.RELEASE_KEYSTORE_PROPERTIES }}" > .sign/keystore.properties.asc
31-
gpg -d --passphrase "${{ secrets.PASSPHRASE }}" --batch .sign/keystore.properties.asc > .sign/keystore.properties
32-
echo "${{ secrets.SERVICE_ACCOUNT_CREDENTIALS }}" > .sign/service-account-credentials.json.asc
33-
gpg -d --passphrase "${{ secrets.PASSPHRASE }}" --batch .sign/service-account-credentials.json.asc > .sign/service-account-credentials.json
34-
echo "${{ secrets.ENV_PROPERTIES }}" > .env.properties
36+
echo "${{ env.RELEASE_KEYSTORE }}" > .sign/release.keystore.asc
37+
gpg -d --passphrase "${{ env.PASSPHRASE }}" --batch .sign/release.keystore.asc > .sign/release.keystore
38+
echo "${{ env.RELEASE_KEYSTORE_PROPERTIES }}" > .sign/keystore.properties.asc
39+
gpg -d --passphrase "${{ env.PASSPHRASE }}" --batch .sign/keystore.properties.asc > .sign/keystore.properties
40+
echo "${{ env.SERVICE_ACCOUNT_CREDENTIALS }}" > .sign/service-account-credentials.json.asc
41+
gpg -d --passphrase "${{ env.PASSPHRASE }}" --batch .sign/service-account-credentials.json.asc > .sign/service-account-credentials.json
42+
echo "${{ env.ENV_PROPERTIES }}" > .env.properties
3543
- name: Publish Bundle
3644
run: bash ./gradlew publishBundle --stacktrace

‎.github/workflows/no-response.yml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ on:
99

1010
jobs:
1111
noResponse:
12+
permissions:
13+
contents: read
14+
issues: write
15+
pull-requests: read
1216
runs-on: ubuntu-22.04
1317
steps:
1418
- uses: lee-dohm/no-response@v0.5.0

‎.github/workflows/publish-new-version.yml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ concurrency:
1919

2020
jobs:
2121
pre_release_check:
22+
permissions:
23+
contents: read
2224
name: Pre release check
2325
runs-on: ubuntu-24.04
2426
environment: 'publish'
@@ -30,7 +32,7 @@ jobs:
3032
permissions:
3133
contents: write
3234
needs: pre_release_check
33-
uses: GetStream/stream-build-conventions-android/.github/workflows/release.yml@v0.13.1
35+
uses: GetStream/stream-build-conventions-android/.github/workflows/release.yml@8c5fbade4ee9c06a0a979bcb0866e64669254f73
3436
with:
3537
bump: ${{ inputs.bump }}
3638
secrets:

‎.github/workflows/sdk-size-updates.yml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ concurrency:
1313

1414
jobs:
1515
update-sdk-sizes:
16-
uses: GetStream/stream-build-conventions-android/.github/workflows/sdk-size-updates.yml@v0.13.1
16+
permissions:
17+
contents: read
18+
uses: GetStream/stream-build-conventions-android/.github/workflows/sdk-size-updates.yml@8c5fbade4ee9c06a0a979bcb0866e64669254f73
1719
with:
1820
modules: "stream-video-android-core stream-video-android-ui-xml stream-video-android-ui-compose"
1921
metrics-project: "stream-video-android-metrics"

‎CHANGELOG.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
## stream-video-android
1414
### 🐞 Fixed
15+
Fix `NullPointerException` logged from `SortedParticipantsState.init` on every `Call` construction. The internal sort coroutine read `Call.events` before the field was initialized, racing against the rest of `Call`'s constructor on production dispatchers. The error was captured by the call scope's exception handler — calls continued to work — but the call-event-driven resort path was effectively dead.
1516

1617
### ⬆️ Improved
1718

@@ -23,13 +24,18 @@
2324

2425
## stream-video-android-ui-compose
2526
### 🐞 Fixed
27+
Fix R8/minified release builds failing with `Missing class io.getstream.video.android.mock.StreamPreviewDataUtils` (and related preview-data classes). All `@Preview` composables were moved out of the published artifact into a `debug`-only source set, so the `stream-video-android-previewdata` utilities are no longer referenced from release code. Consumers no longer need to add the preview module or extra ProGuard rules. Fixes [#1448](https://github.com/GetStream/stream-video-android/issues/1448).
28+
Declare `kotlinx-datetime` as an explicit dependency so the livestream countdown UI no longer relies on a transitive dependency, fixing `Missing class kotlinx.datetime.*` R8 errors.
2629
On CallContent make sure to pass onBackPressed to CallAppBar in order to make the back button work.
2730

2831
### ⬆️ Improved
2932

3033
### ✅ Added
34+
Add `participantLabelContent` slot to `CallLobby` so the lobby participant label can be hidden (`{}`) or fully customized. Brings the Compose API in line with React's `VideoPreview` slot overrides.
35+
Add `videoPreviewModifier` parameter to `CallLobby` so callers can override the size, shape, padding, and background of the local video preview box. Defaults preserve the previous responsive height + 12dp rounded corner clip, matching iOS (parent-driven sizing in `GeometryReader`) and React (`className`-driven sizing on `VideoPreview`).
3136

3237
### ⚠️ Changed
38+
Deprecate the `CallLobby` overload that takes `labelPosition: Alignment`. Migrate to the new `participantLabelContent` slot; pass `{}` to hide the label or supply a composable to customize content and positioning.
3339

3440
### ❌ Removed
3541

0 commit comments

Comments
 (0)