Everything written this session that has not been through the device: rounds 43 to 48 (each patch adversarially verified, 43's transient-notice expectation fixed), a partial round 49, the pipeline scripts, the Android Auto design and the icon comparison mock. Also the two harness changes that were never A/B'd — adaptive waits, which may only shorten a declared wait and never lengthen it, and a ship that runs the mock walk and the deploy at the same time. The A/B and its 255-step baseline are in handoff/tools; main stays at what the phone has actually walked.
31 lines
2.2 KiB
Plaintext
31 lines
2.2 KiB
Plaintext
The activity declares no `screenOrientation` and handles `orientation` and
|
||
`screenSize` itself, so turning the phone over is a resize and nothing else —
|
||
the audio thread, the stack and the screen's scroll all survive it, and the
|
||
layout is the only thing that has to answer. Two media queries do that. The
|
||
player sheet is the one surface whose portrait shape cannot survive a wide
|
||
viewport: its artwork is a square sized by WIDTH, so at 915×411 the cover came
|
||
out 879px tall and the title, the lane, the transport and the face buttons sat
|
||
below the bottom of a sheet that does not scroll — a corner of the cover and no
|
||
way to pause. Sideways it is two columns: the head across the top, the cover
|
||
down the left sized by HEIGHT, and the track, the scrubber, the transport and
|
||
the faces stacked on the right. With lyrics or the queue up, the face takes the
|
||
cover's column and the thumbnail goes — the record is already the ground behind
|
||
the whole sheet. That is an aspect problem rather than a height one, so the rule
|
||
keys off `orientation: landscape` alone and a tablet gets the same two columns.
|
||
|
||
The rest is a phone-sized query (`max-height: 560px`). The nav comes down to
|
||
Android's own 48dp minimum and the mini bar to a 60dp row over the same lane
|
||
strip, which gives the page back 22 of a 411-pixel screen — the chrome was 46%
|
||
of the height, it is 40%. The artist hero stops being a 300px portrait, which
|
||
covered its own Play button with the mini bar, and becomes a 190px banner: what
|
||
the desktop's hero has always been. The record head puts the cover beside the
|
||
title rather than above it, again the desktop's own shape, so Play is in view
|
||
without a scroll. A half sheet may take all but 36px of the height instead of
|
||
76% of it. Everything else — the grids, the rails, the artwork viewer, the
|
||
tap-to-sync room, the chat composer — already answered to width and was left
|
||
alone. `viewport-fit=cover` means the cutout and the gesture pill come in from
|
||
the SIDES in landscape, so the shell reads `--inset-left` / `--inset-right`
|
||
beside the top and bottom ones now. Those rules are appended at the end of
|
||
`shell.css` on purpose: they have to come after `.gbar`'s padding, `.mini`'s
|
||
and `.toast`'s left/right to win at equal specificity.
|