mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-05 19:28:25 +00:00
A review of this branch against commons/ARCHITECTURE.md found the first
moves had kept the app's layer-first paths (commons.ui.screen.loggedIn.<x>)
and put headless code under ui.*. Everything now follows the documented
taxonomy:
- Feature UI lives in <feature>/ui, named after its quartz package:
nip51Lists/ui (bookmark groups, people lists, follow packs, interest
sets), nip52Calendar/ui, nip34Git/ui, nip64Chess/ui, nip23LongContent/ui,
nip28PublicChat/ui, nip29RelayGroups/ui, nip17Dm/ui, nip56Reports/ui,
nip72ModCommunities/ui, nipC0CodeSnippets/ui, nipCCGeocaching/ui,
nipACWebRtcCalls/ui, and concern names where quartz has no NIP (chats,
marmot, concord, ephemChat, buzz, birdstar, music, cashu, onchain,
browser, napplet, profile, mediaServers, relays, qrcode, scheduledposts,
account/ui/login|signup). commons.ui.screen is gone.
- Nothing under ui.* remains in the commons module. The Route catalog and
BookmarkType go to model/navigation and model/nip51Lists; the headless
composer state (AudienceSelection, SplitBuilder, IZapRaiser) to
model/composer; classifyScannedPayload to qrcode; the scheduled-post
parsers split out of ScheduledPostMedia into commons scheduledposts,
leaving only MediaThumbnail in commonsUI. The CLI can now reach them.
- ARCHITECTURE.md documents ui/feeds and ui/navigation as cross-cutting
areas and lists the new feature packages.
Duplicates removed:
- AddButton/RemoveButton existed twice in commonsUI; the unused
ui/components pair (hard-coded English) is replaced by the localized
one, which now lives in ui/components/ActionButtons.kt.
- desktop's own UserDisplayNameLayout was an unused copy of the shared
one; deleted.
- Colors.kt merged into Color.kt: empty section headers dropped,
LightPurple (= Purple200, unused) removed, DefaultPrimary (= Primary80)
replaced at its one desktop call site.
isLight:
- The fallback for non-Amethyst backgrounds (desktop's palette, audio
rooms whose theme overrides the background) is now memoized for the
last background seen, so those screens pay for luminance() once per
background instead of on every themed-color read. The comment said
"single reference comparison", which was no longer true; rewritten.
- IsLightTest covers both Amethyst schemes across accents, desktop's
#121212 / #F2F2F7 ramps, themed-room backgrounds and the memo.
- Behaviour note: NestThemedScope rooms with a dark background used to
count as light (anything not pure black did), so their gray text,
placeholders and borders took the light-theme values. They now follow
the room background's luminance.
Also:
- Baseline profile: the entries for every class this branch moved
(theme facades, the Theme.kt members that became AmethystColorScheme /
MarkdownStyle, routes, the moved composables) are rewritten to the new
class names so ART still AOT-compiles them. The profile has older stale
entries from earlier migrations (datasource assemblers, LocalCache,
okhttp) that need a real regeneration on a device.
- Two inline fully-qualified Route references in the nests lobby use the
import instead.
- GitStatusPill's KDoc said the index read "stays native"; it no longer
does.
- The android-expert skill and its navigation reference point to the new
Route/INav/theme locations.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0168wY9t7i9NC5u3svyMxEz6