Skip to content

refactor(car)!: remove the Android Auto integration from all build variants - #6779

Merged
jamesarich merged 1 commit into
mainfrom
claude/remove-android-auto
Aug 20, 2026
Merged

refactor(car)!: remove the Android Auto integration from all build variants#6779
jamesarich merged 1 commit into
mainfrom
claude/remove-android-auto

Conversation

@jamesarich

@jamesarich jamesarich commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

Why

Google Play has rejected three consecutive submissions — Jul 25 ("Category not permitted"), Aug 12, and Aug 19 (both "Login Credentials") — every one filed under Auto App Quality Guidelines review. The app enters that review lens through a single manifest declaration: com.google.android.gms.car.application. Production only ever shipped notification-only car messaging behind it; the templated CarAppService experience was already gated to -PenableCarTemplates=true builds that never reach a reviewed track. The lens has now cost five weeks of blocked releases and a missed DEF CON window, against a modest feature. This removes the entire integration so the 2.8.1 release — which carries the reviewer-facing Demo Mode (#6691) — can clear review.

Revert this PR's commit to restore the integration wholesale when the templated-messaging program is ready to resubmit deliberately.

🧹 Removed

  • feature/car/ — entire module: MeshtasticCarAppService, car screens, DI module, tests, both manifests (production <meta-data> and the flag-gated templated CarAppService), drawables, automotive_app_desc.xml
  • androidAppenableCarTemplates property wiring, googleCarTemplates res override, googleImplementation(projects.feature.car)
  • google FlavorModuleFeatureCarModule import + include
  • settings.gradle.kts module include; all four car-app version-catalog entries (stops Renovate bumping a dead dependency)

Deliberately kept

The in-app Android Auto docs page and its translations — removing them would touch the docs registry and every Crowdin locale file, making the future revert messier for purely cosmetic gain while the page describes a temporarily absent feature.

Testing Performed

Full baseline on the rebased branch (origin/main + this commit): spotlessApply spotlessCheck detekt assembleDebug test allTests — BUILD SUCCESSFUL, zero <failure>/<error> tags across 711 fresh test-result XML files. Repo-wide grep confirms zero residual references (feature.car, FeatureCarModule, enableCarTemplates, androidx.car, automotive_app_desc) outside deleted paths. Note: an earlier run failed on SoftDeviceQuirkCoverageTest (hwModel 136) — pre-existing at the branch point, fixed by #6776, gone after rebase.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Removed Features
    • Removed Android Auto and automotive app support, including car-based messaging, node views, status information, and emergency alerts.
    • Google flavor builds no longer include automotive functionality or related app metadata.
  • Documentation
    • Removed setup, testing, and feature documentation for the automotive experience.
  • Maintenance
    • Removed obsolete automotive assets, translations, test coverage, and build configuration.

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 0b225358-1938-45f5-bebf-a00ca932d3a5

📥 Commits

Reviewing files that changed from the base of the PR and between fee0b35 and 860c0f0.

📒 Files selected for processing (36)
  • .github/workflows/reusable-check.yml
  • androidApp/build.gradle.kts
  • androidApp/src/google/kotlin/org/meshtastic/app/di/FlavorModule.kt
  • androidApp/src/googleCarTemplates/res/xml/automotive_app_desc.xml
  • feature/car/README.md
  • feature/car/TESTING.md
  • feature/car/build.gradle.kts
  • feature/car/proguard-rules.pro
  • feature/car/src/main/AndroidManifest.xml
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/alerts/EmergencyHandler.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/di/FeatureCarModule.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/model/CarUiModels.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/screens/HomeScreen.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/screens/NodeDetailScreen.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/service/CarStateCoordinator.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/service/MeshtasticCarAppService.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/service/MeshtasticCarSession.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/util/CarScreenDataBuilder.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/util/CrashlyticsCarTagger.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/util/MessageFilter.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/util/NodeSubtitleFormatter.kt
  • feature/car/src/main/res/drawable/ic_car_meshtastic.xml
  • feature/car/src/main/res/drawable/ic_car_message.xml
  • feature/car/src/main/res/drawable/ic_car_nodes.xml
  • feature/car/src/main/res/drawable/ic_car_person.xml
  • feature/car/src/main/res/drawable/ic_car_status.xml
  • feature/car/src/main/res/drawable/ic_car_warning.xml
  • feature/car/src/main/res/values/hosts_allowlist.xml
  • feature/car/src/main/res/values/strings.xml
  • feature/car/src/main/res/xml/automotive_app_desc.xml
  • feature/car/src/templates/AndroidManifest.xml
  • feature/car/src/test/kotlin/org/meshtastic/feature/car/CarScreensTest.kt
  • feature/car/src/test/kotlin/org/meshtastic/feature/car/util/CarScreenDataBuilderTest.kt
  • feature/car/src/test/kotlin/org/meshtastic/feature/car/util/MessageFilterTest.kt
  • gradle/libs.versions.toml
  • settings.gradle.kts
💤 Files with no reviewable changes (34)
  • settings.gradle.kts
  • androidApp/src/googleCarTemplates/res/xml/automotive_app_desc.xml
  • feature/car/src/main/res/drawable/ic_car_person.xml
  • feature/car/proguard-rules.pro
  • feature/car/src/main/res/drawable/ic_car_nodes.xml
  • feature/car/src/main/AndroidManifest.xml
  • feature/car/src/main/res/drawable/ic_car_status.xml
  • feature/car/src/main/res/xml/automotive_app_desc.xml
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/di/FeatureCarModule.kt
  • feature/car/src/main/res/drawable/ic_car_message.xml
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/util/CrashlyticsCarTagger.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/screens/NodeDetailScreen.kt
  • feature/car/src/main/res/drawable/ic_car_meshtastic.xml
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/util/NodeSubtitleFormatter.kt
  • feature/car/README.md
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/screens/HomeScreen.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/util/CarScreenDataBuilder.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/service/CarStateCoordinator.kt
  • feature/car/src/main/res/values/hosts_allowlist.xml
  • feature/car/src/main/res/drawable/ic_car_warning.xml
  • feature/car/src/main/res/values/strings.xml
  • feature/car/src/test/kotlin/org/meshtastic/feature/car/util/MessageFilterTest.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/service/MeshtasticCarAppService.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/util/MessageFilter.kt
  • feature/car/build.gradle.kts
  • feature/car/src/templates/AndroidManifest.xml
  • androidApp/build.gradle.kts
  • feature/car/TESTING.md
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/service/MeshtasticCarSession.kt
  • gradle/libs.versions.toml
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/model/CarUiModels.kt
  • feature/car/src/test/kotlin/org/meshtastic/feature/car/CarScreensTest.kt
  • feature/car/src/test/kotlin/org/meshtastic/feature/car/util/CarScreenDataBuilderTest.kt
  • feature/car/src/main/kotlin/org/meshtastic/feature/car/alerts/EmergencyHandler.kt

Included review availability: Your plan provides up to 4 included reviews per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The Android Auto car feature is removed from the Gradle project, Google app wiring, CI test and coverage shards, feature implementation, resources, documentation, and tests.

Changes

Car feature removal

Layer / File(s) Summary
Remove car feature build and app integration
.github/workflows/reusable-check.yml, androidApp/..., gradle/libs.versions.toml, settings.gradle.kts
The :feature:car project, Car App libraries, Google flavor dependency, Koin integration, and CI test and coverage tasks are removed.
Delete car feature implementation
feature/car/...
The car module, Android Auto services, screens, state handling, models, utilities, resources, tests, and documentation are deleted.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 860c0

This change removes the Android Auto integration and its build wiring while retaining the documented in-app page; the reported full build and test checks pass, so no actionable merge-blocking risk remains beyond normal review.

🚥 Pre-merge checks | ✅ 7 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Regression Coverage For Changed Behavior ❓ Inconclusive Investigation is still in progress; no verdict evidence submitted yet. Inspect the exact diff and variant-specific manifest/build coverage before deciding.
✅ Passed checks (7 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the removal of the Android Auto integration from all build variants.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Sibling Call Sites And Presence Semantics ✅ Passed The diff only removes Android Auto files and build/DI wiring; it changes no nullable fields, zero-guards, presence checks, or new numeric defaults, and does not touch NodeItem siblings.
Tests Prove The Path, Not The End State ✅ Passed The diff adds or modifies no tests; all three car test files are deleted, so the path-versus-end-state test criteria do not apply.
Moved Code Diffed Against Its Original ✅ Passed The commit has no added, copied, or renamed paths; it deletes the car module and only removes its wiring. No type or function moved to a new location, so the move-specific conditions do not apply.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Aug 19, 2026

Copy link
Copy Markdown

⚠️ JUnit XML file not found

The CLI was unable to find any JUnit XML files to upload.
For more help, visit our troubleshooting guide.

@jamesarich
jamesarich force-pushed the claude/remove-android-auto branch from c905c7f to 4c04d97 Compare August 19, 2026 23:48
@jamesarich jamesarich added the refactor no functional changes label Aug 19, 2026
@github-actions github-actions Bot added the repo Repository maintenance label Aug 19, 2026
@jamesarich
jamesarich marked this pull request as ready for review August 19, 2026 23:52
…riants

Google Play has rejected three consecutive submissions (Jul 25, Aug 12,
Aug 19) under Auto App Quality Guidelines review — a lens the app enters
solely by declaring com.google.android.gms.car.application. Production
only ever shipped notification-only car messaging; the templated
CarAppService was already gated to flag builds that never reach a
reviewed track. Removing the entire integration (module, manifests,
build wiring, DI include, catalog entries) exits car-app review so the
2.8.1 release — which carries the reviewer-facing Demo Mode — can clear.

Deliberately kept: the in-app Android Auto docs page and its
translations, so this commit stays cleanly revertable when the templated
messaging program is ready to resubmit.

Revert this commit to restore the integration wholesale.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@jamesarich
jamesarich force-pushed the claude/remove-android-auto branch from 4c04d97 to 860c0f0 Compare August 19, 2026 23:52
jamesarich added a commit that referenced this pull request Aug 19, 2026
The labeler's conventional-commit title regex required the type/scope to
be followed immediately by ":", so titles carrying the breaking-change
marker "!" (e.g. "refactor(car)!: ...") failed to match and the PR got
no type/scope labels (observed on #6779). Allow an optional "!" before
the colon.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jamesarich
jamesarich enabled auto-merge August 20, 2026 00:02
@jamesarich
jamesarich added this pull request to the merge queue Aug 20, 2026
Merged via the queue into main with commit 93b6988 Aug 20, 2026
16 of 18 checks passed
@jamesarich
jamesarich deleted the claude/remove-android-auto branch August 20, 2026 00:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactor no functional changes repo Repository maintenance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant