UnigramDev/Unigram/develop • 99b01ee • 1 files, +6/-2
Record that the gesture is working on a build
Confirmed across the chat history, profile and settings, including the pages that
refused it while their content fitted the window.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
UnigramDev/Unigram/develop • 44ceef8 • 2 files, +100/-45
Draw the back indicator out of the edge instead of sliding it in
A circle arriving over the page was the chat list's vocabulary borrowed wholesale,
and it read as stock even after it was made larger and given an armed state.
It is a pill now, and the edge is where it comes from rather than somewhere it
passes. It starts as an 18px sliver whose right edge sits exactly on x=0, so
there is nothing to see until the finger moves, and it lengthens as it is pulled.
Height grows with it, 40 to 48, so the shape reads as elastic rather than as
something arriving at a fixed size. The corner radius stays at half the height,
so it is a true capsule the whole way and lands on a circle exactly when width
and height meet at the threshold - which is also the moment its left edge clears
the boundary and it detaches from what it grew out of. That detach is the armed
state, with a scale pop and full opacity behind it.
The arrow waits until the pill is long enough to hold it, then fades in and
swings upright.
All of it is one expression per property, the geometry's Size and CornerRadius
included, so nothing here costs a frame on the UI thread.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
UnigramDev/Unigram/develop • 9029ae8 • 5 files, +122/-136
Put the chat list's indicator back, and frost all three
The pill was worse than what it replaced. This is ChatListListView's indicator on
its own numbers - in from the edge over 55px, growing 0.8 to 1, fading the whole
way - mirrored on X, since ArrowLeft.png is drawn for the right-hand edge and the
chat list flips it the same way for the one it brings in from the left.
The fill is the one thing that is new. The circle is a SpriteVisual painted with
SolidGaussianBrush, so it is frosted over whatever sits behind it rather than a
flat 40%-alpha grey, and the same goes for the ChatListListView and
MessageSelector indicators, which are the same 30px circle.
A shape fill cannot carry an effect brush - CompositionSpriteShape takes colour
and gradient brushes only - so the circle becomes a mask over the effect instead,
drawn once through a CompositionVisualSurface. That keeps the antialiasing a
geometric clip would have thrown away. The mask is applied either way, so where
materials are switched off the fallback is still a circle and not a square.
SolidGaussianBrush keeps its XAML behaviour and now builds its graph through a
static factory the three call sites share.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
#unigram
UnigramDev/Unigram/develop • 99b01ee • 1 files, +6/-2 Record that the gesture is working on a build
Telegram github commits and releases
@tgappsupdatesBroadcast from the most important Telegram clients' repositories
4,538 subscribers
Open in Telegram