Skip to content

Stop the empty login error box leaving a gap above the fields - #199

Merged
parawanderer merged 1 commit into
mainfrom
fix/login-error-box-reserves-space
Sep 13, 2026
Merged

parawanderer merged 1 commit into
mainfrom
fix/login-error-box-reserves-space

Conversation

@parawanderer

Copy link
Copy Markdown
Owner

Reported by @parawanderer from the 1.1.0 test build: a blank band between the title and the sign-in fields.

login_error_container started as invisible, which hides a view but keeps its height. It had always reserved a line's worth of space; #197 put the Export logs button inside it, which made the reserved space tall enough to notice.

Fix

  • starts gone rather than invisible — the state the code already assumes, since the only two toggles are VISIBLE on a failure and GONE on success
  • layout_height="wrap_content" rather than match_parent, the same mistake Fix the device list row clipping its subtitle line #184 fixed in the device list row

Test

theemptyErrorBoxTakesNoRoomBeforeAnythingHasFailed asserts effective visibility GONE. not(isDisplayed()) is equally true of an invisible view and would have passed against the gap — it is the check #197's test already made, and it said nothing about this.

Not verified red against the old layout by a separate CI run: the old XML declares invisible, which Espresso reports as INVISIBLE, so the GONE matcher fails on it deterministically rather than on timing.

🤖 Generated with Claude Code

The box started as `invisible`, which hides a view but keeps its height, so before any sign-in
had failed there was a blank band between the title and the fields. It had been there quietly;
putting the Export logs button inside the box in #197 made it tall enough to notice.

It now starts `gone`, which is the state the code already assumes: the only two toggles are
VISIBLE on a failure and GONE on success. Height is `wrap_content` rather than `match_parent`,
the same mistake #184 fixed in the device list row.

The test asserts GONE specifically. `not(isDisplayed())` is equally true of an invisible view and
would have passed against the gap - it is the check the Export logs test already makes, and it
said nothing about this.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@parawanderer
parawanderer merged commit 372d620 into main Sep 13, 2026
3 checks passed

This branch was successfully deployed

1 active deployment
Android Build — c060f1b3 Deployed Sep 13, 2026 by parawanderer via build #252
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