feat(android): add theme mode selection#90752
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 7, 2026, 6:23 PM ET / 22:23 UTC. Summary PR surface: Other +185. Total +185 across 13 files. Reproducibility: not applicable. as a bug reproduction; this is a feature PR, and current-main inspection confirms Android still shows a fixed Dark Appearance screen with no persisted mode selector. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the Android-local theme picker after maintainer sign-off on the Dark upgrade default, or switch the missing/unknown preference default to System if maintainers want Android convention over preserving the current dark shell. Do we have a high-confidence way to reproduce the issue? Not applicable as a bug reproduction; this is a feature PR, and current-main inspection confirms Android still shows a fixed Dark Appearance screen with no persisted mode selector. Is this the best way to solve the issue? Yes, conditionally: Android app prefs and Compose theme boundaries are the right layer for this feature, but the Dark fallback is a product/upgrade choice maintainers should accept explicitly before merge. AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 57e0bdaabe0a. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Other +185. Total +185 across 13 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
ce4afb6 to
be172f0
Compare
* feat(android): add theme mode selection * refine Android theme mode handling --------- Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com>
* feat(android): add theme mode selection * refine Android theme mode handling --------- Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com>
Summary
What problem does this PR solve?
Why does this matter now?
What is the intended outcome?
What is intentionally out of scope?
What does success look like?
What should reviewers focus on?
AI-assisted: implemented and validated with Codex, then manually inspected and tested in a local Android/OpenClaw setup.
Linked context
Which issue does this close?
Closes #
Which issues, PRs, or discussions are related?
Related #
Was this requested by a maintainer or owner?
Real behavior proof (required for external PRs)
thirdPartyDebugapp installed from this branch and connected to a local OpenClaw Android test profile.thirdPartyDebugbuild on the local Android emulator.adb exec-out screencap -p.Appearance theme picker in Light mode:
Home in Light mode:
Sessions in Light mode:
Tests and validation
Which commands did you run?
git diff upstream/main --checkANDROID_HOME=<Android SDK> ANDROID_SDK_ROOT=<Android SDK> ./gradlew :app:testThirdPartyDebugUnitTest --tests ai.openclaw.app.ui.ShellScreenLogicTest :app:assembleThirdPartyDebug --no-daemon --stacktraceANDROID_HOME=<Android SDK> ANDROID_SDK_ROOT=<Android SDK> ./gradlew :app:installThirdPartyDebug --no-daemon --stacktraceANDROID_HOME=<Android SDK> ANDROID_SDK_ROOT=<Android SDK> ./gradlew :app:ktlintCheck --no-daemon --stacktraceCODEX_HOME=<Codex auth home> skills/autoreview/scripts/autoreview --mode branch --base upstream/mainWhat regression coverage was added or updated?
ShellScreenLogicTestnow covers theme-mode defaulting, label round trips, and System/Dark/Light resolution against system dark mode.What failed before this fix, if known?
If no test was added, why not?
Validation notes:
:app:testThirdPartyDebugUnitTest --tests ai.openclaw.app.ui.ShellScreenLogicTest,:app:assembleThirdPartyDebug, and:app:installThirdPartyDebugpassed.:app:ktlintCheckstill fails on existing upstream Android ktlint issues outside this PR, includingChatController.kt,GatewayDiscovery.kt,DeviceHandler.kt,PermissionRequester.kt,SessionFilters.kt,MicCaptureManager.kt, andTalkModeManager.kt. None of the reported ktlint files are touched by this branch.Risk checklist
Did user-visible behavior change? (
Yes/No)Yes.
Did config, environment, or migration behavior change? (
Yes/No)Yes. A new local Android appearance preference is persisted in plain app prefs.
Did security, auth, secrets, network, or tool execution behavior change? (
Yes/No)No.
What is the highest-risk area?
How is that risk mitigated?
Current review state
What is the next action?
What is still waiting on author, maintainer, CI, or external proof?
Which bot or reviewer comments were addressed?