@ -1,16 +0,0 @@
|
|||||||
---
|
|
||||||
name: Pull request
|
|
||||||
about: Create a pull request
|
|
||||||
label: 'triage me'
|
|
||||||
---
|
|
||||||
Thank you for opening a Pull Request!
|
|
||||||
Before submitting your PR, there are a few things you can do to make sure it goes smoothly:
|
|
||||||
- [ ] Make sure to open a GitHub issue as a bug/feature request before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea
|
|
||||||
- [ ] Ensure the tests and linter pass (`./gradlew --init-script gradle/init.gradle.kts spotlessApply` to automatically apply formatting)
|
|
||||||
- [ ] Appropriate docs were updated (if necessary)
|
|
||||||
|
|
||||||
Is this your first Pull Request?
|
|
||||||
- [ ] Run `./tools/setup.sh`
|
|
||||||
- [ ] Import the code formatting style as explained in [the setup script](/tools/setup.sh#L40).
|
|
||||||
|
|
||||||
Fixes #<issue_number_goes_here> 🦕
|
|
@ -0,0 +1,26 @@
|
|||||||
|
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
- package-ecosystem: "gradle"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
registries: "*"
|
||||||
|
labels: [ "version update" ]
|
||||||
|
groups:
|
||||||
|
kotlin-ksp-compose:
|
||||||
|
patterns:
|
||||||
|
- "org.jetbrains.kotlin:*"
|
||||||
|
- "org.jetbrains.kotlin.jvm"
|
||||||
|
- "com.google.devtools.ksp"
|
||||||
|
- "androidx.compose.compiler:compiler"
|
||||||
|
open-pull-requests-limit: 10
|
||||||
|
registries:
|
||||||
|
maven-google:
|
||||||
|
type: "maven-repository"
|
||||||
|
url: "https://maven.google.com"
|
||||||
|
replaces-base: true
|
@ -0,0 +1,17 @@
|
|||||||
|
Thanks for submitting a pull request. Please include the following information.
|
||||||
|
|
||||||
|
**What I have done and why**
|
||||||
|
Include a summary of what your pull request contains, and why you have made these changes.
|
||||||
|
|
||||||
|
Fixes #<issue_number_goes_here>
|
||||||
|
|
||||||
|
**Do tests pass?**
|
||||||
|
- [ ] Run local tests on `DemoDebug` variant: `./gradlew testDemoDebug`
|
||||||
|
- [ ] Check formatting: `./gradlew --init-script gradle/init.gradle.kts spotlessApply`
|
||||||
|
|
||||||
|
**Is this your first pull request?**
|
||||||
|
- [ ] [Sign the CLA](https://cla.developers.google.com/)
|
||||||
|
- [ ] Run `./tools/setup.sh`
|
||||||
|
- [ ] Import the code formatting style as explained in [the setup script](/tools/setup.sh#L40).
|
||||||
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
||||||
"extends": [
|
|
||||||
"config:base", "group:all", ":dependencyDashboard", "schedule:daily"
|
|
||||||
],
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"matchPackageNames": ["org.objenesis:objenesis"],
|
|
||||||
"allowedVersions": "<=2.6"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchPackageNames": ["com.google.protobuf"],
|
|
||||||
"allowedVersions": "<=0.8.19"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -0,0 +1,167 @@
|
|||||||
|
androidx.activity:activity-compose:1.8.0
|
||||||
|
androidx.activity:activity-ktx:1.8.0
|
||||||
|
androidx.activity:activity:1.8.0
|
||||||
|
androidx.annotation:annotation-experimental:1.3.0
|
||||||
|
androidx.annotation:annotation-jvm:1.6.0
|
||||||
|
androidx.annotation:annotation:1.6.0
|
||||||
|
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.6.0
|
||||||
|
androidx.collection:collection:1.2.0
|
||||||
|
androidx.compose.animation:animation-android:1.5.4
|
||||||
|
androidx.compose.animation:animation-core-android:1.5.4
|
||||||
|
androidx.compose.animation:animation-core:1.5.4
|
||||||
|
androidx.compose.animation:animation:1.5.4
|
||||||
|
androidx.compose.foundation:foundation-android:1.5.4
|
||||||
|
androidx.compose.foundation:foundation-layout-android:1.5.4
|
||||||
|
androidx.compose.foundation:foundation-layout:1.5.4
|
||||||
|
androidx.compose.foundation:foundation:1.5.4
|
||||||
|
androidx.compose.material3:material3:1.1.2
|
||||||
|
androidx.compose.material:material-icons-core-android:1.5.4
|
||||||
|
androidx.compose.material:material-icons-core:1.5.4
|
||||||
|
androidx.compose.material:material-icons-extended-android:1.5.4
|
||||||
|
androidx.compose.material:material-icons-extended:1.5.4
|
||||||
|
androidx.compose.material:material-ripple-android:1.5.4
|
||||||
|
androidx.compose.material:material-ripple:1.5.4
|
||||||
|
androidx.compose.runtime:runtime-android:1.5.4
|
||||||
|
androidx.compose.runtime:runtime-livedata:1.5.4
|
||||||
|
androidx.compose.runtime:runtime-saveable-android:1.5.4
|
||||||
|
androidx.compose.runtime:runtime-saveable:1.5.4
|
||||||
|
androidx.compose.runtime:runtime:1.5.4
|
||||||
|
androidx.compose.ui:ui-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-geometry-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-geometry:1.5.4
|
||||||
|
androidx.compose.ui:ui-graphics-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-graphics:1.5.4
|
||||||
|
androidx.compose.ui:ui-text-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-text:1.5.4
|
||||||
|
androidx.compose.ui:ui-tooling-preview-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-tooling-preview:1.5.4
|
||||||
|
androidx.compose.ui:ui-unit-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-unit:1.5.4
|
||||||
|
androidx.compose.ui:ui-util-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-util:1.5.4
|
||||||
|
androidx.compose.ui:ui:1.5.4
|
||||||
|
androidx.compose:compose-bom:2023.10.01
|
||||||
|
androidx.concurrent:concurrent-futures:1.1.0
|
||||||
|
androidx.core:core-ktx:1.12.0
|
||||||
|
androidx.core:core:1.12.0
|
||||||
|
androidx.customview:customview-poolingcontainer:1.0.0
|
||||||
|
androidx.customview:customview:1.0.0
|
||||||
|
androidx.datastore:datastore-core:1.0.0
|
||||||
|
androidx.datastore:datastore:1.0.0
|
||||||
|
androidx.documentfile:documentfile:1.0.0
|
||||||
|
androidx.emoji2:emoji2:1.4.0
|
||||||
|
androidx.exifinterface:exifinterface:1.3.6
|
||||||
|
androidx.fragment:fragment:1.5.1
|
||||||
|
androidx.interpolator:interpolator:1.0.0
|
||||||
|
androidx.legacy:legacy-support-core-utils:1.0.0
|
||||||
|
androidx.lifecycle:lifecycle-common-java8:2.6.1
|
||||||
|
androidx.lifecycle:lifecycle-common:2.6.1
|
||||||
|
androidx.lifecycle:lifecycle-livedata-core:2.6.1
|
||||||
|
androidx.lifecycle:lifecycle-livedata:2.6.1
|
||||||
|
androidx.lifecycle:lifecycle-process:2.6.1
|
||||||
|
androidx.lifecycle:lifecycle-runtime-ktx:2.6.1
|
||||||
|
androidx.lifecycle:lifecycle-runtime:2.6.1
|
||||||
|
androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1
|
||||||
|
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1
|
||||||
|
androidx.lifecycle:lifecycle-viewmodel:2.6.1
|
||||||
|
androidx.loader:loader:1.0.0
|
||||||
|
androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
|
||||||
|
androidx.metrics:metrics-performance:1.0.0-alpha04
|
||||||
|
androidx.print:print:1.0.0
|
||||||
|
androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05
|
||||||
|
androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05
|
||||||
|
androidx.profileinstaller:profileinstaller:1.3.1
|
||||||
|
androidx.room:room-common:2.6.0
|
||||||
|
androidx.room:room-ktx:2.6.0
|
||||||
|
androidx.room:room-runtime:2.6.0
|
||||||
|
androidx.savedstate:savedstate-ktx:1.2.1
|
||||||
|
androidx.savedstate:savedstate:1.2.1
|
||||||
|
androidx.sqlite:sqlite-framework:2.4.0
|
||||||
|
androidx.sqlite:sqlite:2.4.0
|
||||||
|
androidx.startup:startup-runtime:1.1.1
|
||||||
|
androidx.tracing:tracing-ktx:1.1.0
|
||||||
|
androidx.tracing:tracing:1.1.0
|
||||||
|
androidx.vectordrawable:vectordrawable-animated:1.1.0
|
||||||
|
androidx.vectordrawable:vectordrawable:1.1.0
|
||||||
|
androidx.versionedparcelable:versionedparcelable:1.1.1
|
||||||
|
androidx.viewpager:viewpager:1.0.0
|
||||||
|
com.caverock:androidsvg-aar:1.4
|
||||||
|
com.google.accompanist:accompanist-drawablepainter:0.30.1
|
||||||
|
com.google.android.datatransport:transport-api:3.0.0
|
||||||
|
com.google.android.datatransport:transport-backend-cct:3.1.8
|
||||||
|
com.google.android.datatransport:transport-runtime:3.1.8
|
||||||
|
com.google.android.gms:play-services-ads-identifier:18.0.0
|
||||||
|
com.google.android.gms:play-services-base:18.0.1
|
||||||
|
com.google.android.gms:play-services-basement:18.1.0
|
||||||
|
com.google.android.gms:play-services-cloud-messaging:17.0.1
|
||||||
|
com.google.android.gms:play-services-measurement-api:21.4.0
|
||||||
|
com.google.android.gms:play-services-measurement-base:21.4.0
|
||||||
|
com.google.android.gms:play-services-measurement-impl:21.4.0
|
||||||
|
com.google.android.gms:play-services-measurement-sdk-api:21.4.0
|
||||||
|
com.google.android.gms:play-services-measurement-sdk:21.4.0
|
||||||
|
com.google.android.gms:play-services-measurement:21.4.0
|
||||||
|
com.google.android.gms:play-services-stats:17.0.2
|
||||||
|
com.google.android.gms:play-services-tasks:18.0.2
|
||||||
|
com.google.code.findbugs:jsr305:3.0.2
|
||||||
|
com.google.dagger:dagger-lint-aar:2.48.1
|
||||||
|
com.google.dagger:dagger:2.48.1
|
||||||
|
com.google.dagger:hilt-android:2.48.1
|
||||||
|
com.google.dagger:hilt-core:2.48.1
|
||||||
|
com.google.errorprone:error_prone_annotations:2.11.0
|
||||||
|
com.google.firebase:firebase-analytics-ktx:21.4.0
|
||||||
|
com.google.firebase:firebase-analytics:21.4.0
|
||||||
|
com.google.firebase:firebase-annotations:16.2.0
|
||||||
|
com.google.firebase:firebase-bom:32.4.0
|
||||||
|
com.google.firebase:firebase-common-ktx:20.4.2
|
||||||
|
com.google.firebase:firebase-common:20.4.2
|
||||||
|
com.google.firebase:firebase-components:17.1.5
|
||||||
|
com.google.firebase:firebase-datatransport:18.1.7
|
||||||
|
com.google.firebase:firebase-encoders-json:18.0.0
|
||||||
|
com.google.firebase:firebase-encoders-proto:16.0.0
|
||||||
|
com.google.firebase:firebase-encoders:17.0.0
|
||||||
|
com.google.firebase:firebase-iid-interop:17.1.0
|
||||||
|
com.google.firebase:firebase-installations-interop:17.1.1
|
||||||
|
com.google.firebase:firebase-installations:17.2.0
|
||||||
|
com.google.firebase:firebase-measurement-connector:19.0.0
|
||||||
|
com.google.firebase:firebase-messaging-ktx:23.3.0
|
||||||
|
com.google.firebase:firebase-messaging:23.3.0
|
||||||
|
com.google.guava:failureaccess:1.0.1
|
||||||
|
com.google.guava:guava:31.1-android
|
||||||
|
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
|
||||||
|
com.google.j2objc:j2objc-annotations:1.3
|
||||||
|
com.google.protobuf:protobuf-javalite:3.24.4
|
||||||
|
com.google.protobuf:protobuf-kotlin-lite:3.24.4
|
||||||
|
com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0
|
||||||
|
com.squareup.okhttp3:logging-interceptor:4.12.0
|
||||||
|
com.squareup.okhttp3:okhttp:4.12.0
|
||||||
|
com.squareup.okio:okio-jvm:3.6.0
|
||||||
|
com.squareup.okio:okio:3.6.0
|
||||||
|
com.squareup.retrofit2:retrofit:2.9.0
|
||||||
|
io.coil-kt:coil-base:2.4.0
|
||||||
|
io.coil-kt:coil-compose-base:2.4.0
|
||||||
|
io.coil-kt:coil-compose:2.4.0
|
||||||
|
io.coil-kt:coil-svg:2.4.0
|
||||||
|
io.coil-kt:coil:2.4.0
|
||||||
|
javax.inject:javax.inject:1
|
||||||
|
org.checkerframework:checker-qual:3.12.0
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:1.9.10
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3
|
||||||
|
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.4.1
|
||||||
|
org.jetbrains.kotlinx:kotlinx-datetime:0.4.1
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.0
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.6.0
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.0
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.0
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0
|
||||||
|
org.jetbrains:annotations:23.0.0
|
@ -0,0 +1,211 @@
|
|||||||
|
androidx.activity:activity-compose:1.8.0
|
||||||
|
androidx.activity:activity-ktx:1.8.0
|
||||||
|
androidx.activity:activity:1.8.0
|
||||||
|
androidx.annotation:annotation-experimental:1.3.0
|
||||||
|
androidx.annotation:annotation-jvm:1.6.0
|
||||||
|
androidx.annotation:annotation:1.6.0
|
||||||
|
androidx.appcompat:appcompat-resources:1.6.1
|
||||||
|
androidx.appcompat:appcompat: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.6.0
|
||||||
|
androidx.collection:collection-ktx:1.1.0
|
||||||
|
androidx.collection:collection:1.2.0
|
||||||
|
androidx.compose.animation:animation-android:1.5.4
|
||||||
|
androidx.compose.animation:animation-core-android:1.5.4
|
||||||
|
androidx.compose.animation:animation-core:1.5.4
|
||||||
|
androidx.compose.animation:animation:1.5.4
|
||||||
|
androidx.compose.foundation:foundation-android:1.5.4
|
||||||
|
androidx.compose.foundation:foundation-layout-android:1.5.4
|
||||||
|
androidx.compose.foundation:foundation-layout:1.5.4
|
||||||
|
androidx.compose.foundation:foundation:1.5.4
|
||||||
|
androidx.compose.material3:material3-window-size-class:1.1.2
|
||||||
|
androidx.compose.material3:material3:1.1.2
|
||||||
|
androidx.compose.material:material-icons-core-android:1.5.4
|
||||||
|
androidx.compose.material:material-icons-core:1.5.4
|
||||||
|
androidx.compose.material:material-icons-extended-android:1.5.4
|
||||||
|
androidx.compose.material:material-icons-extended:1.5.4
|
||||||
|
androidx.compose.material:material-ripple-android:1.5.4
|
||||||
|
androidx.compose.material:material-ripple:1.5.4
|
||||||
|
androidx.compose.runtime:runtime-android:1.5.4
|
||||||
|
androidx.compose.runtime:runtime-livedata:1.5.4
|
||||||
|
androidx.compose.runtime:runtime-saveable-android:1.5.4
|
||||||
|
androidx.compose.runtime:runtime-saveable:1.5.4
|
||||||
|
androidx.compose.runtime:runtime-tracing:1.0.0-alpha03
|
||||||
|
androidx.compose.runtime:runtime:1.5.4
|
||||||
|
androidx.compose.ui:ui-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-geometry-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-geometry:1.5.4
|
||||||
|
androidx.compose.ui:ui-graphics-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-graphics:1.5.4
|
||||||
|
androidx.compose.ui:ui-text-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-text:1.5.4
|
||||||
|
androidx.compose.ui:ui-tooling-preview-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-tooling-preview:1.5.4
|
||||||
|
androidx.compose.ui:ui-unit-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-unit:1.5.4
|
||||||
|
androidx.compose.ui:ui-util-android:1.5.4
|
||||||
|
androidx.compose.ui:ui-util:1.5.4
|
||||||
|
androidx.compose.ui:ui:1.5.4
|
||||||
|
androidx.compose:compose-bom:2023.10.01
|
||||||
|
androidx.concurrent:concurrent-futures:1.1.0
|
||||||
|
androidx.core:core-ktx:1.12.0
|
||||||
|
androidx.core:core-splashscreen:1.0.1
|
||||||
|
androidx.core:core:1.12.0
|
||||||
|
androidx.cursoradapter:cursoradapter:1.0.0
|
||||||
|
androidx.customview:customview-poolingcontainer:1.0.0
|
||||||
|
androidx.customview:customview:1.0.0
|
||||||
|
androidx.datastore:datastore-core:1.0.0
|
||||||
|
androidx.datastore:datastore-preferences-core:1.0.0
|
||||||
|
androidx.datastore:datastore-preferences:1.0.0
|
||||||
|
androidx.datastore:datastore:1.0.0
|
||||||
|
androidx.documentfile:documentfile:1.0.0
|
||||||
|
androidx.drawerlayout:drawerlayout:1.0.0
|
||||||
|
androidx.emoji2:emoji2-views-helper:1.4.0
|
||||||
|
androidx.emoji2:emoji2:1.4.0
|
||||||
|
androidx.exifinterface:exifinterface:1.3.6
|
||||||
|
androidx.fragment:fragment:1.5.1
|
||||||
|
androidx.hilt:hilt-common:1.1.0
|
||||||
|
androidx.hilt:hilt-navigation-compose:1.0.0
|
||||||
|
androidx.hilt:hilt-navigation:1.0.0
|
||||||
|
androidx.hilt:hilt-work:1.1.0
|
||||||
|
androidx.interpolator:interpolator:1.0.0
|
||||||
|
androidx.legacy:legacy-support-core-utils:1.0.0
|
||||||
|
androidx.lifecycle:lifecycle-common-java8:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-common:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-livedata-core-ktx:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-livedata-core:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-livedata-ktx:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-livedata:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-process:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-runtime-compose:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-runtime-ktx:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-runtime:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-service:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2
|
||||||
|
androidx.lifecycle:lifecycle-viewmodel:2.6.2
|
||||||
|
androidx.loader:loader:1.0.0
|
||||||
|
androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
|
||||||
|
androidx.metrics:metrics-performance:1.0.0-alpha04
|
||||||
|
androidx.navigation:navigation-common-ktx:2.7.4
|
||||||
|
androidx.navigation:navigation-common:2.7.4
|
||||||
|
androidx.navigation:navigation-compose:2.7.4
|
||||||
|
androidx.navigation:navigation-runtime-ktx:2.7.4
|
||||||
|
androidx.navigation:navigation-runtime:2.7.4
|
||||||
|
androidx.print:print:1.0.0
|
||||||
|
androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05
|
||||||
|
androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05
|
||||||
|
androidx.profileinstaller:profileinstaller:1.3.1
|
||||||
|
androidx.resourceinspection:resourceinspection-annotation:1.0.1
|
||||||
|
androidx.room:room-common:2.6.0
|
||||||
|
androidx.room:room-ktx:2.6.0
|
||||||
|
androidx.room:room-runtime:2.6.0
|
||||||
|
androidx.savedstate:savedstate-ktx:1.2.1
|
||||||
|
androidx.savedstate:savedstate:1.2.1
|
||||||
|
androidx.sqlite:sqlite-framework:2.4.0
|
||||||
|
androidx.sqlite:sqlite:2.4.0
|
||||||
|
androidx.startup:startup-runtime:1.1.1
|
||||||
|
androidx.tracing:tracing-ktx:1.2.0-alpha02
|
||||||
|
androidx.tracing:tracing-perfetto-common:1.0.0-alpha11
|
||||||
|
androidx.tracing:tracing-perfetto:1.0.0-alpha11
|
||||||
|
androidx.tracing:tracing:1.2.0-alpha02
|
||||||
|
androidx.vectordrawable:vectordrawable-animated:1.1.0
|
||||||
|
androidx.vectordrawable:vectordrawable:1.1.0
|
||||||
|
androidx.versionedparcelable:versionedparcelable:1.1.1
|
||||||
|
androidx.viewpager:viewpager:1.0.0
|
||||||
|
androidx.window.extensions.core:core:1.0.0
|
||||||
|
androidx.window:window:1.1.0
|
||||||
|
androidx.work:work-runtime-ktx:2.9.0-rc01
|
||||||
|
androidx.work:work-runtime:2.9.0-rc01
|
||||||
|
com.caverock:androidsvg-aar:1.4
|
||||||
|
com.google.accompanist:accompanist-drawablepainter:0.30.1
|
||||||
|
com.google.accompanist:accompanist-permissions:0.32.0
|
||||||
|
com.google.android.datatransport:transport-api:3.0.0
|
||||||
|
com.google.android.datatransport:transport-backend-cct:3.1.9
|
||||||
|
com.google.android.datatransport:transport-runtime:3.1.9
|
||||||
|
com.google.android.gms:play-services-ads-identifier:18.0.0
|
||||||
|
com.google.android.gms:play-services-base:18.0.1
|
||||||
|
com.google.android.gms:play-services-basement:18.1.0
|
||||||
|
com.google.android.gms:play-services-cloud-messaging:17.0.1
|
||||||
|
com.google.android.gms:play-services-measurement-api:21.4.0
|
||||||
|
com.google.android.gms:play-services-measurement-base:21.4.0
|
||||||
|
com.google.android.gms:play-services-measurement-impl:21.4.0
|
||||||
|
com.google.android.gms:play-services-measurement-sdk-api:21.4.0
|
||||||
|
com.google.android.gms:play-services-measurement-sdk:21.4.0
|
||||||
|
com.google.android.gms:play-services-measurement:21.4.0
|
||||||
|
com.google.android.gms:play-services-oss-licenses:17.0.1
|
||||||
|
com.google.android.gms:play-services-stats:17.0.2
|
||||||
|
com.google.android.gms:play-services-tasks:18.0.2
|
||||||
|
com.google.code.findbugs:jsr305:3.0.2
|
||||||
|
com.google.dagger:dagger-lint-aar:2.48.1
|
||||||
|
com.google.dagger:dagger:2.48.1
|
||||||
|
com.google.dagger:hilt-android:2.48.1
|
||||||
|
com.google.dagger:hilt-core:2.48.1
|
||||||
|
com.google.errorprone:error_prone_annotations:2.11.0
|
||||||
|
com.google.firebase:firebase-abt:21.1.1
|
||||||
|
com.google.firebase:firebase-analytics-ktx:21.4.0
|
||||||
|
com.google.firebase:firebase-analytics:21.4.0
|
||||||
|
com.google.firebase:firebase-annotations:16.2.0
|
||||||
|
com.google.firebase:firebase-bom:32.4.0
|
||||||
|
com.google.firebase:firebase-common-ktx:20.4.2
|
||||||
|
com.google.firebase:firebase-common:20.4.2
|
||||||
|
com.google.firebase:firebase-components:17.1.5
|
||||||
|
com.google.firebase:firebase-config:21.5.0
|
||||||
|
com.google.firebase:firebase-crashlytics-ktx:18.5.0
|
||||||
|
com.google.firebase:firebase-crashlytics:18.5.0
|
||||||
|
com.google.firebase:firebase-datatransport:18.1.8
|
||||||
|
com.google.firebase:firebase-encoders-json:18.0.1
|
||||||
|
com.google.firebase:firebase-encoders-proto:16.0.0
|
||||||
|
com.google.firebase:firebase-encoders:17.0.0
|
||||||
|
com.google.firebase:firebase-iid-interop:17.1.0
|
||||||
|
com.google.firebase:firebase-installations-interop:17.1.1
|
||||||
|
com.google.firebase:firebase-installations:17.2.0
|
||||||
|
com.google.firebase:firebase-measurement-connector:19.0.0
|
||||||
|
com.google.firebase:firebase-messaging-ktx:23.3.0
|
||||||
|
com.google.firebase:firebase-messaging:23.3.0
|
||||||
|
com.google.firebase:firebase-perf-ktx:20.5.0
|
||||||
|
com.google.firebase:firebase-perf:20.5.0
|
||||||
|
com.google.firebase:firebase-sessions:1.1.0
|
||||||
|
com.google.firebase:protolite-well-known-types:18.0.0
|
||||||
|
com.google.guava:failureaccess:1.0.1
|
||||||
|
com.google.guava:guava:31.1-android
|
||||||
|
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
|
||||||
|
com.google.j2objc:j2objc-annotations:1.3
|
||||||
|
com.google.protobuf:protobuf-javalite:3.24.4
|
||||||
|
com.google.protobuf:protobuf-kotlin-lite:3.24.4
|
||||||
|
com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0
|
||||||
|
com.squareup.okhttp3:logging-interceptor:4.12.0
|
||||||
|
com.squareup.okhttp3:okhttp:4.12.0
|
||||||
|
com.squareup.okio:okio-jvm:3.6.0
|
||||||
|
com.squareup.okio:okio:3.6.0
|
||||||
|
com.squareup.retrofit2:retrofit:2.9.0
|
||||||
|
io.coil-kt:coil-base:2.4.0
|
||||||
|
io.coil-kt:coil-compose-base:2.4.0
|
||||||
|
io.coil-kt:coil-compose:2.4.0
|
||||||
|
io.coil-kt:coil-svg:2.4.0
|
||||||
|
io.coil-kt:coil:2.4.0
|
||||||
|
io.github.aakira:napier-android:1.4.1
|
||||||
|
io.github.aakira:napier:1.4.1
|
||||||
|
javax.inject:javax.inject:1
|
||||||
|
org.checkerframework:checker-qual:3.12.0
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:1.9.10
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.7.3
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3
|
||||||
|
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.4.1
|
||||||
|
org.jetbrains.kotlinx:kotlinx-datetime:0.4.1
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.0
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.6.0
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.0
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.0
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0
|
||||||
|
org.jetbrains:annotations:23.0.0
|
@ -0,0 +1,121 @@
|
|||||||
|
package: name='com.google.samples.apps.nowinandroid' versionCode='8' versionName='0.1.2' platformBuildVersionName='14' platformBuildVersionCode='34' compileSdkVersion='34' compileSdkVersionCodename='14'
|
||||||
|
sdkVersion:'21'
|
||||||
|
targetSdkVersion:'34'
|
||||||
|
uses-permission: name='android.permission.INTERNET'
|
||||||
|
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
|
||||||
|
uses-permission: name='android.permission.POST_NOTIFICATIONS'
|
||||||
|
uses-permission: name='android.permission.WAKE_LOCK'
|
||||||
|
uses-permission: name='com.google.android.c2dm.permission.RECEIVE'
|
||||||
|
uses-permission: name='com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE'
|
||||||
|
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
|
||||||
|
uses-permission: name='android.permission.FOREGROUND_SERVICE'
|
||||||
|
uses-permission: name='com.google.samples.apps.nowinandroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
|
||||||
|
application-label:'Now in Android'
|
||||||
|
application-label-af:'Now in Android'
|
||||||
|
application-label-am:'Now in Android'
|
||||||
|
application-label-ar:'Now in Android'
|
||||||
|
application-label-as:'Now in Android'
|
||||||
|
application-label-az:'Now in Android'
|
||||||
|
application-label-be:'Now in Android'
|
||||||
|
application-label-bg:'Now in Android'
|
||||||
|
application-label-bn:'Now in Android'
|
||||||
|
application-label-bs:'Now in Android'
|
||||||
|
application-label-ca:'Now in Android'
|
||||||
|
application-label-cs:'Now in Android'
|
||||||
|
application-label-da:'Now in Android'
|
||||||
|
application-label-de:'Now in Android'
|
||||||
|
application-label-el:'Now in Android'
|
||||||
|
application-label-en-AU:'Now in Android'
|
||||||
|
application-label-en-CA:'Now in Android'
|
||||||
|
application-label-en-GB:'Now in Android'
|
||||||
|
application-label-en-IN:'Now in Android'
|
||||||
|
application-label-en-XC:'Now in Android'
|
||||||
|
application-label-es:'Now in Android'
|
||||||
|
application-label-es-US:'Now in Android'
|
||||||
|
application-label-et:'Now in Android'
|
||||||
|
application-label-eu:'Now in Android'
|
||||||
|
application-label-fa:'Now in Android'
|
||||||
|
application-label-fi:'Now in Android'
|
||||||
|
application-label-fr:'Now in Android'
|
||||||
|
application-label-fr-CA:'Now in Android'
|
||||||
|
application-label-gl:'Now in Android'
|
||||||
|
application-label-gu:'Now in Android'
|
||||||
|
application-label-hi:'Now in Android'
|
||||||
|
application-label-hr:'Now in Android'
|
||||||
|
application-label-hu:'Now in Android'
|
||||||
|
application-label-hy:'Now in Android'
|
||||||
|
application-label-in:'Now in Android'
|
||||||
|
application-label-is:'Now in Android'
|
||||||
|
application-label-it:'Now in Android'
|
||||||
|
application-label-iw:'Now in Android'
|
||||||
|
application-label-ja:'Now in Android'
|
||||||
|
application-label-ka:'Now in Android'
|
||||||
|
application-label-kk:'Now in Android'
|
||||||
|
application-label-km:'Now in Android'
|
||||||
|
application-label-kn:'Now in Android'
|
||||||
|
application-label-ko:'Now in Android'
|
||||||
|
application-label-ky:'Now in Android'
|
||||||
|
application-label-lo:'Now in Android'
|
||||||
|
application-label-lt:'Now in Android'
|
||||||
|
application-label-lv:'Now in Android'
|
||||||
|
application-label-mk:'Now in Android'
|
||||||
|
application-label-ml:'Now in Android'
|
||||||
|
application-label-mn:'Now in Android'
|
||||||
|
application-label-mr:'Now in Android'
|
||||||
|
application-label-ms:'Now in Android'
|
||||||
|
application-label-my:'Now in Android'
|
||||||
|
application-label-nb:'Now in Android'
|
||||||
|
application-label-ne:'Now in Android'
|
||||||
|
application-label-nl:'Now in Android'
|
||||||
|
application-label-or:'Now in Android'
|
||||||
|
application-label-pa:'Now in Android'
|
||||||
|
application-label-pl:'Now in Android'
|
||||||
|
application-label-pt:'Now in Android'
|
||||||
|
application-label-pt-BR:'Now in Android'
|
||||||
|
application-label-pt-PT:'Now in Android'
|
||||||
|
application-label-ro:'Now in Android'
|
||||||
|
application-label-ru:'Now in Android'
|
||||||
|
application-label-si:'Now in Android'
|
||||||
|
application-label-sk:'Now in Android'
|
||||||
|
application-label-sl:'Now in Android'
|
||||||
|
application-label-sq:'Now in Android'
|
||||||
|
application-label-sr:'Now in Android'
|
||||||
|
application-label-sr-Latn:'Now in Android'
|
||||||
|
application-label-sv:'Now in Android'
|
||||||
|
application-label-sw:'Now in Android'
|
||||||
|
application-label-ta:'Now in Android'
|
||||||
|
application-label-te:'Now in Android'
|
||||||
|
application-label-th:'Now in Android'
|
||||||
|
application-label-tl:'Now in Android'
|
||||||
|
application-label-tr:'Now in Android'
|
||||||
|
application-label-uk:'Now in Android'
|
||||||
|
application-label-ur:'Now in Android'
|
||||||
|
application-label-uz:'Now in Android'
|
||||||
|
application-label-vi:'Now in Android'
|
||||||
|
application-label-zh-CN:'Now in Android'
|
||||||
|
application-label-zh-HK:'Now in Android'
|
||||||
|
application-label-zh-TW:'Now in Android'
|
||||||
|
application-label-zu:'Now in Android'
|
||||||
|
application-icon-120:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||||
|
application-icon-160:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||||
|
application-icon-240:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||||
|
application-icon-320:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||||
|
application-icon-480:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||||
|
application-icon-640:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||||
|
application-icon-65534:'res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||||
|
application: label='Now in Android' icon='res/mipmap-anydpi-v26/ic_launcher.xml'
|
||||||
|
launchable-activity: name='com.google.samples.apps.nowinandroid.MainActivity' label='' icon=''
|
||||||
|
uses-library-not-required:'androidx.window.extensions'
|
||||||
|
uses-library-not-required:'androidx.window.sidecar'
|
||||||
|
uses-library-not-required:'android.ext.adservices'
|
||||||
|
feature-group: label=''
|
||||||
|
uses-feature: name='android.hardware.faketouch'
|
||||||
|
uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps'
|
||||||
|
main
|
||||||
|
other-activities
|
||||||
|
other-receivers
|
||||||
|
other-services
|
||||||
|
supports-screens: 'small' 'normal' 'large' 'xlarge'
|
||||||
|
supports-any-density: 'true'
|
||||||
|
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'
|
||||||
|
densities: '120' '160' '240' '320' '480' '640' '65534'
|
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
Copyright 2023 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<resources>
|
||||||
|
<!-- Allow users to distinguish between build variants by having a different background color
|
||||||
|
for the launcher icon. See https://github.com/android/nowinandroid/pull/989. -->
|
||||||
|
<color name="ic_launcher_background_tint">#FFFFFF</color>
|
||||||
|
<color name="ic_launcher_foreground_tint">#FF006780</color>
|
||||||
|
</resources>
|
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
Copyright 2023 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<resources>
|
||||||
|
<!-- Allow users to distinguish between build variants by having a different background color
|
||||||
|
for the launcher icon. See https://github.com/android/nowinandroid/pull/989. -->
|
||||||
|
<color name="ic_launcher_background_tint">#000000</color>
|
||||||
|
<color name="ic_launcher_foreground_tint">#FF006780</color>
|
||||||
|
</resources>
|
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
Copyright 2023 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<resources>
|
||||||
|
<!-- Allow users to distinguish between build variants by having a different background color
|
||||||
|
for the launcher icon. See https://github.com/android/nowinandroid/pull/989. -->
|
||||||
|
<color name="ic_launcher_background_tint">#000000</color>
|
||||||
|
<color name="ic_launcher_foreground_tint">#FFA23F16</color>
|
||||||
|
</resources>
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 234 KiB |
@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2022 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.google.samples.apps.nowinandroid.baselineprofile
|
||||||
|
|
||||||
|
import androidx.benchmark.macro.junit4.BaselineProfileRule
|
||||||
|
import com.google.samples.apps.nowinandroid.PACKAGE_NAME
|
||||||
|
import com.google.samples.apps.nowinandroid.bookmarks.goToBookmarksScreen
|
||||||
|
import com.google.samples.apps.nowinandroid.startActivityAndAllowNotifications
|
||||||
|
import org.junit.Rule
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Baseline Profile of the "Bookmarks" screen
|
||||||
|
*/
|
||||||
|
class BookmarksBaselineProfile {
|
||||||
|
@get:Rule val baselineProfileRule = BaselineProfileRule()
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun generate() =
|
||||||
|
baselineProfileRule.collect(PACKAGE_NAME) {
|
||||||
|
startActivityAndAllowNotifications()
|
||||||
|
|
||||||
|
// Navigate to saved screen
|
||||||
|
goToBookmarksScreen()
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2022 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.google.samples.apps.nowinandroid.baselineprofile
|
||||||
|
|
||||||
|
import androidx.benchmark.macro.junit4.BaselineProfileRule
|
||||||
|
import com.google.samples.apps.nowinandroid.PACKAGE_NAME
|
||||||
|
import com.google.samples.apps.nowinandroid.interests.goToInterestsScreen
|
||||||
|
import com.google.samples.apps.nowinandroid.interests.interestsScrollTopicsDownUp
|
||||||
|
import com.google.samples.apps.nowinandroid.startActivityAndAllowNotifications
|
||||||
|
import org.junit.Rule
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Baseline Profile of the "Interests" screen
|
||||||
|
*/
|
||||||
|
class InterestsBaselineProfile {
|
||||||
|
@get:Rule val baselineProfileRule = BaselineProfileRule()
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun generate() =
|
||||||
|
baselineProfileRule.collect(PACKAGE_NAME) {
|
||||||
|
startActivityAndAllowNotifications()
|
||||||
|
|
||||||
|
// Navigate to interests screen
|
||||||
|
goToInterestsScreen()
|
||||||
|
interestsScrollTopicsDownUp()
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2022 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.google.samples.apps.nowinandroid.baselineprofile
|
||||||
|
|
||||||
|
import androidx.benchmark.macro.junit4.BaselineProfileRule
|
||||||
|
import com.google.samples.apps.nowinandroid.PACKAGE_NAME
|
||||||
|
import com.google.samples.apps.nowinandroid.startActivityAndAllowNotifications
|
||||||
|
import org.junit.Rule
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Baseline Profile for app startup. This profile also enables using [Dex Layout Optimizations](https://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations)
|
||||||
|
* via the `includeInStartupProfile` parameter.
|
||||||
|
*/
|
||||||
|
class StartupBaselineProfile {
|
||||||
|
@get:Rule val baselineProfileRule = BaselineProfileRule()
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun generate() =
|
||||||
|
baselineProfileRule.collect(
|
||||||
|
PACKAGE_NAME,
|
||||||
|
includeInStartupProfile = true,
|
||||||
|
) {
|
||||||
|
startActivityAndAllowNotifications()
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,160 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2023 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.google.samples.apps.nowinandroid
|
||||||
|
|
||||||
|
import com.android.build.api.artifact.SingleArtifact
|
||||||
|
import com.android.build.api.variant.ApplicationAndroidComponentsExtension
|
||||||
|
import com.android.build.gradle.BaseExtension
|
||||||
|
import com.android.SdkConstants
|
||||||
|
import com.google.common.truth.Truth.assertWithMessage
|
||||||
|
import org.gradle.api.DefaultTask
|
||||||
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.file.DirectoryProperty
|
||||||
|
import org.gradle.api.file.RegularFileProperty
|
||||||
|
import org.gradle.api.provider.Property
|
||||||
|
import org.gradle.api.tasks.CacheableTask
|
||||||
|
import org.gradle.api.tasks.Copy
|
||||||
|
import org.gradle.api.tasks.Input
|
||||||
|
import org.gradle.api.tasks.InputFile
|
||||||
|
import org.gradle.api.tasks.OutputDirectory
|
||||||
|
import org.gradle.api.tasks.OutputFile
|
||||||
|
import org.gradle.api.tasks.PathSensitive
|
||||||
|
import org.gradle.api.tasks.PathSensitivity
|
||||||
|
import org.gradle.api.tasks.TaskAction
|
||||||
|
import org.gradle.configurationcache.extensions.capitalized
|
||||||
|
import org.gradle.kotlin.dsl.register
|
||||||
|
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||||
|
import org.gradle.process.ExecOperations
|
||||||
|
import java.io.File
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@CacheableTask
|
||||||
|
abstract class GenerateBadgingTask : DefaultTask() {
|
||||||
|
|
||||||
|
@get:OutputFile
|
||||||
|
abstract val badging: RegularFileProperty
|
||||||
|
|
||||||
|
@get:PathSensitive(PathSensitivity.NONE)
|
||||||
|
@get:InputFile
|
||||||
|
abstract val apk: RegularFileProperty
|
||||||
|
|
||||||
|
@get:PathSensitive(PathSensitivity.NONE)
|
||||||
|
@get:InputFile
|
||||||
|
abstract val aapt2Executable: RegularFileProperty
|
||||||
|
|
||||||
|
@get:Inject
|
||||||
|
abstract val execOperations: ExecOperations
|
||||||
|
|
||||||
|
@TaskAction
|
||||||
|
fun taskAction() {
|
||||||
|
execOperations.exec {
|
||||||
|
commandLine(
|
||||||
|
aapt2Executable.get().asFile.absolutePath,
|
||||||
|
"dump",
|
||||||
|
"badging",
|
||||||
|
apk.get().asFile.absolutePath,
|
||||||
|
)
|
||||||
|
standardOutput = badging.asFile.get().outputStream()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@CacheableTask
|
||||||
|
abstract class CheckBadgingTask : DefaultTask() {
|
||||||
|
|
||||||
|
// In order for the task to be up-to-date when the inputs have not changed,
|
||||||
|
// the task must declare an output, even if it's not used. Tasks with no
|
||||||
|
// output are always run regardless of whether the inputs changed
|
||||||
|
@get:OutputDirectory
|
||||||
|
abstract val output: DirectoryProperty
|
||||||
|
|
||||||
|
@get:PathSensitive(PathSensitivity.NONE)
|
||||||
|
@get:InputFile
|
||||||
|
abstract val goldenBadging: RegularFileProperty
|
||||||
|
|
||||||
|
@get:PathSensitive(PathSensitivity.NONE)
|
||||||
|
@get:InputFile
|
||||||
|
abstract val generatedBadging: RegularFileProperty
|
||||||
|
|
||||||
|
@get:Input
|
||||||
|
abstract val updateBadgingTaskName: Property<String>
|
||||||
|
|
||||||
|
override fun getGroup(): String = LifecycleBasePlugin.VERIFICATION_GROUP
|
||||||
|
|
||||||
|
@TaskAction
|
||||||
|
fun taskAction() {
|
||||||
|
assertWithMessage(
|
||||||
|
"Generated badging is different from golden badging! " +
|
||||||
|
"If this change is intended, run ./gradlew ${updateBadgingTaskName.get()}",
|
||||||
|
)
|
||||||
|
.that(generatedBadging.get().asFile.readText())
|
||||||
|
.isEqualTo(goldenBadging.get().asFile.readText())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Project.configureBadgingTasks(
|
||||||
|
baseExtension: BaseExtension,
|
||||||
|
componentsExtension: ApplicationAndroidComponentsExtension,
|
||||||
|
) {
|
||||||
|
// Registers a callback to be called, when a new variant is configured
|
||||||
|
componentsExtension.onVariants { variant ->
|
||||||
|
// Registers a new task to verify the app bundle.
|
||||||
|
val capitalizedVariantName = variant.name.capitalized()
|
||||||
|
val generateBadgingTaskName = "generate${capitalizedVariantName}Badging"
|
||||||
|
val generateBadging =
|
||||||
|
tasks.register<GenerateBadgingTask>(generateBadgingTaskName) {
|
||||||
|
apk.set(
|
||||||
|
variant.artifacts.get(SingleArtifact.APK_FROM_BUNDLE),
|
||||||
|
)
|
||||||
|
aapt2Executable.set(
|
||||||
|
File(
|
||||||
|
baseExtension.sdkDirectory,
|
||||||
|
"${SdkConstants.FD_BUILD_TOOLS}/" +
|
||||||
|
"${baseExtension.buildToolsVersion}/" +
|
||||||
|
SdkConstants.FN_AAPT2,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
badging.set(
|
||||||
|
project.layout.buildDirectory.file(
|
||||||
|
"outputs/apk_from_bundle/${variant.name}/${variant.name}-badging.txt",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
val updateBadgingTaskName = "update${capitalizedVariantName}Badging"
|
||||||
|
tasks.register<Copy>(updateBadgingTaskName) {
|
||||||
|
from(generateBadging.get().badging)
|
||||||
|
into(project.layout.projectDirectory)
|
||||||
|
}
|
||||||
|
|
||||||
|
val checkBadgingTaskName = "check${capitalizedVariantName}Badging"
|
||||||
|
tasks.register<CheckBadgingTask>(checkBadgingTaskName) {
|
||||||
|
goldenBadging.set(
|
||||||
|
project.layout.projectDirectory.file("${variant.name}-badging.txt"),
|
||||||
|
)
|
||||||
|
generatedBadging.set(
|
||||||
|
generateBadging.get().badging,
|
||||||
|
)
|
||||||
|
this.updateBadgingTaskName.set(updateBadgingTaskName)
|
||||||
|
|
||||||
|
output.set(
|
||||||
|
project.layout.buildDirectory.dir("intermediates/$checkBadgingTaskName"),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 373 B |
Before Width: | Height: | Size: 265 B After Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 478 B After Width: | Height: | Size: 478 B |
Before Width: | Height: | Size: 673 B After Width: | Height: | Size: 673 B |
@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2023 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
alias(libs.plugins.nowinandroid.android.library)
|
||||||
|
alias(libs.plugins.protobuf)
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "com.google.samples.apps.nowinandroid.core.datastore.proto"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setup protobuf configuration, generating lite Java and Kotlin classes
|
||||||
|
protobuf {
|
||||||
|
protoc {
|
||||||
|
artifact = libs.protobuf.protoc.get().toString()
|
||||||
|
}
|
||||||
|
generateProtoTasks {
|
||||||
|
all().forEach { task ->
|
||||||
|
task.builtins {
|
||||||
|
register("java") {
|
||||||
|
option("lite")
|
||||||
|
}
|
||||||
|
register("kotlin") {
|
||||||
|
option("lite")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
androidComponents.beforeVariants {
|
||||||
|
android.sourceSets.register(it.name) {
|
||||||
|
val buildDir = layout.buildDirectory.get().asFile
|
||||||
|
java.srcDir(buildDir.resolve("generated/source/proto/${it.name}/java"))
|
||||||
|
kotlin.srcDir(buildDir.resolve("generated/source/proto/${it.name}/kotlin"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(libs.protobuf.kotlin.lite)
|
||||||
|
}
|