Commit Graph

9614 Commits

Author SHA1 Message Date
Vitor Pamplona 9b233c8679 no message 2026-03-10 14:23:31 -04:00
Vitor Pamplona 835001bd6c Making nip05 client stable 2026-03-10 14:22:06 -04:00
Vitor Pamplona ccb3ca69dc Merge pull request #1798 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-10 14:21:39 -04:00
Vitor Pamplona d69a9fdde1 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  fix: preserve search screen scroll position across navigation
  feat: add audio and PDF file upload support to ShortNotePostScreen
  New Crowdin translations by GitHub Action
2026-03-10 13:50:13 -04:00
Vitor Pamplona 9e105e017d Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  update cz, pt, de, sv
  New Crowdin translations by GitHub Action
2026-03-10 13:49:26 -04:00
Crowdin Bot 98a09db9b0 New Crowdin translations by GitHub Action 2026-03-10 17:47:16 +00:00
Vitor Pamplona 7b8352afe2 Merge pull request #1795 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-10 13:45:34 -04:00
Vitor Pamplona cdecc2087c Merge pull request #1796 from vitorpamplona/claude/add-audio-pdf-upload-dy1dy
Add file upload support for audio and PDF documents
2026-03-10 13:45:23 -04:00
Vitor Pamplona 4ad9e435e0 Merge pull request #1797 from vitorpamplona/claude/fix-search-scroll-position-U10Lv
Persist search screen scroll position across navigation
2026-03-10 13:44:24 -04:00
Claude a64e9bb3cf fix: preserve search screen scroll position across navigation
Replace ephemeral rememberLazyListState() with rememberForeverLazyListState()
so the scroll position is persisted when navigating to a search result and back.

https://claude.ai/code/session_01PmSFQqSMzP51mtqPLwFEtp
2026-03-10 15:15:27 +00:00
Vitor Pamplona ab9ecdc939 Adds methods to follow a bunch of users at the same time 2026-03-10 11:12:23 -04:00
Claude a7cec6f5fd feat: add audio and PDF file upload support to ShortNotePostScreen
Add a new "attach file" button that opens a document picker filtered to
audio/* and application/pdf MIME types. This uses OpenMultipleDocuments
contract since PickVisualMedia only supports images/videos.

- Add SelectFromFiles composable with AttachFile icon button
- Add isAudio() and isDocument() helpers to SelectedMedia
- Add FilePreviewPlaceholder for audio/PDF thumbnail display
- Add upload_file string resource

https://claude.ai/code/session_018naEzfHjLRQLgaWAtY4aSz
2026-03-10 14:48:47 +00:00
Vitor Pamplona b8f9b18506 Moves the account import idea to a route after login 2026-03-10 10:19:18 -04:00
Crowdin Bot bc7d0fd758 New Crowdin translations by GitHub Action 2026-03-10 14:07:56 +00:00
David Kaspar f42939c3b0 Merge pull request #1794 from davotoula/update-translations
update cz, pt, de, sv
2026-03-10 14:04:37 +00:00
davotoula 1e65228488 update cz, pt, de, sv 2026-03-10 14:56:33 +01:00
David Kaspar b749fbdb88 Merge pull request #1793 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-10 13:37:53 +00:00
Crowdin Bot 1aa368221a New Crowdin translations by GitHub Action 2026-03-10 13:30:51 +00:00
Vitor Pamplona ff4356ce31 Moves away from calling relay feeds "favorites" 2026-03-10 09:26:09 -04:00
Vitor Pamplona 3146b91c59 Make user import stable 2026-03-10 09:13:16 -04:00
Vitor Pamplona 55477429be removes old null mute lists from top nav bar 2026-03-10 09:13:05 -04:00
Vitor Pamplona c4b4e1b5c8 adds a button to see the feed in the RelayInformationScreen 2026-03-10 08:51:10 -04:00
Vitor Pamplona 50a578cfdc Fixes preview of relay information screen 2026-03-10 08:50:51 -04:00
Vitor Pamplona 741a2e13b5 Fixes imports in NoteCompose 2026-03-10 08:44:53 -04:00
Vitor Pamplona 9ca5fc0496 Fixed rendering of calendar event previews 2026-03-10 08:43:59 -04:00
Vitor Pamplona 9c8bac7b0b Merge pull request #1792 from vitorpamplona/claude/add-calendar-event-rendering-HsY4W
Add support for rendering NIP-52 calendar events
2026-03-10 08:28:30 -04:00
Claude fec2f2dfc8 feat: add @Preview functions for RenderCalendarTimeSlotEvent and RenderCalendarDateSlotEvent 2026-03-10 12:26:42 +00:00
Claude 2a2bdc8026 feat: add calendar event rendering for NIP-52 CalendarTimeSlotEvent and CalendarDateSlotEvent
Adds UI rendering for kind 31922 (CalendarDateSlotEvent) and kind 31923
(CalendarTimeSlotEvent) in the note feed. Each event renders with a header
image, title, date/time range, location, and summary.
2026-03-10 12:20:07 +00:00
Vitor Pamplona 376e34bde6 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  fix(quartz): connect() returns Unit, caller calls getPublicKey separately
  fix(quartz): fix NIP-44 key mutation and NIP-46 connect response handling
  feat: add custom ElectrumX server settings for Namecoin resolution
  feat: import follow list with Namecoin resolution during signup
2026-03-10 08:20:03 -04:00
Vitor Pamplona 70af50b74f Adds default Relay Feeds 2026-03-10 08:19:49 -04:00
Vitor Pamplona 21d1734365 Merge pull request #1786 from mstrofnone/feat/custom-electrumx-settings
feat: Custom ElectrumX server settings for Namecoin resolution
2026-03-10 08:14:36 -04:00
Vitor Pamplona 97a3fcc9df Merge pull request #1785 from mstrofnone/feat/import-follow-list-namecoin
feat: import follow list with Namecoin resolution during signup
2026-03-10 08:14:24 -04:00
Vitor Pamplona 88e6825028 Merge pull request #1789 from nrobi144/fix/nip46-quartz-bugs
fix(quartz): fix NIP-44 key mutation and NIP-46 connect response handling
2026-03-10 08:08:08 -04:00
nrobi144 b3952ce9db feat(search): add keyboard shortcuts, search history UI, and operator hints
Phase 6: Integration and polish.
- Escape key closes advanced panel or clears search
- Search history shown in empty state (recent + saved searches)
- Auto-save to history when search completes
- Updated empty state with operator hint examples

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:15:14 +02:00
nrobi144 e1abb037be feat(search): add SearchHistoryStore with recent queries and saved searches
Phase 5: Persistent search history using Java Preferences API.
- Last 20 queries stored, deduped by serialized text
- Saved searches with labels and timestamps
- Uses QuerySerializer/QueryParser for round-trip serialization (no new deps)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:13:34 +02:00
nrobi144 55154dddb2 feat(search): add advanced search UI with panel, results list, and SearchScreen rewrite
Phase 4: Desktop UI composables for advanced search.
- Rewrite SearchScreen.kt to use AdvancedSearchBarState with TextFieldValue
- Add AdvancedSearchPanel with kind presets, author chips, date range, hashtags, language
- Add SearchResultsList with sticky headers for People/Notes/Articles/Other sections
- Make QueryParser.parseDateToTimestamp and QuerySerializer.timestampToDate public

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:12:17 +02:00
nrobi144 8265d3f70a feat(search): add AdvancedSearchBarState with bidirectional sync
Phase 3: State holder with MutableStateFlow<SearchQuery> as SSOT,
sourceOfChange discriminator to prevent parse/serialize loops,
debounced query for subscriptions, results management, author
name resolution via cache autocomplete.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 11:44:57 +02:00
nrobi144 c3a45822d5 feat(search): add SearchFilterFactory and SearchResultFilter
Phase 2: SearchFilterFactory converts SearchQuery → List<Filter> with
default 3-group kind splitting (Android parity), NIP-50 inline
extensions, OR query support. SearchResultFilter handles client-side
exclusions, reply/media pseudo-kind detection, dedup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 11:43:48 +02:00
nrobi144 ae76b86ab6 feat(search): add query engine — SearchQuery, QueryParser, QuerySerializer, KindRegistry
Phase 1 of advanced search. Recursive descent parser for operators
(from:, kind:, since:, until:, lang:, domain:, #tag, -exclude, OR),
serializer for bidirectional sync, kind alias registry with pseudo-kind
support. 68 unit tests all passing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 11:42:13 +02:00
nrobi144 e56b0d2b83 fix(quartz): connect() returns Unit, caller calls getPublicKey separately
Per Amber maintainer: connect never returns a pubkey — response is
"ack" or the secret string. Rewrote ConnectResponse.parse() to check
result/error fields directly on base BunkerResponse (matching Jackson
deserialization). connect() is now a pure protocol handshake; callers
call getPublicKey() separately as a domain concern.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:24:57 +02:00
Vitor Pamplona e47299cd6b Rendering a fake waveform when playing music without any video frames. 2026-03-09 16:32:50 -04:00
Vitor Pamplona 328fd5221c Reducing the distance from the center to the side seek buttons on video playback 2026-03-09 13:02:15 -04:00
Vitor Pamplona eafbd450ea changes player's min height to match the gradients on controllers. 2026-03-09 13:00:02 -04:00
Vitor Pamplona 68997b8033 Always render video playback center buttons on the top 2026-03-09 12:59:10 -04:00
Vitor Pamplona 05b3a122f5 Positions search relays after users in the search result list 2026-03-09 12:48:48 -04:00
Vitor Pamplona 7b3a745548 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  New Crowdin translations by GitHub Action
2026-03-09 12:41:16 -04:00
Vitor Pamplona 1aa61a156d If tying a relay in the search screen, adds it to the results. 2026-03-09 12:37:58 -04:00
Vitor Pamplona bdf4add64f Adds a list of users of a relay to the relay information dialog. 2026-03-09 12:24:10 -04:00
Vitor Pamplona a34ba7cea8 Adds relay search to the search page 2026-03-09 11:46:21 -04:00
Vitor Pamplona 2387a1bb91 Improves the order of search results 2026-03-09 11:25:00 -04:00