Skip to content

Commit 12212db

Browse files
Merge branch 'main' of https://github.com/android/nowinandroid into dependabot/gradle/androidx.activity-activity-compose-1.8.2
2 parents 96d2a92 + 59ed7f4 commit 12212db

File tree

144 files changed

+4325
-395
lines changed

Some content is hidden

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

144 files changed

+4325
-395
lines changed

.github/pull_request_template.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
1-
Thanks for submitting a pull request. Please include the following information.
1+
_Thanks for submitting a pull request. Please include the following information._
22

33
**What I have done and why**
4-
Include a summary of what your pull request contains, and why you have made these changes.
4+
5+
_Include a summary of what your pull request contains, and why you have made these changes._
56

67
Fixes #<issue_number_goes_here>
78

9+
**How I'm testing it**
10+
11+
_Choose at least one:_
12+
- Unit tests
13+
- UI tests
14+
- Screenshot tests
15+
- N/A _(provide justification)_
16+
817
**Do tests pass?**
918
- [ ] Run local tests on `DemoDebug` variant: `./gradlew testDemoDebug`
1019
- [ ] Check formatting: `./gradlew --init-script gradle/init.gradle.kts spotlessApply`

.github/workflows/Build.yaml

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ jobs:
1717

1818
permissions:
1919
contents: write
20+
pull-requests: write
2021

2122
timeout-minutes: 60
2223

@@ -100,12 +101,13 @@ jobs:
100101
commit_message: "🤖 Updates screenshots"
101102

102103
# Run local tests after screenshot tests to avoid wrong UP-TO-DATE. TODO: Ignore screenshots.
103-
- name: Run local tests
104+
- name: Run local tests and create report
104105
if: always()
105106
run: ./gradlew testDemoDebug :lint:test
106107
# Replace task exclusions with `-Pandroidx.baselineprofile.skipgeneration` when
107108
# https://android-review.googlesource.com/c/platform/frameworks/support/+/2602790 landed in a
108109
# release build
110+
109111
- name: Build all build type and flavor permutations
110112
run: ./gradlew :app:assemble :benchmarks:assemble
111113
-x pixel6Api33ProdNonMinifiedReleaseAndroidTest
@@ -119,11 +121,11 @@ jobs:
119121
name: APKs
120122
path: '**/build/outputs/apk/**/*.apk'
121123

122-
- name: Upload test results (XML)
124+
- name: Upload JVM local results (XML)
123125
if: always()
124126
uses: actions/upload-artifact@v4
125127
with:
126-
name: test-results
128+
name: local-test-results
127129
path: '**/build/test-results/test*UnitTest/**.xml'
128130

129131
- name: Check lint
@@ -180,10 +182,7 @@ jobs:
180182
- name: Setup Gradle
181183
uses: gradle/gradle-build-action@v3
182184

183-
- name: Build projects before running emulator
184-
run: ./gradlew packageDemoDebug packageDemoDebugAndroidTest
185-
186-
- name: Run instrumentation tests
185+
- name: Build projects and run instrumentation tests
187186
uses: reactivecircus/android-emulator-runner@v2
188187
with:
189188
api-level: ${{ matrix.api-level }}
@@ -193,9 +192,41 @@ jobs:
193192
heap-size: 600M
194193
script: ./gradlew connectedDemoDebugAndroidTest --daemon
195194

195+
- name: Run local tests (including Roborazzi) for the combined coverage report (only API 30)
196+
if: matrix.api-level == 30
197+
# There is no need to verify Roborazzi tests to generate coverage.
198+
run: ./gradlew testDemoDebugUnitTest -Proborazzi.test.verify=false # Add Prod if we ever add JVM tests for prod
199+
200+
# Add `createProdDebugUnitTestCoverageReport` if we ever add JVM tests for prod
201+
- name: Generate coverage reports for Debug variants (only API 30)
202+
if: matrix.api-level == 30
203+
run: ./gradlew createDemoDebugCombinedCoverageReport
204+
196205
- name: Upload test reports
197206
if: always()
198207
uses: actions/upload-artifact@v4
199208
with:
200209
name: test-reports-${{ matrix.api-level }}
201210
path: '**/build/reports/androidTests'
211+
212+
- name: Display local test coverage (only API 30)
213+
if: matrix.api-level == 30
214+
id: jacoco
215+
uses: madrapps/[email protected]
216+
with:
217+
title: Combined test coverage report
218+
min-coverage-overall: 40
219+
min-coverage-changed-files: 60
220+
paths: |
221+
${{ github.workspace }}/**/build/reports/jacoco/**/*Report.xml
222+
token: ${{ secrets.GITHUB_TOKEN }}
223+
224+
- name: Upload local coverage reports (XML + HTML) (only API 30)
225+
if: matrix.api-level == 30
226+
uses: actions/upload-artifact@v4
227+
with:
228+
name: coverage-reports
229+
if-no-files-found: error
230+
compression-level: 1
231+
overwrite: false
232+
path: '**/build/reports/jacoco/'

app-nia-catalog/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# :app-nia-catalog module
2-
3-
![Dependency graph](../docs/images/graphs/dep_graph_app_nia_catalog.png)
2+
## Dependency graph
3+
![Dependency graph](../docs/images/graphs/dep_graph_app_nia_catalog.svg)

app-nia-catalog/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ android {
5959
// To publish on the Play store a private signing key is required, but to allow anyone
6060
// who clones the code to sign and run the release variant, use the debug signing key.
6161
// TODO: Abstract the signing configuration to a separate file to avoid hardcoding this.
62-
signingConfig = signingConfigs.getByName("debug")
62+
signingConfig = signingConfigs.named("debug").get()
6363
}
6464
}
6565
}

app/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# :app module
2-
3-
![Dependency graph](../docs/images/graphs/dep_graph_app.png)
2+
## Dependency graph
3+
![Dependency graph](../docs/images/graphs/dep_graph_app.svg)

app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ plugins {
2121
alias(libs.plugins.nowinandroid.android.application.flavors)
2222
alias(libs.plugins.nowinandroid.android.application.jacoco)
2323
alias(libs.plugins.nowinandroid.android.hilt)
24-
id("jacoco")
2524
alias(libs.plugins.nowinandroid.android.application.firebase)
2625
id("com.google.android.gms.oss-licenses-plugin")
2726
alias(libs.plugins.baselineprofile)
@@ -53,7 +52,7 @@ android {
5352
// To publish on the Play store a private signing key is required, but to allow anyone
5453
// who clones the code to sign and run the release variant, use the debug signing key.
5554
// TODO: Abstract the signing configuration to a separate file to avoid hardcoding this.
56-
signingConfig = signingConfigs.getByName("debug")
55+
signingConfig = signingConfigs.named("debug").get()
5756
// Ensure Baseline Profile is fresh for release builds.
5857
baselineProfile.automaticGenerationDuringBuild = true
5958
}
@@ -101,6 +100,7 @@ dependencies {
101100
implementation(libs.androidx.navigation.compose)
102101
implementation(libs.androidx.profileinstaller)
103102
implementation(libs.androidx.tracing.ktx)
103+
implementation(libs.androidx.window.core)
104104
implementation(libs.kotlinx.coroutines.guava)
105105
implementation(libs.coil.kt)
106106

app/dependencies/prodReleaseRuntimeClasspath.txt

Lines changed: 54 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ androidx.activity:activity-compose:1.8.0
22
androidx.activity:activity-ktx:1.8.0
33
androidx.activity:activity:1.8.0
44
androidx.annotation:annotation-experimental:1.4.0
5-
androidx.annotation:annotation-jvm:1.7.1
6-
androidx.annotation:annotation:1.7.1
5+
androidx.annotation:annotation-jvm:1.8.0-beta01
6+
androidx.annotation:annotation:1.8.0-beta01
77
androidx.appcompat:appcompat-resources:1.6.1
88
androidx.appcompat:appcompat:1.6.1
99
androidx.arch.core:core-common:2.2.0
@@ -13,20 +13,20 @@ androidx.browser:browser:1.8.0
1313
androidx.collection:collection-jvm:1.4.0
1414
androidx.collection:collection-ktx:1.4.0
1515
androidx.collection:collection:1.4.0
16-
androidx.compose.animation:animation-android:1.6.3
17-
androidx.compose.animation:animation-core-android:1.6.3
18-
androidx.compose.animation:animation-core:1.6.3
19-
androidx.compose.animation:animation:1.6.3
16+
androidx.compose.animation:animation-android:1.7.0-alpha06
17+
androidx.compose.animation:animation-core-android:1.7.0-alpha06
18+
androidx.compose.animation:animation-core:1.7.0-alpha06
19+
androidx.compose.animation:animation:1.7.0-alpha06
2020
androidx.compose.foundation:foundation-android:1.6.3
2121
androidx.compose.foundation:foundation-layout-android:1.6.3
2222
androidx.compose.foundation:foundation-layout:1.6.3
2323
androidx.compose.foundation:foundation:1.6.3
24-
androidx.compose.material3.adaptive:adaptive-android:1.0.0-alpha08
25-
androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0-alpha08
26-
androidx.compose.material3.adaptive:adaptive-layout:1.0.0-alpha08
27-
androidx.compose.material3.adaptive:adaptive-navigation-android:1.0.0-alpha08
28-
androidx.compose.material3.adaptive:adaptive-navigation:1.0.0-alpha08
29-
androidx.compose.material3.adaptive:adaptive:1.0.0-alpha08
24+
androidx.compose.material3.adaptive:adaptive-android:1.0.0-alpha10
25+
androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0-alpha10
26+
androidx.compose.material3.adaptive:adaptive-layout:1.0.0-alpha10
27+
androidx.compose.material3.adaptive:adaptive-navigation-android:1.0.0-alpha10
28+
androidx.compose.material3.adaptive:adaptive-navigation:1.0.0-alpha10
29+
androidx.compose.material3.adaptive:adaptive:1.0.0-alpha10
3030
androidx.compose.material3:material3-android:1.2.1
3131
androidx.compose.material3:material3-window-size-class-android:1.2.1
3232
androidx.compose.material3:material3-window-size-class:1.2.1
@@ -37,25 +37,25 @@ androidx.compose.material:material-icons-extended-android:1.6.3
3737
androidx.compose.material:material-icons-extended:1.6.3
3838
androidx.compose.material:material-ripple-android:1.6.3
3939
androidx.compose.material:material-ripple:1.6.3
40-
androidx.compose.runtime:runtime-android:1.6.3
41-
androidx.compose.runtime:runtime-saveable-android:1.6.3
42-
androidx.compose.runtime:runtime-saveable:1.6.3
40+
androidx.compose.runtime:runtime-android:1.7.0-alpha06
41+
androidx.compose.runtime:runtime-saveable-android:1.7.0-alpha06
42+
androidx.compose.runtime:runtime-saveable:1.7.0-alpha06
4343
androidx.compose.runtime:runtime-tracing:1.0.0-beta01
44-
androidx.compose.runtime:runtime:1.6.3
45-
androidx.compose.ui:ui-android:1.6.3
46-
androidx.compose.ui:ui-geometry-android:1.6.3
47-
androidx.compose.ui:ui-geometry:1.6.3
48-
androidx.compose.ui:ui-graphics-android:1.6.3
49-
androidx.compose.ui:ui-graphics:1.6.3
50-
androidx.compose.ui:ui-text-android:1.6.3
51-
androidx.compose.ui:ui-text:1.6.3
52-
androidx.compose.ui:ui-tooling-preview-android:1.6.3
53-
androidx.compose.ui:ui-tooling-preview:1.6.3
54-
androidx.compose.ui:ui-unit-android:1.6.3
55-
androidx.compose.ui:ui-unit:1.6.3
56-
androidx.compose.ui:ui-util-android:1.6.3
57-
androidx.compose.ui:ui-util:1.6.3
58-
androidx.compose.ui:ui:1.6.3
44+
androidx.compose.runtime:runtime:1.7.0-alpha06
45+
androidx.compose.ui:ui-android:1.7.0-alpha06
46+
androidx.compose.ui:ui-geometry-android:1.7.0-alpha06
47+
androidx.compose.ui:ui-geometry:1.7.0-alpha06
48+
androidx.compose.ui:ui-graphics-android:1.7.0-alpha06
49+
androidx.compose.ui:ui-graphics:1.7.0-alpha06
50+
androidx.compose.ui:ui-text-android:1.7.0-alpha06
51+
androidx.compose.ui:ui-text:1.7.0-alpha06
52+
androidx.compose.ui:ui-tooling-preview-android:1.7.0-alpha06
53+
androidx.compose.ui:ui-tooling-preview:1.7.0-alpha06
54+
androidx.compose.ui:ui-unit-android:1.7.0-alpha06
55+
androidx.compose.ui:ui-unit:1.7.0-alpha06
56+
androidx.compose.ui:ui-util-android:1.7.0-alpha06
57+
androidx.compose.ui:ui-util:1.7.0-alpha06
58+
androidx.compose.ui:ui:1.7.0-alpha06
5959
androidx.compose:compose-bom:2024.02.02
6060
androidx.concurrent:concurrent-futures:1.1.0
6161
androidx.core:core-ktx:1.12.0
@@ -74,26 +74,32 @@ androidx.emoji2:emoji2-views-helper:1.3.0
7474
androidx.emoji2:emoji2:1.3.0
7575
androidx.exifinterface:exifinterface:1.3.7
7676
androidx.fragment:fragment:1.5.1
77+
androidx.graphics:graphics-path:1.0.0-beta02
7778
androidx.hilt:hilt-common:1.1.0
7879
androidx.hilt:hilt-navigation-compose:1.2.0
7980
androidx.hilt:hilt-navigation:1.2.0
8081
androidx.hilt:hilt-work:1.1.0
8182
androidx.interpolator:interpolator:1.0.0
8283
androidx.legacy:legacy-support-core-utils:1.0.0
83-
androidx.lifecycle:lifecycle-common-java8:2.7.0
84-
androidx.lifecycle:lifecycle-common:2.7.0
85-
androidx.lifecycle:lifecycle-livedata-core-ktx:2.7.0
86-
androidx.lifecycle:lifecycle-livedata-core:2.7.0
87-
androidx.lifecycle:lifecycle-livedata:2.7.0
88-
androidx.lifecycle:lifecycle-process:2.7.0
89-
androidx.lifecycle:lifecycle-runtime-compose:2.7.0
90-
androidx.lifecycle:lifecycle-runtime-ktx:2.7.0
91-
androidx.lifecycle:lifecycle-runtime:2.7.0
92-
androidx.lifecycle:lifecycle-service:2.7.0
93-
androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0
94-
androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0
95-
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0
96-
androidx.lifecycle:lifecycle-viewmodel:2.7.0
84+
androidx.lifecycle:lifecycle-common-java8:2.8.0-alpha04
85+
androidx.lifecycle:lifecycle-common-jvm:2.8.0-alpha04
86+
androidx.lifecycle:lifecycle-common:2.8.0-alpha04
87+
androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.0-alpha04
88+
androidx.lifecycle:lifecycle-livedata-core:2.8.0-alpha04
89+
androidx.lifecycle:lifecycle-livedata:2.8.0-alpha04
90+
androidx.lifecycle:lifecycle-process:2.8.0-alpha04
91+
androidx.lifecycle:lifecycle-runtime-android:2.8.0-alpha04
92+
androidx.lifecycle:lifecycle-runtime-compose:2.8.0-alpha04
93+
androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.0-alpha04
94+
androidx.lifecycle:lifecycle-runtime-ktx:2.8.0-alpha04
95+
androidx.lifecycle:lifecycle-runtime:2.8.0-alpha04
96+
androidx.lifecycle:lifecycle-service:2.8.0-alpha04
97+
androidx.lifecycle:lifecycle-viewmodel-android:2.8.0-alpha04
98+
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.8.0-alpha04
99+
androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0-alpha04
100+
androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.0-alpha04
101+
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.0-alpha04
102+
androidx.lifecycle:lifecycle-viewmodel:2.8.0-alpha04
97103
androidx.loader:loader:1.0.0
98104
androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
99105
androidx.metrics:metrics-performance:1.0.0-alpha04
@@ -123,14 +129,14 @@ androidx.vectordrawable:vectordrawable:1.1.0
123129
androidx.versionedparcelable:versionedparcelable:1.1.1
124130
androidx.viewpager:viewpager:1.0.0
125131
androidx.window.extensions.core:core:1.0.0
126-
androidx.window:window-core-android:1.3.0-alpha02
127-
androidx.window:window-core:1.3.0-alpha02
128-
androidx.window:window:1.3.0-alpha02
132+
androidx.window:window-core-android:1.3.0-alpha03
133+
androidx.window:window-core:1.3.0-alpha03
134+
androidx.window:window:1.3.0-alpha03
129135
androidx.work:work-runtime-ktx:2.9.0
130136
androidx.work:work-runtime:2.9.0
131137
com.caverock:androidsvg-aar:1.4
132138
com.google.accompanist:accompanist-drawablepainter:0.32.0
133-
com.google.accompanist:accompanist-permissions:0.32.0
139+
com.google.accompanist:accompanist-permissions:0.34.0
134140
com.google.android.datatransport:transport-api:3.0.0
135141
com.google.android.datatransport:transport-backend-cct:3.1.9
136142
com.google.android.datatransport:transport-runtime:3.1.9
@@ -195,8 +201,6 @@ io.coil-kt:coil-compose-base:2.6.0
195201
io.coil-kt:coil-compose:2.6.0
196202
io.coil-kt:coil-svg:2.6.0
197203
io.coil-kt:coil:2.6.0
198-
io.github.aakira:napier-android:1.4.1
199-
io.github.aakira:napier:1.4.1
200204
javax.inject:javax.inject:1
201205
org.checkerframework:checker-qual:3.12.0
202206
org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22

app/prodRelease-badging.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
66
uses-permission: name='android.permission.POST_NOTIFICATIONS'
77
uses-permission: name='android.permission.WAKE_LOCK'
88
uses-permission: name='com.google.android.c2dm.permission.RECEIVE'
9-
uses-permission: name='com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE'
109
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
1110
uses-permission: name='android.permission.FOREGROUND_SERVICE'
11+
uses-permission: name='com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE'
1212
uses-permission: name='com.google.samples.apps.nowinandroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
1313
application-label:'Now in Android'
1414
application-label-af:'Now in Android'
@@ -105,9 +105,9 @@ application-icon-640:'res/mipmap-anydpi-v26/ic_launcher.xml'
105105
application-icon-65534:'res/mipmap-anydpi-v26/ic_launcher.xml'
106106
application: label='Now in Android' icon='res/mipmap-anydpi-v26/ic_launcher.xml'
107107
launchable-activity: name='com.google.samples.apps.nowinandroid.MainActivity' label='' icon=''
108-
uses-library-not-required:'android.ext.adservices'
109108
uses-library-not-required:'androidx.window.extensions'
110109
uses-library-not-required:'androidx.window.sidecar'
110+
uses-library-not-required:'android.ext.adservices'
111111
feature-group: label=''
112112
uses-feature: name='android.hardware.faketouch'
113113
uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps'
@@ -119,3 +119,4 @@ supports-screens: 'small' 'normal' 'large' 'xlarge'
119119
supports-any-density: 'true'
120120
locales: '--_--' 'af' 'am' 'ar' 'as' 'az' 'be' 'bg' 'bn' 'bs' 'ca' 'cs' 'da' 'de' 'el' 'en-AU' 'en-CA' 'en-GB' 'en-IN' 'en-XC' 'es' 'es-US' 'et' 'eu' 'fa' 'fi' 'fr' 'fr-CA' 'gl' 'gu' 'hi' 'hr' 'hu' 'hy' 'in' 'is' 'it' 'iw' 'ja' 'ka' 'kk' 'km' 'kn' 'ko' 'ky' 'lo' 'lt' 'lv' 'mk' 'ml' 'mn' 'mr' 'ms' 'my' 'nb' 'ne' 'nl' 'or' 'pa' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'si' 'sk' 'sl' 'sq' 'sr' 'sr-Latn' 'sv' 'sw' 'ta' 'te' 'th' 'tl' 'tr' 'uk' 'ur' 'uz' 'vi' 'zh-CN' 'zh-HK' 'zh-TW' 'zu'
121121
densities: '120' '160' '240' '320' '480' '640' '65534'
122+
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'

0 commit comments

Comments
 (0)