mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-06 03:38:23 +00:00
The avatar is the second most common dependency of the app's composables
(after AccountViewModel). This moves its rendering and the observers under
it into commonsUI, leaving the app with the settings/account reads.
- Observers: the app's observeUserInfo, observeUserAboutMe,
observeUserBanner and observeUserPicture were copies of the commonsUI
relayClient/user ones, and its UserFinderFilterAssemblerSubscription
(user, Account, dataSource) a copy of the shared subscription. They now
delegate, keeping their signatures so no call site changes. The shared
observeUserPicture gains the app's `subscribe` flag. observeUserName
stays app-side: it applies the account's contact-card petname.
(The shared subscription remembers per user *and* account, so an
account switch no longer reuses the previous account's query state.)
- ScoreTag / ScoreTagRegular / Small / Smallest move to ui/note.
- RobohashAsyncImage, RobohashFallbackAsyncImage and GifProfilePicture
move to commonsUI jvmAndroid ui/components (they tag requests with the
jvmAndroid-only LocalBlossomCacheRedirectInterceptor header). The one
Android API, starting/stopping an animated avatar's Animatable
drawable, becomes AnimatedImageAutoPlay: an expect in jvmAndroid with
the Android actual and a desktop no-op. The Coil request uses
LocalPlatformContext instead of LocalContext.
- isAnimatedMediaUrl, a pure URL check, moves to commons richtext.
- UserPictureImage(userHex, picture, name, size, modifier,
loadProfilePicture, loadRobohash, autoPlayGif) in commonsUI jvmAndroid
ui/note is the display half of InnerUserPicture, which keeps reading
the three settings.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0168wY9t7i9NC5u3svyMxEz6