diff --git a/.github/ci-gradle.properties b/.github/ci-gradle.properties
index dbafa68cd..a9abe496a 100644
--- a/.github/ci-gradle.properties
+++ b/.github/ci-gradle.properties
@@ -17,6 +17,8 @@
org.gradle.daemon=false
org.gradle.parallel=true
org.gradle.workers.max=2
+org.gradle.configuration-cache=true
+org.gradle.configuration-cache.parallel=true
kotlin.incremental=false
diff --git a/.github/renovate.json b/.github/renovate.json
index a9eab3c4d..0eec647d9 100644
--- a/.github/renovate.json
+++ b/.github/renovate.json
@@ -7,6 +7,8 @@
"main"
],
"gitIgnoredAuthors": [
+ "renovate[bot]@users.noreply.github.com",
+ "github-actions[bot]@users.noreply.github.com",
"41898282+github-actions[bot]@users.noreply.github.com"
]
}
diff --git a/.github/workflows/Build.yaml b/.github/workflows/Build.yaml
index 8e77a2600..5a212bffb 100644
--- a/.github/workflows/Build.yaml
+++ b/.github/workflows/Build.yaml
@@ -37,9 +37,11 @@ jobs:
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
+ with:
+ cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
- name: Check build-logic
- run: ./gradlew check -p build-logic
+ run: ./gradlew :build-logic:convention:check
- name: Check spotless
run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache
@@ -186,6 +188,8 @@ jobs:
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
+ with:
+ cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
- name: Build projects and run instrumentation tests
uses: reactivecircus/android-emulator-runner@v2
diff --git a/.github/workflows/NightlyBaselineProfiles.yaml b/.github/workflows/NightlyBaselineProfiles.yaml
index de626b0a5..6e7354476 100644
--- a/.github/workflows/NightlyBaselineProfiles.yaml
+++ b/.github/workflows/NightlyBaselineProfiles.yaml
@@ -7,6 +7,7 @@ on:
jobs:
baseline_profiles:
name: "Generate Baseline Profiles"
+ if: github.repository == 'android/nowinandroid'
runs-on: ubuntu-latest
permissions:
@@ -36,6 +37,8 @@ jobs:
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
+ with:
+ cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
- name: Setup Android SDK
uses: android-actions/setup-android@v3
@@ -44,7 +47,7 @@ jobs:
run: yes | sdkmanager --licenses || true
- name: Check build-logic
- run: ./gradlew check -p build-logic
+ run: ./gradlew :build-logic:convention:check
- name: Setup GMD
run: ./gradlew :benchmarks:pixel6Api33Setup
@@ -52,9 +55,8 @@ jobs:
-Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true
-Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
- # This generates both baseline and startup profile and adds them into the generated folder
- - name: Generate Baseline Profile
- run: ./gradlew :app:generateReleaseBaselineProfile
- -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=baselineprofile
- -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
- --stacktrace
\ No newline at end of file
+ - name: Build all build type and flavor permutations including baseline profiles
+ run: ./gradlew :app:assemble
+ -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=baselineprofile
+ -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
+ -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true
diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml
index 71ee060e1..b952ccb50 100644
--- a/.github/workflows/Release.yml
+++ b/.github/workflows/Release.yml
@@ -7,6 +7,7 @@ on:
jobs:
build:
+ if: github.repository == 'android/nowinandroid'
runs-on: ubuntu-latest
timeout-minutes: 120
@@ -33,6 +34,8 @@ jobs:
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
+ with:
+ cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
- name: Setup Android SDK
uses: android-actions/setup-android@v3
diff --git a/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt b/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt
index 852b3db52..04a864e86 100644
--- a/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt
+++ b/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt
@@ -2,24 +2,24 @@ androidx.activity:activity-compose:1.9.3
androidx.activity:activity-ktx:1.9.3
androidx.activity:activity:1.9.3
androidx.annotation:annotation-experimental:1.4.1
-androidx.annotation:annotation-jvm:1.8.1
-androidx.annotation:annotation:1.8.1
+androidx.annotation:annotation-jvm:1.9.1
+androidx.annotation:annotation:1.9.1
androidx.appcompat:appcompat-resources:1.6.1
androidx.arch.core:core-common:2.2.0
androidx.arch.core:core-runtime:2.2.0
androidx.autofill:autofill:1.0.0
androidx.browser:browser:1.8.0
-androidx.collection:collection-jvm:1.4.4
-androidx.collection:collection-ktx:1.4.4
-androidx.collection:collection:1.4.4
-androidx.compose.animation:animation-android:1.7.6
-androidx.compose.animation:animation-core-android:1.7.6
-androidx.compose.animation:animation-core:1.7.6
-androidx.compose.animation:animation:1.7.6
-androidx.compose.foundation:foundation-android:1.7.6
-androidx.compose.foundation:foundation-layout-android:1.7.6
-androidx.compose.foundation:foundation-layout:1.7.6
-androidx.compose.foundation:foundation:1.7.6
+androidx.collection:collection-jvm:1.5.0-beta01
+androidx.collection:collection-ktx:1.5.0-beta01
+androidx.collection:collection:1.5.0-beta01
+androidx.compose.animation:animation-android:1.8.0-alpha07
+androidx.compose.animation:animation-core-android:1.8.0-alpha07
+androidx.compose.animation:animation-core:1.8.0-alpha07
+androidx.compose.animation:animation:1.8.0-alpha07
+androidx.compose.foundation:foundation-android:1.8.0-alpha07
+androidx.compose.foundation:foundation-layout-android:1.8.0-alpha07
+androidx.compose.foundation:foundation-layout:1.8.0-alpha07
+androidx.compose.foundation:foundation:1.8.0-alpha07
androidx.compose.material3.adaptive:adaptive-android:1.0.0
androidx.compose.material3.adaptive:adaptive:1.0.0
androidx.compose.material3:material3-adaptive-navigation-suite-android:1.3.1
@@ -32,55 +32,55 @@ androidx.compose.material:material-icons-extended-android:1.7.6
androidx.compose.material:material-icons-extended:1.7.6
androidx.compose.material:material-ripple-android:1.7.6
androidx.compose.material:material-ripple:1.7.6
-androidx.compose.runtime:runtime-android:1.7.6
-androidx.compose.runtime:runtime-saveable-android:1.7.6
-androidx.compose.runtime:runtime-saveable:1.7.6
-androidx.compose.runtime:runtime:1.7.6
-androidx.compose.ui:ui-android:1.7.6
-androidx.compose.ui:ui-geometry-android:1.7.6
-androidx.compose.ui:ui-geometry:1.7.6
-androidx.compose.ui:ui-graphics-android:1.7.6
-androidx.compose.ui:ui-graphics:1.7.6
-androidx.compose.ui:ui-text-android:1.7.6
-androidx.compose.ui:ui-text:1.7.6
-androidx.compose.ui:ui-tooling-preview-android:1.7.6
-androidx.compose.ui:ui-tooling-preview:1.7.6
-androidx.compose.ui:ui-unit-android:1.7.6
-androidx.compose.ui:ui-unit:1.7.6
-androidx.compose.ui:ui-util-android:1.7.6
-androidx.compose.ui:ui-util:1.7.6
-androidx.compose.ui:ui:1.7.6
+androidx.compose.runtime:runtime-android:1.8.0-alpha07
+androidx.compose.runtime:runtime-saveable-android:1.8.0-alpha07
+androidx.compose.runtime:runtime-saveable:1.8.0-alpha07
+androidx.compose.runtime:runtime:1.8.0-alpha07
+androidx.compose.ui:ui-android:1.8.0-alpha07
+androidx.compose.ui:ui-geometry-android:1.8.0-alpha07
+androidx.compose.ui:ui-geometry:1.8.0-alpha07
+androidx.compose.ui:ui-graphics-android:1.8.0-alpha07
+androidx.compose.ui:ui-graphics:1.8.0-alpha07
+androidx.compose.ui:ui-text-android:1.8.0-alpha07
+androidx.compose.ui:ui-text:1.8.0-alpha07
+androidx.compose.ui:ui-tooling-preview-android:1.8.0-alpha07
+androidx.compose.ui:ui-tooling-preview:1.8.0-alpha07
+androidx.compose.ui:ui-unit-android:1.8.0-alpha07
+androidx.compose.ui:ui-unit:1.8.0-alpha07
+androidx.compose.ui:ui-util-android:1.8.0-alpha07
+androidx.compose.ui:ui-util:1.8.0-alpha07
+androidx.compose.ui:ui:1.8.0-alpha07
androidx.compose:compose-bom:2024.12.01
androidx.concurrent:concurrent-futures:1.1.0
androidx.core:core-ktx:1.13.1
androidx.core:core:1.13.1
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.0.0
-androidx.emoji2:emoji2:1.3.0
+androidx.emoji2:emoji2:1.4.0
androidx.exifinterface:exifinterface:1.3.7
androidx.fragment:fragment:1.5.1
androidx.graphics:graphics-path:1.0.1
androidx.interpolator:interpolator:1.0.0
-androidx.lifecycle:lifecycle-common-java8:2.8.3
-androidx.lifecycle:lifecycle-common-jvm:2.8.3
-androidx.lifecycle:lifecycle-common:2.8.3
-androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.3
-androidx.lifecycle:lifecycle-livedata-core:2.8.3
-androidx.lifecycle:lifecycle-livedata:2.8.3
-androidx.lifecycle:lifecycle-process:2.8.3
-androidx.lifecycle:lifecycle-runtime-android:2.8.3
-androidx.lifecycle:lifecycle-runtime-compose-android:2.8.3
-androidx.lifecycle:lifecycle-runtime-compose:2.8.3
-androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.3
-androidx.lifecycle:lifecycle-runtime-ktx:2.8.3
-androidx.lifecycle:lifecycle-runtime:2.8.3
-androidx.lifecycle:lifecycle-viewmodel-android:2.8.3
-androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.3
-androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.3
-androidx.lifecycle:lifecycle-viewmodel:2.8.3
+androidx.lifecycle:lifecycle-common-java8:2.8.7
+androidx.lifecycle:lifecycle-common-jvm:2.8.7
+androidx.lifecycle:lifecycle-common:2.8.7
+androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7
+androidx.lifecycle:lifecycle-livedata-core:2.8.7
+androidx.lifecycle:lifecycle-livedata:2.8.7
+androidx.lifecycle:lifecycle-process:2.8.7
+androidx.lifecycle:lifecycle-runtime-android:2.8.7
+androidx.lifecycle:lifecycle-runtime-compose-android:2.8.7
+androidx.lifecycle:lifecycle-runtime-compose:2.8.7
+androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.7
+androidx.lifecycle:lifecycle-runtime-ktx:2.8.7
+androidx.lifecycle:lifecycle-runtime:2.8.7
+androidx.lifecycle:lifecycle-viewmodel-android:2.8.7
+androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7
+androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7
+androidx.lifecycle:lifecycle-viewmodel:2.8.7
androidx.loader:loader:1.0.0
androidx.metrics:metrics-performance:1.0.0-beta01
-androidx.profileinstaller:profileinstaller:1.3.1
+androidx.profileinstaller:profileinstaller:1.4.0
androidx.savedstate:savedstate-ktx:1.2.1
androidx.savedstate:savedstate:1.2.1
androidx.startup:startup-runtime:1.1.1
@@ -96,10 +96,10 @@ androidx.window:window-core:1.3.0
androidx.window:window:1.3.0
com.google.accompanist:accompanist-drawablepainter:0.32.0
com.google.code.findbugs:jsr305:3.0.2
-com.google.dagger:dagger-lint-aar:2.53.1
-com.google.dagger:dagger:2.53.1
-com.google.dagger:hilt-android:2.53.1
-com.google.dagger:hilt-core:2.53.1
+com.google.dagger:dagger-lint-aar:2.54
+com.google.dagger:dagger:2.54
+com.google.dagger:hilt-android:2.54
+com.google.dagger:hilt-core:2.54
com.google.guava:listenablefuture:1.0
com.squareup.okhttp3:okhttp:4.12.0
com.squareup.okio:okio-jvm:3.9.0
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 166eb8582..05212a28f 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -116,15 +116,16 @@ dependencies {
testImplementation(projects.sync.syncTest)
testImplementation(libs.kotlin.test)
+ testDemoImplementation(libs.androidx.navigation.testing)
testDemoImplementation(libs.robolectric)
testDemoImplementation(libs.roborazzi)
testDemoImplementation(projects.core.screenshotTesting)
+ testDemoImplementation(projects.core.testing)
androidTestImplementation(projects.core.testing)
androidTestImplementation(projects.core.dataTest)
androidTestImplementation(projects.core.datastoreTest)
androidTestImplementation(libs.androidx.test.espresso.core)
- androidTestImplementation(libs.androidx.navigation.testing)
androidTestImplementation(libs.androidx.compose.ui.test)
androidTestImplementation(libs.hilt.android.testing)
androidTestImplementation(libs.kotlin.test)
diff --git a/app/dependencies/prodReleaseRuntimeClasspath.txt b/app/dependencies/prodReleaseRuntimeClasspath.txt
index 2db7fa46c..6fca688a1 100644
--- a/app/dependencies/prodReleaseRuntimeClasspath.txt
+++ b/app/dependencies/prodReleaseRuntimeClasspath.txt
@@ -2,25 +2,25 @@ androidx.activity:activity-compose:1.9.3
androidx.activity:activity-ktx:1.9.3
androidx.activity:activity:1.9.3
androidx.annotation:annotation-experimental:1.4.1
-androidx.annotation:annotation-jvm:1.8.1
-androidx.annotation:annotation:1.8.1
+androidx.annotation:annotation-jvm:1.9.1
+androidx.annotation:annotation:1.9.1
androidx.appcompat:appcompat-resources:1.7.0
androidx.appcompat:appcompat:1.7.0
androidx.arch.core:core-common:2.2.0
androidx.arch.core:core-runtime:2.2.0
androidx.autofill:autofill:1.0.0
androidx.browser:browser:1.8.0
-androidx.collection:collection-jvm:1.4.4
-androidx.collection:collection-ktx:1.4.4
-androidx.collection:collection:1.4.4
-androidx.compose.animation:animation-android:1.7.6
-androidx.compose.animation:animation-core-android:1.7.6
-androidx.compose.animation:animation-core:1.7.6
-androidx.compose.animation:animation:1.7.6
-androidx.compose.foundation:foundation-android:1.7.6
-androidx.compose.foundation:foundation-layout-android:1.7.6
-androidx.compose.foundation:foundation-layout:1.7.6
-androidx.compose.foundation:foundation:1.7.6
+androidx.collection:collection-jvm:1.5.0-beta01
+androidx.collection:collection-ktx:1.5.0-beta01
+androidx.collection:collection:1.5.0-beta01
+androidx.compose.animation:animation-android:1.8.0-alpha07
+androidx.compose.animation:animation-core-android:1.8.0-alpha07
+androidx.compose.animation:animation-core:1.8.0-alpha07
+androidx.compose.animation:animation:1.8.0-alpha07
+androidx.compose.foundation:foundation-android:1.8.0-alpha07
+androidx.compose.foundation:foundation-layout-android:1.8.0-alpha07
+androidx.compose.foundation:foundation-layout:1.8.0-alpha07
+androidx.compose.foundation:foundation:1.8.0-alpha07
androidx.compose.material3.adaptive:adaptive-android:1.0.0
androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0
androidx.compose.material3.adaptive:adaptive-layout:1.0.0
@@ -39,25 +39,25 @@ androidx.compose.material:material-icons-extended-android:1.7.6
androidx.compose.material:material-icons-extended:1.7.6
androidx.compose.material:material-ripple-android:1.7.6
androidx.compose.material:material-ripple:1.7.6
-androidx.compose.runtime:runtime-android:1.7.6
-androidx.compose.runtime:runtime-saveable-android:1.7.6
-androidx.compose.runtime:runtime-saveable:1.7.6
-androidx.compose.runtime:runtime-tracing:1.7.6
-androidx.compose.runtime:runtime:1.7.6
-androidx.compose.ui:ui-android:1.7.6
-androidx.compose.ui:ui-geometry-android:1.7.6
-androidx.compose.ui:ui-geometry:1.7.6
-androidx.compose.ui:ui-graphics-android:1.7.6
-androidx.compose.ui:ui-graphics:1.7.6
-androidx.compose.ui:ui-text-android:1.7.6
-androidx.compose.ui:ui-text:1.7.6
-androidx.compose.ui:ui-tooling-preview-android:1.7.6
-androidx.compose.ui:ui-tooling-preview:1.7.6
-androidx.compose.ui:ui-unit-android:1.7.6
-androidx.compose.ui:ui-unit:1.7.6
-androidx.compose.ui:ui-util-android:1.7.6
-androidx.compose.ui:ui-util:1.7.6
-androidx.compose.ui:ui:1.7.6
+androidx.compose.runtime:runtime-android:1.8.0-alpha07
+androidx.compose.runtime:runtime-saveable-android:1.8.0-alpha07
+androidx.compose.runtime:runtime-saveable:1.8.0-alpha07
+androidx.compose.runtime:runtime-tracing:1.8.0-alpha07
+androidx.compose.runtime:runtime:1.8.0-alpha07
+androidx.compose.ui:ui-android:1.8.0-alpha07
+androidx.compose.ui:ui-geometry-android:1.8.0-alpha07
+androidx.compose.ui:ui-geometry:1.8.0-alpha07
+androidx.compose.ui:ui-graphics-android:1.8.0-alpha07
+androidx.compose.ui:ui-graphics:1.8.0-alpha07
+androidx.compose.ui:ui-text-android:1.8.0-alpha07
+androidx.compose.ui:ui-text:1.8.0-alpha07
+androidx.compose.ui:ui-tooling-preview-android:1.8.0-alpha07
+androidx.compose.ui:ui-tooling-preview:1.8.0-alpha07
+androidx.compose.ui:ui-unit-android:1.8.0-alpha07
+androidx.compose.ui:ui-unit:1.8.0-alpha07
+androidx.compose.ui:ui-util-android:1.8.0-alpha07
+androidx.compose.ui:ui-util:1.8.0-alpha07
+androidx.compose.ui:ui:1.8.0-alpha07
androidx.compose:compose-bom:2024.12.01
androidx.concurrent:concurrent-futures-ktx:1.1.0
androidx.concurrent:concurrent-futures:1.1.0
@@ -79,8 +79,8 @@ androidx.datastore:datastore-preferences:1.1.1
androidx.datastore:datastore:1.1.1
androidx.documentfile:documentfile:1.0.0
androidx.drawerlayout:drawerlayout:1.0.0
-androidx.emoji2:emoji2-views-helper:1.3.0
-androidx.emoji2:emoji2:1.3.0
+androidx.emoji2:emoji2-views-helper:1.4.0
+androidx.emoji2:emoji2:1.4.0
androidx.exifinterface:exifinterface:1.3.7
androidx.fragment:fragment:1.5.4
androidx.graphics:graphics-path:1.0.1
@@ -164,10 +164,10 @@ com.google.android.gms:play-services-oss-licenses:17.1.0
com.google.android.gms:play-services-stats:17.0.2
com.google.android.gms:play-services-tasks:18.2.0
com.google.code.findbugs:jsr305:3.0.2
-com.google.dagger:dagger-lint-aar:2.53.1
-com.google.dagger:dagger:2.53.1
-com.google.dagger:hilt-android:2.53.1
-com.google.dagger:hilt-core:2.53.1
+com.google.dagger:dagger-lint-aar:2.54
+com.google.dagger:dagger:2.54
+com.google.dagger:hilt-android:2.54
+com.google.dagger:hilt-core:2.54
com.google.errorprone:error_prone_annotations:2.26.0
com.google.firebase:firebase-abt:21.1.1
com.google.firebase:firebase-analytics:22.1.2
@@ -216,18 +216,18 @@ org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0
org.jetbrains.kotlin:kotlin-stdlib:2.1.0
-org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0
-org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0
-org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0
-org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0
-org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0
-org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.9.0
+org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.1
+org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.1
+org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.1
+org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1
+org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.10.1
+org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.10.1
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.1
org.jetbrains.kotlinx:kotlinx-datetime:0.6.1
-org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3
-org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3
-org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3
-org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.3
-org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3
+org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0
+org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0
+org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0
+org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0
+org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0
org.jetbrains:annotations:23.0.0
org.jspecify:jspecify:1.0.0
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 7cdd25527..57077a216 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -21,7 +21,9 @@
-
+