Skip to content

feat(verify): Android platform layer and device choice - #43

Draft
mahmoud-elmorabea wants to merge 15 commits into
verify-02-platform-iosfrom
verify-03-platform-android
Draft

mahmoud-elmorabea wants to merge 15 commits into
verify-02-platform-iosfrom
verify-03-platform-android

Conversation

@mahmoud-elmorabea

Copy link
Copy Markdown
Contributor

Adds the Android platform layer (Gradle project, adb, logcat, app state) and choosing a device across both platforms.

Part 3 of 8 of verify push, stacked on #42.

🤖 Generated with Claude Code

The Gradle project, adb, logcat, app state on Android, and choosing a
device across both platforms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mahmoud-elmorabea and others added 14 commits October 17, 2026 21:22
- Keep the SDK lines React Native forwards to logcat under ReactNativeJS,
  with their [CIO] prefix dropped.
- Read the wrapper package's Gradle files and manifest, which the build
  merges into the app's; modules only compiled against don't count.
- Find Flutter's build output in the project's own build folder.
- Tell a build that isn't debuggable from one with nothing stored, and read
  the SDK's key from its store's file name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An app that changed its key keeps a store for the old one, and the first
one listed could be stale.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The wrappers declare location and geofence twice: api behind a Gradle
property, compileOnly otherwise. Both were listed as shipped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
am kill ends only a background process, and the app had just been launched
into the foreground: every killed push reached a running app. The app now
goes home first, and a process that survives am kill leaves the state unset.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WorkManager logs the SDK's delivered-metric worker at its own level, so the
line is there when the SDK logs nothing: a React Native app started for a
push runs no JavaScript, which is where its SDK's log level is set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…here

The native version comes from the app's Gradle files (written out, in a variable, or in
a version catalog), or under a wrapper from the package's pin unless the app overrides
it. A wrapper whose Gradle files never name the SDK is unread rather than shipping
nothing, and an app's own :core module is no longer read as the SDK. The device's state
says which stores existed, apart from what they held.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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