Skip to content

fix(android): group settings by intent#94539

Merged
clawsweeper[bot] merged 1 commit into
openclaw:mainfrom
Tosko4:fix/android-settings-sections
Jun 19, 2026
Merged

fix(android): group settings by intent#94539
clawsweeper[bot] merged 1 commit into
openclaw:mainfrom
Tosko4:fix/android-settings-sections

Conversation

@Tosko4

@Tosko4 Tosko4 commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Groups the Android Settings home into intent-based sections instead of one long flat list.
  • Keeps each row wired to the existing detail screens; this is a Settings overview organization change only.
  • Makes gateway/device/channel controls, agent automation controls, phone/privacy controls, profile/device settings, and diagnostics easier to scan.
  • Out of scope: redesigning the detail screens, changing settings behavior, changing permissions, or touching gateway/auth/pairing logic.
  • AI-assisted: implemented and validated with Codex, then manually inspected and tested in a local Android setup.

Linked context

No linked issue.

This is a narrow Android Settings UX cleanup based on the current app surface: Settings already exposes powerful controls, but the previous one-layer list made unrelated controls compete visually.

Real behavior proof (required for external PRs)

  • Behavior or issue addressed: Android Settings previously rendered power settings in one flat list; this PR groups them by meaning.
  • Real environment tested: local Android emulator with the third-party debug flavor.
  • Exact steps or command run after this patch:
    • Built and installed the third-party debug APK.
    • Launched ai.openclaw.app.
    • Opened the bottom navigation Settings tab.
    • Captured Settings screenshots before and after grouping.
  • Evidence after fix:

Before, Settings rows were presented as one continuous flat list:

Before: flat Settings list

After, the first Settings view groups connection and automation surfaces:

After: connection and automation sections

After scrolling, phone context, profile/device, and diagnostics have their own sections:

After: phone, profile, and diagnostics sections

  • Observed result after fix: Settings now shows Connection, Agents & automation, Phone context & privacy, Profile & device, Diagnostics, and Account groups while preserving the existing row actions.
  • What was not tested: physical Android device behavior and connected-gateway data states.
  • Proof limitations or environment constraints: screenshot proof uses a local Android emulator with disconnected gateway data, so rows show empty/offline summaries.
  • Before evidence: included above.

Tests and validation

Commands run after rebasing on current upstream/main:

cd apps/android
ANDROID_HOME=/home/nabu/Android/Sdk ./gradlew :app:testThirdPartyDebugUnitTest --tests ai.openclaw.app.ui.ShellScreenLogicTest
ANDROID_HOME=/home/nabu/Android/Sdk ./gradlew :app:assembleThirdPartyDebug
ANDROID_HOME=/home/nabu/Android/Sdk ./gradlew :app:installThirdPartyDebug

Additional checks:

cd apps/android
ANDROID_HOME=/home/nabu/Android/Sdk ./gradlew :app:ktlintCheck
ANDROID_HOME=/home/nabu/Android/Sdk ./gradlew :app:lintThirdPartyDebug

Results:

  • ShellScreenLogicTest: passed.
  • assembleThirdPartyDebug: passed.
  • installThirdPartyDebug: passed on a local Android emulator.
  • Structured Codex autoreview against upstream/main: clean, no accepted/actionable findings.
  • :app:ktlintCheck: still fails on existing unrelated style issues in ChatController.kt and ChatScreen.kt; this PR only changes ShellScreen.kt and ShellScreenLogicTest.kt.
  • :app:lintThirdPartyDebug: still fails on existing unrelated OnboardingFlow.kt POST_NOTIFICATIONS API-33 lint errors; this PR does not touch notification permission code.

Regression coverage added:

  • settingsSectionTitlesGroupPowerSettingsByMeaning
  • settingsSectionsPreserveMeaningfulOrder

Risk checklist

Did user-visible behavior change? (Yes/No)

Yes. The Settings overview is grouped into titled sections.

Did config, environment, or migration behavior change? (Yes/No)

No.

Did security, auth, secrets, network, or tool execution behavior change? (Yes/No)

No.

Highest-risk area:

Low-risk UI organization in the Android Settings overview.

How is that risk mitigated?

The change reuses the existing rows and detail routes, adds focused section-mapping tests, builds the app, installs it on a local Android emulator, and includes screenshot proof that the grouped Settings screen renders.

Current review state

Next action:

Open for CI and ClawSweeper review. Author-side bot feedback will be handled before tagging the Android owner for maintainer review.

Still waiting on:

  • GitHub CI.
  • ClawSweeper review.
  • Maintainer review after author-side ClawSweeper feedback, if any, is handled.

Bot or reviewer comments addressed:

None yet.

@openclaw-barnacle openclaw-barnacle Bot added app: android App: android size: S proof: supplied External PR includes structured after-fix real behavior proof. labels Jun 18, 2026
@Tosko4 Tosko4 marked this pull request as ready for review June 18, 2026 09:51
@Tosko4

Tosko4 commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@clawsweeper

clawsweeper Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Codex review: passed. Reviewed June 19, 2026, 12:14 AM ET / 04:14 UTC.

Summary
The PR reorganizes the Android Settings home rows into titled intent sections and adds ShellScreen logic tests for section title mapping and section ordering.

PR surface: Other +106. Total +106 across 2 files.

Reproducibility: not applicable. this is a UI organization cleanup rather than a bug report. The relevant verification path is the before/after Android emulator screenshot proof plus source comparison against current main.

Review metrics: none identified.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🦞 diamond lobster ✨ media proof bonus
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • none.

Next step before merge

  • [P2] No repair lane is needed because the active PR has no concrete automated-fix blocker after review.

Security
Cleared: The diff is limited to Android Kotlin UI grouping and tests, with no CI, dependency, permissions, auth, secrets, network, package, or supply-chain surface change.

Review details

Best possible solution:

Land the focused Settings overview grouping after exact-head checks and Android maintainer review agree with the section taxonomy.

Do we have a high-confidence way to reproduce the issue?

Not applicable: this is a UI organization cleanup rather than a bug report. The relevant verification path is the before/after Android emulator screenshot proof plus source comparison against current main.

Is this the best way to solve the issue?

Yes: grouping rows in ShellScreen.kt is the narrow maintainable layer because SettingsDetailScreen continues to own detail routing and existing row actions are preserved.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against d9c66b9c6df1.

Label changes

Label justifications:

  • P3: This is a low-risk Android Settings ergonomics cleanup with limited blast radius, screenshot proof, and focused unit coverage.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 🚀 automerge armed: This PR is in ClawSweeper's automerge lane. Sufficient (screenshot): The PR body supplies after-fix Android emulator screenshots showing the grouped Settings screen and describes the build, install, launch, and Settings-tab path used after the patch.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body supplies after-fix Android emulator screenshots showing the grouped Settings screen and describes the build, install, launch, and Settings-tab path used after the patch.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The PR body supplies after-fix Android emulator screenshots showing the grouped Settings screen and describes the build, install, launch, and Settings-tab path used after the patch.
Evidence reviewed

PR surface:

Other +106. Total +106 across 2 files.

View PR surface stats
Area Files Added Removed Net
Source 0 0 0 0
Tests 0 0 0 0
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 2 130 24 +106
Total 2 130 24 +106

What I checked:

Likely related people:

  • Tosko4: Prior merged Android ShellScreen and SettingsScreens work includes companion shell UX, theme mode selection, and provider attention changes on the same files; this is prior merged area history beyond authorship of this PR. (role: recent area contributor; confidence: high; commits: 9159b3bf8e47, 3c73ff7689f0, 8b66003a0b1c; files: apps/android/app/src/main/java/ai/openclaw/app/ui/ShellScreen.kt, apps/android/app/src/main/java/ai/openclaw/app/ui/SettingsScreens.kt, apps/android/app/src/test/java/ai/openclaw/app/ui/ShellScreenLogicTest.kt)
  • joshavant: Recent commits touched Android Settings/ShellScreen provider readiness, appearance settings, gateway pairing, and about/detail surfaces near this change. (role: recent adjacent contributor; confidence: medium; commits: 72b387ad488c, 5c5391836b1e, a2455fcc09ef; files: apps/android/app/src/main/java/ai/openclaw/app/ui/ShellScreen.kt, apps/android/app/src/main/java/ai/openclaw/app/ui/SettingsScreens.kt)
  • obviyus: Recent Android shell cleanup and list-surface commits touched the same shell/settings UI area, and the PR discussion asked this person for Android review. (role: recent Android shell refactor contributor; confidence: medium; commits: 30160933f08d, e5e6cf04a2f4, 955909c988f7; files: apps/android/app/src/main/java/ai/openclaw/app/ui/ShellScreen.kt, apps/android/app/src/main/java/ai/openclaw/app/ui/SettingsScreens.kt)
  • Solvely-Colin: Recent node approval work touched ShellScreen and ShellScreenLogicTest, making it relevant for Android Settings attention-state context even though it is not the main owner trail. (role: recent adjacent contributor; confidence: low; commits: 8e77d5e1444f; files: apps/android/app/src/main/java/ai/openclaw/app/ui/ShellScreen.kt, apps/android/app/src/test/java/ai/openclaw/app/ui/ShellScreenLogicTest.kt)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

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
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. labels Jun 18, 2026
@Tosko4

Tosko4 commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

@obviyus when you have a moment, could you take a look at this small Android Settings cleanup? ClawSweeper marked it ready for maintainer review, Android checks are green, and the PR has before/after emulator screenshots. No rush.

@vincentkoc

Copy link
Copy Markdown
Member

/clownfish automerge

@vincentkoc vincentkoc added clownfish:automerge Maintainer opted this Clownfish PR into bounded ClawSweeper-reviewed automerge clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge labels Jun 19, 2026
@vincentkoc

Copy link
Copy Markdown
Member

Clownfish is on the reef for this PR. 🐠

I tagged clownfish:automerge and sent ClawSweeper over this exact head. If the sweep finds rough coral, failing checks, or needs-human, I will take another bounded repair lap and ask for a fresh review.

A maintainer can call /clownfish stop any time and I will drift this back to human review.

@clawsweeper clawsweeper Bot added status: 🚀 automerge armed This PR is in ClawSweeper's automerge lane. and removed status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jun 19, 2026
@clawsweeper

clawsweeper Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

🦞✅
ClawSweeper merged this PR after the passing review.

Source: clawsweeper[bot]
Feedback: structured ClawSweeper verdict: pass (sha=da9bf5c5b591c72555510feb1d7931073d203f0a)
Merge status: merged by ClawSweeper automerge
Merged at: 2026-06-19T04:15:20Z
Merge commit: 6a0c3eaf7836

What merged:

  • The PR reorganizes the Android Settings home rows into titled intent sections and adds ShellScreen logic tests for section title mapping and section ordering.
  • PR surface: Other +106. Total +106 across 2 files.
  • Reproducibility: not applicable. this is a UI organization cleanup rather than a bug report. The relevant ve ... ion path is the before/after Android emulator screenshot proof plus source comparison against current main.

Automerge notes:

  • No ClawSweeper repair was needed after automerge opt-in.

The automerge loop is complete.

Automerge progress:

  • 2026-06-19 04:15:07 UTC review passed da9bf5c5b591 (structured ClawSweeper verdict: pass (sha=da9bf5c5b591c72555510feb1d7931073d203...)
  • 2026-06-19 04:02:35 UTC review queued da9bf5c5b591 (queued)
  • 2026-06-19 04:15:21 UTC merged da9bf5c5b591 (merged by ClawSweeper automerge)

@clawsweeper clawsweeper Bot added the clawsweeper:human-review Needs maintainer review before ClawSweeper can continue label Jun 19, 2026
@clawsweeper

clawsweeper Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

🦞✅
ClawSweeper is pausing this repair loop for human review.

Source: clawsweeper[bot]
Reason: - No repair lane is needed because the review found no concrete blocker; the remaining action is normal maintainer review.; Cleared: The diff only changes Android Kotlin UI/test code and introduces no security, auth, dependency, workflow, package, or supply-chain surface. (sha=da9bf5c5b591c72555510feb1d7931073d203f0a)

Why human review is needed:
This item has security-sensitive risk. ClawSweeper is pausing instead of making an autonomous change that could affect trust, credentials, permissions, or exposure.

What the maintainer can do as a next step:
If the maintainer accepts the current risk and wants ClawSweeper to continue merge gates, comment @clawsweeper approve. If the security-sensitive detail still needs changes, describe the safe path or push the fix, then comment @clawsweeper automerge. If the risk should not be automated, keep the PR paused for manual review or comment @clawsweeper stop.

I added clawsweeper:human-review and left the final call with a maintainer.

@clawsweeper clawsweeper Bot removed the clawsweeper:human-review Needs maintainer review before ClawSweeper can continue label Jun 19, 2026
@clawsweeper clawsweeper Bot merged commit 6a0c3ea into openclaw:main Jun 19, 2026
165 of 182 checks passed
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jun 19, 2026
Summary:
- The PR reorganizes the Android Settings home rows into titled intent sections and adds ShellScreen logic tests for section title mapping and section ordering.
- PR surface: Other +106. Total +106 across 2 files.
- Reproducibility: not applicable. this is a UI organization cleanup rather than a bug report. The relevant ve ... ion path is the before/after Android emulator screenshot proof plus source comparison against current main.

Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head da9bf5c.
- Required merge gates passed before the squash merge.

Prepared head SHA: da9bf5c
Review: openclaw#94539 (comment)

Co-authored-by: Tosko4 <tosko4@gmail.com>
cxbAsDev pushed a commit to cxbAsDev/openclaw that referenced this pull request Jun 23, 2026
Summary:
- The PR reorganizes the Android Settings home rows into titled intent sections and adds ShellScreen logic tests for section title mapping and section ordering.
- PR surface: Other +106. Total +106 across 2 files.
- Reproducibility: not applicable. this is a UI organization cleanup rather than a bug report. The relevant ve ... ion path is the before/after Android emulator screenshot proof plus source comparison against current main.

Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head da9bf5c.
- Required merge gates passed before the squash merge.

Prepared head SHA: da9bf5c
Review: openclaw#94539 (comment)

Co-authored-by: Tosko4 <tosko4@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: android App: android clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge clownfish:automerge Maintainer opted this Clownfish PR into bounded ClawSweeper-reviewed automerge P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: S status: 🚀 automerge armed This PR is in ClawSweeper's automerge lane.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants