Skip to content

feat: Integrate AttributionId Flow - #2386

Open
LoyalAbbas wants to merge 4 commits into
mainfrom
startup_runtime_integration
Open

feat: Integrate AttributionId Flow#2386
LoyalAbbas wants to merge 4 commits into
mainfrom
startup_runtime_integration

Conversation

@LoyalAbbas

Copy link
Copy Markdown

Add androidx.startup:startup-runtime and a startup initializer to track sample repository usage. Uses androidx.startup.InitializationProvider for lightweight, automatic initialization on app startup.

@LoyalAbbas
LoyalAbbas requested review from dkhawk and kikoso August 14, 2026 05:36
@kikoso

kikoso commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

@LoyalAbbas , could you change the title to follow the semantic commits convention? Something like feat: integrate AttributionId Flow.

@LoyalAbbas LoyalAbbas changed the title Integrate AttributionId Flow Aug 14, 2026
@LoyalAbbas LoyalAbbas changed the title feat:Integrate AttributionId Flow Aug 14, 2026

@kikoso kikoso left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left inline notes on the two main points plus a few nits found while digging into the CI failure.

Comment thread WearOS/Wearable/build.gradle.kts Outdated

// [START maps_wear_os_dependencies]
dependencies {
api(project(":library"))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This api(project(":library")) line sits before [START_EXCLUDE silent], so it will be extracted into the public devsite install snippet along with the rest of this block. External developers following the docs would see a reference to an internal only Gradle module that does not exist in their project. snippets/app/build.gradle.kts places the same line inside the exclude block instead, worth doing the same here.

Also, could this be implementation(project(":library")) rather than api? AttributionIdInitializer is internal, so nothing here needs to re export :library's public surface as part of this module's own API.

Comment thread snippets/app-compose/build.gradle.kts Outdated

// [START maps_android_compose_dependency]
dependencies {
api(project(":library"))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This api(project(":library")) line sits before [START_EXCLUDE silent], so it will be extracted into the public devsite install snippet along with the rest of this block. External developers following the docs would see a reference to an internal only Gradle module that does not exist in their project. snippets/app/build.gradle.kts places the same line inside the exclude block instead, worth doing the same here.

Also, could this be implementation(project(":library")) rather than api? AttributionIdInitializer is internal, so nothing here needs to re export :library's public surface as part of this module's own API.

Comment thread snippets/app-ktx/build.gradle.kts Outdated

// [START maps_android_ktx_install_snippet]
dependencies {
api(project(":library"))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This api(project(":library")) line sits before [START_EXCLUDE silent], so it will be extracted into the public devsite install snippet along with the rest of this block. External developers following the docs would see a reference to an internal only Gradle module that does not exist in their project. snippets/app/build.gradle.kts places the same line inside the exclude block instead, worth doing the same here.

Also, could this be implementation(project(":library")) rather than api? AttributionIdInitializer is internal, so nothing here needs to re export :library's public surface as part of this module's own API.


// [START places_android_ktx_install_snippet]
dependencies {
api(project(":library"))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This api(project(":library")) line sits before [START_EXCLUDE silent], so it will be extracted into the public devsite install snippet along with the rest of this block. External developers following the docs would see a reference to an internal only Gradle module that does not exist in their project. snippets/app/build.gradle.kts places the same line inside the exclude block instead, worth doing the same here.

Also, could this be implementation(project(":library")) rather than api? AttributionIdInitializer is internal, so nothing here needs to re export :library's public surface as part of this module's own API.

Comment thread snippets/app-utils-ktx/build.gradle.kts Outdated

// [START maps_android_utils_ktx_install_snippet]
dependencies {
api(project(":library"))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This api(project(":library")) line sits before [START_EXCLUDE silent], so it will be extracted into the public devsite install snippet along with the rest of this block. External developers following the docs would see a reference to an internal only Gradle module that does not exist in their project. snippets/app/build.gradle.kts places the same line inside the exclude block instead, worth doing the same here.

Also, could this be implementation(project(":library")) rather than api? AttributionIdInitializer is internal, so nothing here needs to re export :library's public surface as part of this module's own API.

Comment thread FireMarkers/app/build.gradle.kts Outdated
}

dependencies {
api(project(":library"))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this be implementation(project(":library")) instead of api? AttributionIdInitializer is internal, so nothing here needs to re export :library's public surface as part of this module's own API.

}

dependencies {
api(project(":library"))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this be implementation(project(":library")) instead of api? AttributionIdInitializer is internal, so nothing here needs to re export :library's public surface as part of this module's own API.

@Keep
internal class AttributionIdInitializer : Initializer<Unit> {
override fun create(context: Context) {
// See [AttributionIdInitializer]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: this comment references its own class name (AttributionIdInitializer), looks like leftover copy paste.

Comment thread library/.gitignore Outdated
@@ -0,0 +1 @@
/build No newline at end of file

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: missing trailing newline.

#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: missing trailing newline.

@LoyalAbbas
LoyalAbbas force-pushed the startup_runtime_integration branch from 0e51137 to 67a57da Compare August 14, 2026 10:47

@kikoso kikoso left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

LoyalAbbas and others added 3 commits August 21, 2026 14:21
Rebase with main branch
app-utils-ktx hardcoded minSdk 23 while the newly added :library
dependency requires minSdk 24, causing a manifest merger failure in CI.
@LoyalAbbas
LoyalAbbas force-pushed the startup_runtime_integration branch from 67a57da to 808fa6d Compare August 21, 2026 09:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants