Skip to content

ci: bring :app and :e2eTest under the Android Lint gate - #2503

Open
demolaf wants to merge 51 commits into
pre-GAfrom
ci/gate-app-and-e2etest-on-lint
Open

ci: bring :app and :e2eTest under the Android Lint gate#2503
demolaf wants to merge 51 commits into
pre-GAfrom
ci/gate-app-and-e2etest-on-lint

Conversation

@demolaf

@demolaf demolaf commented Sep 9, 2026

Copy link
Copy Markdown
Member

#2498 added lintAll but deliberately left :app and :e2eTest out, since neither had ever declared a lint { } block and so neither had a policy to gate against. This sets that policy and brings both in, so the task now covers all ten Android modules. :e2eTest was already clean and is a pure ratchet; :app reported 30 errors under warningsAsErrors.

Most of those are real and fixed here. The score row in the database and firestore demos moves to a demo_score_row resource, MainActivity loses a label duplicating the application's, the Android Studio template colors.xml and two orphaned launcher vectors go, and firebase_auth converts to lossless WebP at all five densities (52KB down to 25KB, checked by comparing decoded pixels rather than trusting the encoder flag). The remainder are suppressed with the reason recorded at each suppression site: the App Link host and the facebook_* strings are indirections per-module lint cannot resolve, while AndroidGradlePluginVersion, LogConditional and MonochromeLauncherIcon are policy calls for a demo app.

KaptUsageInsteadOfKsp is disabled rather than fixed. KSP resolves against Kotlin 2.4.10 and com.github.bumptech.glide:ksp:5.0.7 exists, but Glide's KSP processor does not generate the GlideApp class kapt produces, so :app stops compiling. Migrating means rewriting StorageDemoActivity to plain Glide.with() and updating storage/README.md and the FirebaseImageLoader javadoc, both of which are written around GlideApp. Tracked separately.

Adding two more copies of the same block made the duplication worth removing, so the common disable set and the three strictness flags now live in a shared policy in the root build.gradle.kts, beside the allprojects checkstyle block that already centralises the other repo-wide gate. Modules keep only their own disables, and strictness is no longer something a module can quietly drop the way :library did with abortOnError = false. Across the build files that is 112 lines out for 56 in.

Supersedes #2500, closed by a branch rename.


Maintainer note: Fixes internal CPRN-433

demolaf and others added 30 commits September 7, 2026 13:25
…tion that owns it (#2454)

* refactor(auth): let the phone screen own its verification loading state

* fix(auth): read auth state per authUI instance when clearing loading on dispose
…eption fallback exhausts

(cherry picked from commit 6fa4f00)
(cherry picked from commit aca99e7)
(cherry picked from commit 8784b13ce29739ed7785aab9ab6fe4faad2a2981)
…data

(cherry picked from commit 8eca4fa)
(cherry picked from commit ac61312)
(cherry picked from commit 126ba985660ff272dbfda427b644ad4fb1ca6197)
…loop

(cherry picked from commit a87cfe3)
(cherry picked from commit 3f4ae70)
(cherry picked from commit 1f1ada380039ed5e7476dfc2e38a683e6edb4549)
…lot (#2452)

* feat(auth): reshape reauthContent into a ReauthContentState content slot

* fix(auth): address reauth review findings and retain state across recreation

* refactor(auth): make reauthentication a request-scoped state machine

* fix(auth): keep a proved reauthentication alive when its operation signs out

* fix(auth): tear down phone verification when a reauthentication attempt fails

* test(auth): cover sign-out-during-retry and phone reauth failure end to end

* test(auth): drop the flaky phone reauth e2e case
…lment (#2462)

* test(auth): pin onComplete and factor refresh on successful MFA enrollment

* test(auth): pin the SMS MFA enrollment route through send, verify and resend

* test(auth): pin the missing TOTP secret guard and the resend's clean enroll
…slot's sheet chrome (#2476)

* test(auth): cover the three recoveries that write a value through to the step they move to

* test(auth): assert a custom reauth slot's email and phone steps stay inside the library sheet
demolaf and others added 17 commits September 7, 2026 13:25
…2477)

Co-authored-by: Russell Wheatley <russellwheatley85@gmail.com>
…2492)

Co-authored-by: Russell Wheatley <russellwheatley85@gmail.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request enables Android Lint checks for the :app and :e2eTest modules, integrating them into the root lintAll task and updating the project documentation. It also resolves several lint warnings by extracting hardcoded strings, suppressing specific app link and unused resource warnings, and removing unused assets. The reviewer feedback recommends updating an outdated comment in build.gradle.kts and suggests centralizing the common lint configuration in the root build file to avoid duplication across modules.

Comment thread build.gradle.kts
Comment thread app/build.gradle.kts
@demolaf
demolaf force-pushed the ci/gate-app-and-e2etest-on-lint branch 2 times, most recently from c848fb3 to 9da36a1 Compare September 9, 2026 14:14
@demolaf
demolaf marked this pull request as draft September 9, 2026 14:31
@demolaf
demolaf marked this pull request as ready for review September 10, 2026 07:14
@demolaf
demolaf force-pushed the ci/gate-app-and-e2etest-on-lint branch from 9da36a1 to 9aa0fee Compare September 10, 2026 07:45
@demolaf
demolaf changed the base branch from ci/run-android-lint-in-the-build to version-10.0.0-beta05 September 12, 2026 11:13
@demolaf
demolaf changed the base branch from version-10.0.0-beta05 to pre-GA September 14, 2026 09:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant