feat: restructure Settings home and hide developer tools#1428
Conversation
Add Help and About surfaces, move developer controls behind the seven-tap version gate, and regroup privacy, account, and composer settings. Verified by independent pre-commit review. Fixes #1128
WalkthroughRestructures the Settings home into account, device privacy, Help, About, and hidden Developer surfaces. Adds seven-tap developer unlocking, OSS license viewing, updated navigation, composer labeling, localized strings, tests, and Gradle OSS license integration. ChangesSettings restructuring
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
|
Ready to review this PR? Stage has broken it down into 6 individual chapters for you: Chapters generated by Stage for commit a5cf3e4 on Jul 15, 2026 5:07pm UTC. |
Preview APK for PR #1428Home-screen label: 1428 White Noise with the blueprint launcher icon — installs side-by-side with the production and staging apps. Install directly — one tap, no GitHub sign-in (public, content-addressed Every push to this PR rebuilds and updates this comment. |
agent-p1p
left a comment
There was a problem hiding this comment.
Pip adversarial review — a5cf3e4a
BLOCKING:
none
SUGGESTION:
- Behavioral navigation coverage —
app/src/test/java/dev/ipf/whitenoise/android/ui/navigation/SettingsNavigationTest.kt:8: the new tests validate the static row list and>= 7helper, but not the actual Compose wiring. Add coverage for Help → About → seven version taps → Developer row, plus the nested About → Help and Key Packages → Account & keys back paths. An instrumented smoke test that opens the OSS licenses activity would also guard the main new external screen.
NITPICK:
- External-link failures are silent —
app/src/main/java/dev/ipf/whitenoise/android/ui/settings/HelpAboutScreens.kt:136:runCatchingprevents a crash when no browser can handle Report a bug or Privacy policy, but the tap becomes a no-op. Consider presenting a short unavailable message on failure.
SUMMARY: The change is well-scoped and matches the requested IA. Row order and renames are complete; Help/About, the seven-tap Developer gate, nested back navigation, and localized copy are wired consistently. The renamed sensitive surfaces preserve the existing app-lock/telemetry and nsec/sign-out behavior. I also verified the merged manifest assigns Theme.Material3.DayNight.NoActionBar to the v2 OSS licenses activity and the runtime classpath includes AppCompat, so that screen's theme integration is sound. Local SettingsNavigationTest passed 3/3 and :app:ktlintCheck passed. No blocking findings.
VERDICT: APPROVE
SENSITIVE_PATHS: app/src/main/java/dev/ipf/whitenoise/android/ui/settings/AccountKeysScreen.kt; app/src/main/java/dev/ipf/whitenoise/android/ui/settings/DevicePrivacyScreen.kt
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
app/src/main/java/dev/ipf/whitenoise/android/ui/settings/AppearanceScreen.kt (1)
120-124: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueAlign subheader styling with other settings screens.
Consider applying the
onSurfaceVariantcolor and horizontal padding to this subheader to ensure consistent visual alignment with the settings rows beneath it, matching the pattern used for similar subheaders (e.g., the app lock delay subheader inDevicePrivacyScreen).💅 Proposed styling tweak
SectionCard(title = stringResource(R.string.composer)) { Text( text = stringResource(R.string.enter_key_behavior_title), style = MaterialTheme.typography.labelLarge, + color = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier.padding(horizontal = 16.dp), )🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@app/src/main/java/dev/ipf/whitenoise/android/ui/settings/AppearanceScreen.kt` around lines 120 - 124, The composer subheader Text in AppearanceScreen should match the styling used by comparable settings subheaders. Update the Text under SectionCard for the composer section to use the theme’s onSurfaceVariant color and the same horizontal padding pattern as the app lock delay subheader in DevicePrivacyScreen, while preserving its existing typography and text resource.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In
`@app/src/main/java/dev/ipf/whitenoise/android/ui/settings/AppearanceScreen.kt`:
- Around line 120-124: The composer subheader Text in AppearanceScreen should
match the styling used by comparable settings subheaders. Update the Text under
SectionCard for the composer section to use the theme’s onSurfaceVariant color
and the same horizontal padding pattern as the app lock delay subheader in
DevicePrivacyScreen, while preserving its existing typography and text resource.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: aea673e7-c1b8-4311-a4ee-43c9c45e2552
📒 Files selected for processing (22)
app/build.gradle.ktsapp/src/main/java/dev/ipf/whitenoise/android/ui/navigation/AppDestinations.ktapp/src/main/java/dev/ipf/whitenoise/android/ui/navigation/MainShell.ktapp/src/main/java/dev/ipf/whitenoise/android/ui/settings/AccountKeysScreen.ktapp/src/main/java/dev/ipf/whitenoise/android/ui/settings/AppearanceScreen.ktapp/src/main/java/dev/ipf/whitenoise/android/ui/settings/DeveloperScreen.ktapp/src/main/java/dev/ipf/whitenoise/android/ui/settings/DevicePrivacyScreen.ktapp/src/main/java/dev/ipf/whitenoise/android/ui/settings/HelpAboutScreens.ktapp/src/main/java/dev/ipf/whitenoise/android/ui/settings/SettingsScreen.ktapp/src/main/res/values-b+zh+Hant/strings.xmlapp/src/main/res/values-de/strings.xmlapp/src/main/res/values-es/strings.xmlapp/src/main/res/values-fr/strings.xmlapp/src/main/res/values-it/strings.xmlapp/src/main/res/values-pt/strings.xmlapp/src/main/res/values-ru/strings.xmlapp/src/main/res/values-tr/strings.xmlapp/src/main/res/values-zh/strings.xmlapp/src/main/res/values/strings.xmlapp/src/test/java/dev/ipf/whitenoise/android/ui/navigation/SettingsNavigationTest.ktbuild.gradle.ktsgradle/libs.versions.toml
Summary
Verification
Fixes #1128
Summary by CodeRabbit