Skip to content

Unsqueeze the store row, move the version dot, redraw the icon - #957

Merged
JingMatrix merged 4 commits into
masterfrom
store-long-version-and-version-mark
Sep 2, 2026
Merged

Unsqueeze the store row, move the version dot, redraw the icon#957
JingMatrix merged 4 commits into
masterfrom
store-long-version-and-version-mark

Conversation

@JingMatrix

@JingMatrixJingMatrix commented Sep 1, 2026

Copy link
Copy Markdown
Owner

A repository returns whatever version name the publisher wrote, and a long one took the whole store row with it, pushing the date beside it into a column one character wide. The row's fixed parts are measured first now, and the version takes what is left as a single scrolling line — in the list badge, on the release card, and in the install button, through one shared ScrollingLabel rather than three arrangements of the same idea.

That label then replaces the three inline spellings of itself that were already in the tree: the module name in the list, the module name again in the scope screen's title, and the version inside UpdatableVersion. Each had picked its own pause and number of passes, two of them on the same row of the modules list. The motion is one behaviour now, named once, in one file.

In the version-history sheet the filled dot marked the installed build, so tapping an older one left the fill against a row the reader had just left. It follows the selection now, the way a column of dots is read everywhere else. Which build is installed is a separate fact, and goes on saying itself in the dot's colour and in the status column.

The monochrome icon was a solid silhouette, which at icon size is a blob: the wings and drapery the statue is recognised by were lost inside it. It is line work now, stroked heavily and thinned by region — the outline kept whole, the wing's feathers kept, the skirt's folds mostly dropped — because the status bar draws the whole figure at 24 by 38 pixels.

A repository hands back whatever the publisher wrote, and that is regularly
something like 1.58.245-ai-ui-label+B520-20260828T1203Z-full. Drawn as a plain
Text with no width of its own it took the whole row and left the date beside it
one character wide, printed down the screen a character per line — which reads
as a rendering fault rather than as a long name.
The modules list already answers this: a fixed width, one line, and the part
that does not fit scrolls past once. ScrollingLabel is that rule, in one place,
so the store's three version lines — the badge on a list row, the tag on a
release card, the install button's label — cannot each get it differently.
The row's fixed parts are measured first and the version takes the remainder,
so it is the version that gives way rather than the date.
The dots in the version history are a radio group and were read as one, so the
reader who tapped an older build found the hollow dot still against the row
they were looking at and the filled one against a row they had left. The list
was marking what is installed, which is a different fact.
The fill now follows the selection and moves with the tap. Installed is still
marked, twice over: the accent on its dot, and the word in the status column.
A themed icon is one flat colour, and at that size a filled silhouette is a
blob: the wing feathers and the drapery folds the statue is recognised by were
punched out of it as twenty-five lines and lost anyway. The line drawing keeps
them, because lines are all it is.
Traced from the outline artwork, scaled onto the 350 viewport the solid one
used and centred exactly where it was, so the launcher's themed icon and its
coloured one stay the same statue at the same size.
Weight and detail are set for the size the drawable is really drawn at, which
is small in every use and large in none — 24 by 38 pixels in the status bar of
a 420dpi phone, around 28dp on the home screen — so the tracing's hairlines are
stroked up to six units and most contours are dropped.
Which ones is decided by what a line does, not by its length: length alone
deletes the statue, whose outline is a run of medium pieces rather than one
long one. The outline is found first, by closing the ink over the gaps and
filling from outside in, and kept whole. Only the interior thins, by region:
the wing keeps its feathers, the skirt loses its folds.
ScrollingLabel arrived beside three inline spellings of itself rather than in
place of them: the module name in the list, the module name again in the scope
screen's title, and the version inside UpdatableVersion. Each had decided for
itself how long a name should keep moving — one pass after two seconds, one
after three, three passes — which is four kinds of motion for one idea, and on
the modules list two of them are on the same row.
They all come through it now, and the pause and the number of passes are named
constants in that one file, because nobody choosing a delay at a call site is
thinking about the other four. The scope title's three passes settle to one
with everything else; a title that goes over three times on a screen someone is
working down is the reason the rule is worth having.
The ellipsis goes where it was wrong: a marquee draws its text past the edge,
so UpdatableVersion keeps TextOverflow.Ellipsis only on the branch that cannot
scroll. ModulesScreen was importing basicMarquee and not using it.
@JingMatrix
JingMatrix merged commit 3c76c5a into masterSep 2, 2026
1 check passed
Sign up for freeto 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

@JingMatrix