Commit Graph
2661 Commits
Author SHA1 Message Date
Crowdin Bot 52ec6eded8 New Crowdin translations by GitHub Action 2026-03-04 22:09:54 +00:00
Claude c2384d2082 feat: add drag-and-drop reordering for reaction row items
Replace up/down arrow buttons with a drag handle icon that supports
long-press drag gestures for reordering reaction items in settings.
Items visually lift with elevation and scale during drag, and swap
positions when dragged past neighboring item thresholds.

https://claude.ai/code/session_01RYsPFgnoeJ3BmwjFPMvTuU
2026-03-04 21:32:09 +00:00
Crowdin Bot 9f772b0e13 New Crowdin translations by GitHub Action 2026-03-04 20:12:55 +00:00
Crowdin Bot 3a97f89199 New Crowdin translations by GitHub Action 2026-03-04 19:42:16 +00:00
Vitor Pamplona be5c1f4832 Removes encrypted data from search 2026-03-04 13:56:06 -05:00
greenart7c3 4bd0ed97aa Explicit imports 2026-03-04 14:46:44 -03:00
Claude d2d887a782 feat: Add reactions row settings (enable/disable, order, show/hide counters)
Add a new Reactions Settings screen that allows users to:
- Enable or disable each reaction button (Reply, Boost, Like, Zap, Share)
- Reorder reaction buttons with up/down arrows
- Show or hide the counter for each reaction type

Changes:
- AccountSyncedSettingsInternal: Add ReactionRowAction enum, ReactionRowItem
  data class, and reactionRowItems field to AccountReactionPreferencesInternal
- AccountSyncedSettings: Wrap reactionRowItems in MutableStateFlow
- AccountSettings/Account: Add changeReactionRowItems methods
- AccountViewModel: Add reactionRowItemsFlow() and changeReactionRowItems()
- ReactionsRow: Add showCounter param to BoostReaction, LikeReaction,
  ZapReaction, ReplyReaction variants; refactor GenericInnerReactionRow to
  render dynamically based on settings
- New ReactionsSettingsScreen with per-button enable/counter toggles and
  move-up/move-down ordering
- Routes, AppNavigation, AllSettingsScreen: wire up new settings screen

https://claude.ai/code/session_01QizUFfWDeKjLK2SuhanipJ
2026-03-04 17:24:25 +00:00
Vitor Pamplona 67390bb8ec Updating Coil 2026-03-04 12:18:11 -05:00
Vitor Pamplona 8501c86663 Further organizes Calendar events 2026-03-04 10:25:51 -05:00
Vitor Pamplona ac936dc673 minor adjustment 2026-03-04 10:02:23 -05:00
Vitor Pamplona 470b1680d0 Moves electrum client to the jvmAndroid scope 2026-03-04 10:00:33 -05:00
Vitor Pamplona 9abd61e2de Improves package layout for nip64 chess 2026-03-04 09:25:38 -05:00
Vitor Pamplona 46dcd105c8 Organizes Chess class and common tags 2026-03-04 09:19:39 -05:00
Vitor Pamplona 4060bef2be Lint 2026-03-04 09:19:21 -05:00
Vitor PamplonaandGitHub 01a45d3b65 Merge pull request #1761 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-04 08:30:46 -05:00
Vitor PamplonaandGitHub ad578b394d Merge pull request #1759 from vitorpamplona/claude/refactor-nip64chess-structure-3iFIB
refactor: restructure nip64Chess to match nip88Polls pattern
2026-03-04 08:30:35 -05:00
Vitor PamplonaandGitHub e065cbc63b Merge branch 'main' into feature/namecoin-nip05-resolution 2026-03-04 08:29:48 -05:00
Crowdin Bot a5fe5836e5 New Crowdin translations by GitHub Action 2026-03-04 13:28:27 +00:00
Claude 2df8a106d4 refactor: restructure nip64Chess to match nip88Polls pattern
Reorganize nip64Chess event classes into individual packages with
dedicated tag classes, TagArrayBuilderExt, and TagArrayExt files,
following the same structure used by nip88Polls.

New package structure:
- challenge/ - LiveChessGameChallengeEvent with PlayerColorTag, TimeControlTag
- accept/ - LiveChessGameAcceptEvent with ChallengeEventTag
- move/ - LiveChessMoveEvent with GameIdTag, MoveNumberTag, SanTag, FenTag
- end/ - LiveChessGameEndEvent with ResultTag, TerminationTag, WinnerTag
- draw/ - LiveChessDrawOfferEvent
- game/ - ChessGameEvent (Kind 64)
- jester/ - JesterEvent, JesterProtocol, JesterContent, JesterGameEvents

Each tag class follows the companion object pattern with isTag(),
parse(), and assemble() methods. Each event package includes
TagArrayBuilderExt for building and TagArrayExt for parsing.

https://claude.ai/code/session_01Qtzhka3p5N3Hbns4xrRbsv
2026-03-04 00:51:43 +00:00
Crowdin Bot a37c6b5e6f New Crowdin translations by GitHub Action 2026-03-04 00:32:36 +00:00
Vitor Pamplona 546d1e9e73 Protects against invalid URLs 2026-03-03 19:30:39 -05:00
Vitor Pamplona 5cf306683a Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  New Crowdin translations by GitHub Action
  update cz, pt, de, sv
  New Crowdin translations by GitHub Action
  update cz, pt, de, sv
  New Crowdin translations by GitHub Action
2026-03-03 19:26:25 -05:00
Vitor Pamplona 96967b9e30 Clearing AccountViewModels more precisely 2026-03-03 19:17:15 -05:00
Crowdin Bot b1504da012 New Crowdin translations by GitHub Action 2026-03-03 22:40:22 +00:00
davotoula 8ad1cddb42 update cz, pt, de, sv 2026-03-03 22:36:06 +00:00
Crowdin Bot 8c8fdbc27c New Crowdin translations by GitHub Action 2026-03-03 22:23:46 +00:00
David KasparandGitHub 43133b70f4 Merge pull request #1753 from davotoula/update-translations
update cz, pt, de, sv
2026-03-03 22:22:21 +00:00
davotoula 382273647f update cz, pt, de, sv 2026-03-03 22:18:20 +00:00
Crowdin Bot dc817abe2c New Crowdin translations by GitHub Action 2026-03-03 21:44:54 +00: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 5d8452af06 lint 2026-03-03 10:54:44 -05:00
Vitor PamplonaandGitHub 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 PamplonaandGitHub 583891a145 Merge branch 'main' into claude/convert-dialog-to-route-9lrlG 2026-03-03 10:51:00 -05:00
Vitor PamplonaandGitHub 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
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 PamplonaandGitHub 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 PamplonaandGitHub a005ec5354 Merge pull request #1746 from davotoula/cleaner-code
Cleaner code
2026-03-03 06:46:34 -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