Skip to content

Give the activity log room on a short viewport - #92

Merged
rossigee merged 1 commit into
masterfrom
fix/landscape-log-scroll
Oct 6, 2026
Merged

rossigee merged 1 commit into
masterfrom
fix/landscape-log-scroll

Conversation

@rossigee

@rossigee rossigee commented Oct 6, 2026

Copy link
Copy Markdown
Owner

The defect

The log card was layout_height="0dp" pinned between the buttons and the bottom of
the parent, so it received whatever vertical space was left over.

Measured on a device in landscape (1080 tall): 150 units — about one row, with no
way to scroll to the rest of the history. Before the 2.2.0 status card replaced three
counters it was 83 units, so the redesign improved it but did not solve it. The
constraint itself was correct; the problem is that a short viewport has nothing left
to give.

The fix

The stack now sits in a NestedScrollView with fillViewport="true", and the log
card keeps a minHeight of 180dp alongside its weight.

  • Tall viewport (portrait): fillViewport stretches the child to the viewport, and
    the weighted card takes the remainder — the log fills the screen exactly as before.
  • Short viewport (landscape): the log cannot shrink below its minimum, so the
    content exceeds the viewport and the page scrolls instead of squeezing the log to
    one row.

Root converted from ConstraintLayout to a vertical LinearLayout inside the scroll
view. A 0dp-height child constrained to both top and bottom inside a
wrap_content parent is circular, and ConstraintLayout does not resolve that
predictably; LinearLayout weights with a minHeight do.

Verified on a device, both orientations

  • Landscape: the log card now shows multiple entries where it previously showed one.
  • Portrait: unchanged, the card fills the remaining height.

Also verified while I had the device

Two things from the 2.2.0 release that I had only checked in bytecode:

  • Clear Cache from the menu now confirms. The dialog appears with the corrected
    text, and tapping Cancel leaves the cache untouched — verified with a cleared
    log: zero Cache cleared successfully entries before and after. Clear All does
    fire it.
  • Diagnostics report once. The log shows 438 messages have no cache entry at
    12:56:39 and not again on either later launch, which is the repeat-suppression
    working.

The log card was 0dp pinned between the buttons and the bottom of the
parent, so it took whatever was left over. On a 1080-tall landscape
screen that was 150 units — about one row — with no way to scroll to
the rest of the history. Measured, not assumed: the same card was 83
units before the status card shrank.

The stack is now inside a NestedScrollView with fillViewport, and the
log keeps a 180dp minimum. A tall viewport still fills it, because
fillViewport stretches the child and the weighted card takes the
remainder; a short one scrolls instead of crushing it.

Verified on a device in both orientations. In landscape the log now
shows entries where it previously showed one, and in portrait the card
fills the remaining height as before.
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown

🤖 Automated Code Review

@rossigee
rossigee merged commit 9774875 into master Oct 6, 2026
3 checks passed
@rossigee rossigee mentioned this pull request Oct 6, 2026
3 of 7 tasks
rossigee added a commit that referenced this pull request Oct 6, 2026
- versionCode 8, versionName "2.2.1"
- New changelog entry documenting the post-2.2.0 fixes:
  - Activity log height in constrained viewports (PR #92)
  - Release checklist no longer leaks Zapstore internals (PR #94)
- zapstore-publish prerequisite (v1.0.3 + @v1 update) already shipped so the 30 s
  timeout and documented fallback are live for this release.
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