Skip to content

Fix Settings page and SSH virtual keys bottom overflow#1015

Merged
lollipopkit merged 2 commits intolollipopkit:mainfrom
GT-610:fix/safearea
Jan 21, 2026
Merged

Fix Settings page and SSH virtual keys bottom overflow#1015
lollipopkit merged 2 commits intolollipopkit:mainfrom
GT-610:fix/safearea

Conversation

@GT-610
Copy link
Collaborator

@GT-610 GT-610 commented Jan 20, 2026

Resolve #774.
Resolve #1013.

Summary by CodeRabbit

  • Bug Fixes
    • Improved display layout handling across multiple pages to properly respect device safe areas, notches, and system UI padding, ensuring content displays correctly on various devices without overlap with system interface elements.

✏️ Tip: You can customize this high-level summary in your review settings.

Add the SafeArea component to multiple pages to ensure that content is not obscured by the device status bar or navigation bar, thereby enhancing the user experience
…ayed within the security zone Wrap the virtual keyboard area within the SafeArea to prevent it from being obscured by the system UI, and remove any unnecessary bottom padding
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 20, 2026

📝 Walkthrough

Walkthrough

The pull request adds SafeArea wrappers around the body content of multiple Scaffold-based pages to respect device display padding and notches. Additionally, it removes redundant bottom padding calculation from the SSH virtual-key container to fix layout overflow issues when too many keys are configured.

Changes

Cohort / File(s) Summary
UI SafeArea Wrapping
lib/view/page/backup.dart, lib/view/page/private_key/list.dart, lib/view/page/setting/about.dart, lib/view/page/setting/entry.dart
Wraps Scaffold body content (_buildBody, ListView, TabBarView) with SafeArea widget to apply safe area padding and avoid system UI overlaps.
SSH Virtual-Key Layout Fix
lib/view/page/ssh/page/page.dart
Wraps the bottom virtual-key container with SafeArea (top: false) and removes the redundant _media.padding.bottom addition from container height calculation to prevent layout overflow when multiple virtual keys are present.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • #1011: Also modifies SSH virtual-key UI in lib/view/page/ssh/page/page.dart with adjustments to key layout behavior in horizontal one-line mode.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately describes the main changes: wrapping pages in SafeArea to fix overflow issues with the Settings page and SSH virtual keyboard area.
Linked Issues check ✅ Passed The PR addresses issue #774 by wrapping the virtual keyboard area in SafeArea and removing unnecessary bottom padding, preventing keys from being cut off by system UI.
Out of Scope Changes check ✅ Passed All changes are within scope: SafeArea wrapping in backup.dart, private_key/list.dart, setting/about.dart, setting/entry.dart, and ssh/page/page.dart directly addresses the overflow and layout issues.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

🧹 Recent nitpick comments
lib/view/page/setting/entry.dart (1)

101-101: Verify top padding under the CustomAppBar.
SafeArea is great for bottom insets, but please sanity‑check that it doesn’t introduce extra top spacing below the app bar; if it does, consider SafeArea(top: false).

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d5e22cb and f5a9dc4.

📒 Files selected for processing (5)
  • lib/view/page/backup.dart
  • lib/view/page/private_key/list.dart
  • lib/view/page/setting/about.dart
  • lib/view/page/setting/entry.dart
  • lib/view/page/ssh/page/page.dart
🧰 Additional context used
📓 Path-based instructions (1)
lib/view/**/*.dart

📄 CodeRabbit inference engine (CLAUDE.md)

lib/view/**/*.dart: Prefer widgets/utilities from fl_lib for common UI (e.g., CustomAppBar, context.showRoundDialog, Input, Btnx.cancelOk)
Prefer using libL10n strings before adding new ones to project l10n
Split UI into build, actions, and utils; use extension on to separate concerns

Files:

  • lib/view/page/backup.dart
  • lib/view/page/private_key/list.dart
  • lib/view/page/setting/entry.dart
  • lib/view/page/setting/about.dart
  • lib/view/page/ssh/page/page.dart
🧠 Learnings (1)
📚 Learning: 2026-01-11T06:20:59.076Z
Learnt from: GT-610 Repo: lollipopkit/flutter_server_box PR: 0 File: :0-0 Timestamp: 2026-01-11T06:20:59.076Z Learning: In lib/view/page/server/detail/view.dart, the settings `cpuViewAsProgress`, `moveServerFuncs`, and `displayCpuIndex` are UI/display preferences that are modified through a separate settings page and cannot be changed while viewing the server detail page. Therefore, caching them as `late final` is intentional and acceptable—the values automatically refresh when users navigate away and back to the detail page, reducing redundant `fetch()` calls without compromising user experience. </add_learning> <!-- <review_comment_addressed> 

Applied to files:

  • lib/view/page/setting/entry.dart
🔇 Additional comments (4)
lib/view/page/private_key/list.dart (1)

26-26: SafeArea wrapper is appropriate here.
Helps avoid content being obscured by system insets on edge‑to‑edge devices.

lib/view/page/backup.dart (1)

44-44: SafeArea addition looks good.
This should protect backup content from bottom/side insets without changing behavior.

lib/view/page/setting/about.dart (1)

14-17: SafeArea wrapper here is fine.
Provides consistent padding around the About content on devices with insets.

Also applies to: 63-64

lib/view/page/ssh/page/page.dart (1)

271-289: Bottom bar SafeArea + height change looks correct.
This should prevent the virtual key row from being cut off by system UI. Please verify with >8 virtual keys on Android 15 devices to confirm the overflow is resolved.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


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 and usage tips.

@lollipopkit lollipopkit merged commit 347d294 into lollipopkit:main Jan 21, 2026
2 checks passed
@GT-610 GT-610 deleted the fix/safearea branch January 21, 2026 02:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants