Commit Graph

9068 Commits

Author SHA1 Message Date
Vitor Pamplona 96967b9e30 Clearing AccountViewModels more precisely 2026-03-03 19:17:15 -05:00
Vitor Pamplona d8911ef69c Account State is more than just a view model. 2026-03-03 16:42:45 -05:00
Vitor Pamplona 2e71401342 Deletes the default scope form App Modules 2026-03-03 15:17:01 -05:00
Vitor Pamplona a417eb46f7 Fixes the need to have tags and kinds for inbox.nostr.wine to work 2026-03-03 13:40:26 -05:00
Vitor Pamplona 264b988b41 Fixing sending inside this function 2026-03-03 13:37:55 -05:00
Vitor Pamplona 7b80ee8bf0 Fixes the need to specify route in the check if navigation is going to the same route or not 2026-03-03 12:29:17 -05:00
Vitor Pamplona cdbee03e93 Fixes animation for settings pages 2026-03-03 12:10:57 -05:00
Vitor Pamplona cd6cdf7add Switch Surface use on KeyBackup to Scaffod 2026-03-03 12:10:45 -05:00
Vitor Pamplona edb73b3556 Updates AGP 2026-03-03 11:52:03 -05:00
Vitor Pamplona 5d8452af06 lint 2026-03-03 10:54:44 -05:00
Vitor Pamplona 386afdbe8d Merge pull request #1751 from vitorpamplona/claude/improve-zapcustomdialog-ui-2Fzic
Redesign Zap Custom Dialog with improved UI/UX
2026-03-03 10:54:05 -05:00
Vitor Pamplona 7695416ca0 Merge pull request #1750 from vitorpamplona/claude/convert-dialog-to-route-9lrlG
Convert UpdateZapAmountDialog to full-screen navigation route
2026-03-03 10:51:07 -05:00
Vitor Pamplona 583891a145 Merge branch 'main' into claude/convert-dialog-to-route-9lrlG 2026-03-03 10:51:00 -05:00
Vitor Pamplona be0e53fa08 Merge pull request #1748 from vitorpamplona/claude/convert-backup-dialog-route-ngbkf
Convert AccountBackupDialog to full-screen navigation route
2026-03-03 10:48:20 -05:00
Vitor Pamplona 1fb4860d68 Merge pull request #1749 from vitorpamplona/claude/convert-dialog-to-route-7Co1n
Convert UpdateReactionTypeDialog to screen-based navigation
2026-03-03 10:48:05 -05:00
Claude 6f80232c32 feat: improve ZapCustomDialog UI with chips and cleaner layout
- Add dialog title "Send Zap" with close button in header
- Add preset amount SuggestionChips from user's saved zap amounts
- Replace TextSpinner dropdown with FilterChip row for zap type selection
- Make amount field full-width with "sats" suffix
- Move ZapButton to bottom as full-width call-to-action
- Add imePadding for keyboard avoidance
- Add RoundedCornerShape(16dp) to dialog Surface
- Add HorizontalDivider separating header from content
- Change message keyboard capitalization to Sentences
- Add send_zap string resource

https://claude.ai/code/session_017gXfNSaqGshRth2x5tdTKz
2026-03-03 15:46:19 +00:00
Claude 9910bd0dfa feat: convert AccountBackupDialog to a navigation Route
Replaces the local dialog state in AllSettingsScreen with a proper
Route.AccountBackup, presented as a bottom-slide composable.

- Add `Route.AccountBackup` to Routes.kt (sealed class + getRouteWithArguments)
- Rename `AccountBackupDialog` → `AccountBackupScreen` accepting `INav` instead of `onClose`; remove Dialog wrapper
- Register `composableFromBottom<Route.AccountBackup>` in AppNavigation
- Update AllSettingsScreen to navigate to Route.AccountBackup instead of managing local dialog state

https://claude.ai/code/session_01KRRANB1b7wV7mpxEvpfjc7
2026-03-03 15:43:18 +00:00
Claude fb066b3b6f feat: convert UpdateReactionTypeDialog to a route
Replace the dialog-based UpdateReactionTypeDialog with a
navigation route (Route.UpdateReactionType) that slides up
from the bottom. UpdateReactionTypeScreen replaces the Dialog
wrapper with a plain Scaffold. Call sites in AllSettingsScreen
and ReactionsRow now navigate to the route instead of managing
local dialog state.

https://claude.ai/code/session_01TSjuYdBADTRXwT4w8Yx1vU
2026-03-03 15:42:51 +00:00
Claude c3a0141a47 feat: convert UpdateZapAmountDialog to Route
- Add Route.UpdateZapAmount to Routes.kt with optional nip47 parameter
- Create UpdateZapAmountScreen.kt as a Scaffold-based screen using SavingTopBar
- Register composableFromBottomArgs<Route.UpdateZapAmount> in AppNavigation.kt
- Replace dialog state in AllSettingsScreen with nav.nav(Route.UpdateZapAmount())
- Replace dialog state in ReactionsRow with nav.nav(Route.UpdateZapAmount())
- Remove UpdateZapAmountDialog composables, keeping UpdateZapAmountContent and authenticate helpers

https://claude.ai/code/session_01N95sLM14khkJupTfvJcoKq
2026-03-03 15:42:27 +00:00
Vitor Pamplona 3c32dbc701 lint 2026-03-03 10:23:27 -05:00
Vitor Pamplona 2b80ab52b7 Merge pull request #1747 from vitorpamplona/claude/nip39-kind-10011-support-EACQk
Implement NIP-39 External Identities (kind 10011) event support
2026-03-03 10:01:52 -05:00
Claude 79b06d35b9 feat: add NIP-39 kind 10011 (ExternalIdentitiesEvent) support
- Add ExternalIdentitiesEvent (kind 10011) to quartz/nip39ExtIdentities
  with createNew/updateFromPast factory methods and identityClaims()
- Generalize TagArrayBuilderExt to work with any Event type (not just
  MetadataEvent) so claims/twitterClaim etc. work with both kinds
- Extract replaceClaims logic to List<IdentityClaimTag>.replaceClaims()
  shared extension used by both MetadataEvent and ExternalIdentitiesEvent
- Register ExternalIdentitiesEvent in EventFactory (kind 10011)
- Add consume(ExternalIdentitiesEvent) to LocalCache and dispatch in
  justConsumeInnerInner
- Add ExternalIdentitiesEvent.KIND to UserMetadataForKeyKinds relay filter
  so kind 10011 is fetched alongside kind 0 when loading user profiles
- Add UserExternalIdentitiesViewModel that observes the kind 10011
  AddressableNote for a user and exposes List<IdentityClaimTag> as a Flow
- Thread UserExternalIdentitiesViewModel through ProfileScreen →
  RenderScreen → ProfileHeader → DrawAdditionalInfo
- DrawAdditionalInfo now shows kind 10011 identities, falling back to
  kind 0 for backwards compatibility
- UserMetadataState: add sendNewUserIdentities() for kind 10011 and
  remove identity claim params from sendNewUserMetadata() (kind 0)
- NewUserMetadataViewModel: load identities from kind 10011 first
  (fallback to kind 0), save identities to kind 10011 separately

https://claude.ai/code/session_017iU6ZdRu5qRXPCeDztVeeV
2026-03-03 13:47:27 +00:00
Vitor Pamplona a005ec5354 Merge pull request #1746 from davotoula/cleaner-code
Cleaner code
2026-03-03 06:46:34 -05:00
Vitor Pamplona d2ddb9ded5 Merge pull request #1745 from davotoula/defensive-backup-rules
defensive backup rules
2026-03-03 06:45:28 -05:00
davotoula 169416b548 Remove unnecessary suspend modifier from sentToTop() and simplify getNoteIfExists call 2026-03-03 10:06:32 +00:00
davotoula 2d42556b03 Functions shouldn't be empty 2026-03-03 10:03:01 +00:00
davotoula b1a1ccc145 Define a constants instead of duplicating String literals 2026-03-03 09:54:54 +00:00
davotoula b3911fedd9 defensive backup rules 2026-03-03 09:42:43 +00:00
Vitor Pamplona 0370e51e57 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  feat: add NIP-C0 code snippet support (kind:1337)
2026-03-02 19:27:27 -05:00
Vitor Pamplona 88f5843e08 A bit more of a refactoring 2026-03-02 19:25:49 -05:00
Vitor Pamplona 1c3e58303d Merge pull request #1744 from vitorpamplona/claude/add-c0-protocol-support-GAos6
feat: add NIP-C0 code snippet support (kind:1337)
2026-03-02 19:17:53 -05:00
Claude 8c12d4d692 feat: add NIP-C0 code snippet support (kind:1337)
Adds full protocol support for NIP-C0 code snippet events following the
same structure used for NIP-88 polls.

Quartz (quartz/nipC0CodeSnippets/):
- CodeSnippetEvent (kind:1337) with accessors for all optional metadata
- TagArrayExt: parse language, extension, name, description, runtime,
  license, deps (repeatable), and repo from tag arrays
- TagArrayBuilderExt: typed builder functions for CodeSnippetEvent
- Tag classes: LanguageTag (l), ExtensionTag, SnippetNameTag (name),
  SnippetDescriptionTag (description), RuntimeTag, LicenseTag, DepTag,
  RepoTag

EventFactory: register kind 1337 → CodeSnippetEvent
LocalCache: add consume(CodeSnippetEvent) and dispatch in when block

https://claude.ai/code/session_013ykLNfJNdwWpXh8ZhZaSXY
2026-03-02 23:48:43 +00:00
Vitor Pamplona 27d1a00196 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  New Crowdin translations by GitHub Action
2026-03-02 18:35:34 -05:00
Vitor Pamplona 624cf26c29 Switches the public message API to use quoted posts on replies 2026-03-02 18:22:45 -05:00
Vitor Pamplona 934b1fd5ed First chess refactoring 2026-03-02 18:14:08 -05:00
David Kaspar fb6d582560 Merge pull request #1743 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-02 22:44:41 +00:00
Vitor Pamplona df72a6e094 Fix floating action 2026-03-02 17:43:52 -05:00
Vitor Pamplona d3343c2747 Fix wrong to string usage 2026-03-02 17:43:34 -05:00
Crowdin Bot f72838139c New Crowdin translations by GitHub Action 2026-03-02 22:35:03 +00:00
Vitor Pamplona 254ef7081b Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  feat: add NIP-66 relay monitor and discovery support to quartz
2026-03-02 17:32:37 -05:00
Vitor Pamplona c5cbc1887f Moves all event kind names to strings.xml 2026-03-02 17:29:42 -05:00
Vitor Pamplona 15c961670e Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  always show playback speed and position/duration text in white regardless of theme
  New Crowdin translations by GitHub Action
  extract rememberSaveMediaAction to eliminate toast/permission duplication
  restore download toast and permission check fix overflow button background to solid
  Code review fixes: reduce duplicate code
  Code review fixes: Skip-forward clamps against unknown duration Share dropdown is no longer anchored to the overflow button simplify: keep skip amount fixed at 10
  Code review fixes: Redundant Box in SkipButton Unused string resources remember { fadeIn() } pattern
  Code review fixes: skipSeconds duplication + stale duration read pointerInput(Unit) stale capture ShareMediaAction composed unconditionally Overflow menu background opaque in dark theme
  simplify top buttons, move to overflow add skip buttons add gradient overlays and double-tap gesture support
  add skip button component, overflow menu component, gradient overlay
2026-03-02 17:18:40 -05:00
Vitor Pamplona 85330f932c Merge pull request #1742 from vitorpamplona/claude/add-nip66-support-GmCWu
feat: add NIP-66 relay monitor and discovery support to quartz
2026-03-02 17:17:33 -05:00
Vitor Pamplona 7ed0909169 Blocks the size of RelayAuthStatus arrays from growing forever with auth messages 2026-03-02 17:09:52 -05:00
Vitor Pamplona c3de179124 Merge pull request #1714 from davotoula/media3-updated-player-controls
Media3 updated player controls
2026-03-02 17:08:05 -05:00
davotoula c335d3acd4 always show playback speed and position/duration text in white regardless of theme 2026-03-02 21:35:32 +00:00
Claude 49e2f2c7c9 feat: add NIP-66 relay monitor and discovery support to quartz
Implements both event kinds from NIP-66 (Relay Monitor Protocol):

- Kind 10166 (RelayMonitorEvent) - replaceable event published by
  monitoring services, declaring check frequency, timeout values, and
  supported check types (open, read, write, auth, nip11, dns, geo)

- Kind 30166 (RelayDiscoveryEvent) - addressable event (keyed by relay
  URL in d-tag) published per monitored relay, carrying RTT metrics,
  network type, relay type, supported NIPs, accepted kinds, access
  requirements, topics, and geohash

Package: nip66RelayMonitor/{monitor,discovery} following existing NIP-88
patterns with tag classes, TagArrayBuilderExt, and TagArrayExt. Both
events registered in EventFactory.

https://claude.ai/code/session_01Wtg56Vudthgfyz8ASTb4p7
2026-03-02 21:20:43 +00:00
Vitor Pamplona 399c9463bf - Removing unnecessary feed definitions
- Adds favorite relays to the top filter
2026-03-02 16:16:23 -05:00
David Kaspar 858d06380e Merge pull request #1741 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-02 21:09:46 +00:00
Crowdin Bot db380cfe24 New Crowdin translations by GitHub Action 2026-03-02 20:58:37 +00:00