Commit Graph

3018 Commits

Author SHA1 Message Date
Claude 7746561360 feat: refresh translation settings UI with modern components
- Translate To: shows all available languages with searchable list instead
  of only device locales
- Don't Translate From: uses InputChip FlowRow with an Add button and
  searchable language picker to add new languages
- Language Preferences: displays as OutlinedCards with radio buttons for
  choosing display language, includes delete and add-new-pair functionality
  with guided source/target selection
- Added new string resources for the refreshed UI

https://claude.ai/code/session_011iTJ1gg8weaxaALiUQNH4C
2026-03-13 02:29:35 +00:00
Claude 83e79cf857 feat: add EventSync screen for relay event synchronization
- Add EventSyncScreen composable with UI for event sync configuration
- Add EventSyncViewModel for managing sync state and business logic
- Add route and navigation entry for EventSync screen
- Add entry point in AllRelayListScreen
- Add string resources for EventSync UI

https://claude.ai/code/session_01U8qF9mK4UBvXsXP1zNMXfX
2026-03-13 02:15:16 +00:00
Vitor Pamplona d9eb44df1f Improving the spacing in the new translation settings screen 2026-03-12 19:52:36 -04:00
Vitor Pamplona e6eb421e79 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  New Crowdin translations by GitHub Action
  New Crowdin translations by GitHub Action
  feat: add missing translation settings to Translation settings menu
2026-03-12 19:43:11 -04:00
Vitor Pamplona deeac97082 Merge pull request #1814 from vitorpamplona/claude/add-translation-settings-MIoUT
feat: add missing translation settings to Translation settings menu
2026-03-12 19:41:40 -04:00
Vitor Pamplona fa67030b47 Adds support for BUD-10 Blossom URIs 2026-03-12 18:57:46 -04:00
Crowdin Bot bfd595ea00 New Crowdin translations by GitHub Action 2026-03-12 20:45:10 +00:00
Crowdin Bot f31e73f182 New Crowdin translations by GitHub Action 2026-03-12 14:53:15 +00:00
Vitor Pamplona 3eb2fcbcb8 Solves the sorting contract crash by precaching all values before sorting. 2026-03-12 10:45:54 -04:00
Claude e07d42e3da feat: add NIP-40 expiration date to short note post screen
Allows users to add an expiration date to posts via NIP-40. The feature
follows the same pattern as content warning (toggle button in the bottom
action bar, expandable section in the post body) and uses the same
calendar/time picker UI as poll deadlines.

- ExpirationDateButton: timer icon toggles orange when active
- ExpirationDatePicker: date+time picker with "Expires in X" display
- ViewModel: wantsExpirationDate + expirationDate state, wired into
  both TextNoteEvent and PollEvent builders, loaded from drafts
- Strings: add_expiration_date, expiration_date_label, etc.

https://claude.ai/code/session_016QjmArr6zfM1Qx58iNrntA
2026-03-12 10:38:23 +00:00
Claude 117c903e7c feat: add missing translation settings to Translation settings menu
Expose the translateTo and languagePreferences fields from
AccountLanguagePreferences in the Translation settings screen
(UserSettingsScreen), which previously only showed the
dontTranslateFrom setting.

New settings added:
- Translate To: dropdown to select the target translation language
  from the device's configured locales, with a checkmark on the
  currently selected language.
- Language Display Preferences: for each saved language-pair
  preference (source → target), a dropdown to choose which language
  to show first; only visible when at least one preference exists.

https://claude.ai/code/session_01BheCJbDDZDAAYo6GAJBtFf
2026-03-12 09:46:07 +00:00
Claude 3e16d317fc feat: add blockchain explorer settings page for OTS verification
Adds a new "Bitcoin Explorer (OTS)" settings page in App Settings,
modeled after the existing Namecoin settings page.

Users can configure a custom Mempool-compatible blockchain explorer
API URL for OpenTimestamps proof verification. When a custom URL is
set it takes priority over the automatic Tor-aware selection (mempool.space
when Tor is active, blockstream.info otherwise).

Changes:
- OtsSettings: immutable data class for explorer config
- OtsSharedPreferences: DataStore-backed persistence (global/app-level)
- TorAwareOkHttpOtsResolverBuilder: accepts customExplorerUrl lambda
- OtsSettingsSection: UI section with active explorer display, URL input,
  known-explorers reference list, and reset button
- OtsSettingsScreen: full screen wrapping the section
- Routes.OtsSettings: new navigation route
- AllSettingsScreen: new entry under App Settings
- AppModules: wires otsPrefs and passes custom URL to resolver builder

https://claude.ai/code/session_01GX7k36uepGxU3U1fBKYFrx
2026-03-12 09:35:16 +00:00
Crowdin Bot 6aef5df6c8 New Crowdin translations by GitHub Action 2026-03-11 19:11:37 +00:00
David Kaspar 3bfd3f4314 Merge pull request #1810 from davotoula/update-translations
update cz, pt, de, sv
2026-03-11 19:09:52 +00:00
David Kaspar 61421f1393 Merge pull request #1809 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-11 19:05:03 +00:00
davotoula d7f9d584d6 update cz, pt, de, sv 2026-03-11 20:04:05 +01:00
Crowdin Bot a81b98a63a New Crowdin translations by GitHub Action 2026-03-11 19:03:42 +00:00
Vitor Pamplona 6a2cbb3a3a Using a real hex key in preview 2026-03-11 14:59:22 -04:00
Vitor Pamplona d521e29824 Shows all users cited in subscriptions for each relay. 2026-03-11 14:27:51 -04:00
Vitor Pamplona ffe5e14b2b Display content warning reason 2026-03-11 14:10:55 -04:00
Vitor Pamplona a4010189cd Adds content warning reason to all new post screens 2026-03-11 13:52:18 -04:00
Vitor Pamplona 7ce13b5ba5 Adds content sensitivity descriptors to all screens 2026-03-11 13:47:10 -04:00
Vitor Pamplona 9bb87b38f5 Merge pull request #1808 from vitorpamplona/claude/add-content-warning-description-5BF4B
Add optional description field for sensitive content warnings
2026-03-11 13:43:47 -04:00
Vitor Pamplona eedfc61fad Fixes lingering relays on loading follows outbox relays. 2026-03-11 13:17:06 -04:00
Claude 2b0518a675 feat: allow users to add a description to the sensitive content warning
- Add contentWarningReason() helper to TagArrayExt and EventExt for reading the reason from existing events
- Add contentWarningDescription state to ShortNotePostViewModel, wired into event building and draft load/save/reset
- Update ContentSensitivityExplainer to accept description state and render an OutlinedTextField for user input
- Pass description state from ShortNotePostScreen to ContentSensitivityExplainer
- Add "Reason (optional)" placeholder string resource

https://claude.ai/code/session_01P2nkYdNiWXiAcfMPTRTVEW
2026-03-11 16:51:37 +00:00
Vitor Pamplona 84da81b62f Adds calendar events and snippets to the search query 2026-03-11 12:44:29 -04:00
Vitor Pamplona 1bd96707e5 Improving the looks of namecoin settings 2026-03-11 12:33:52 -04:00
Crowdin Bot b6829523a7 New Crowdin translations by GitHub Action 2026-03-11 16:28:06 +00:00
Vitor Pamplona bba11b1813 Merge pull request #1805 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-11 12:26:36 -04:00
Vitor Pamplona 2649d05e25 merge with spotless apply 2026-03-11 12:24:25 -04:00
Crowdin Bot 60db83ecad New Crowdin translations by GitHub Action 2026-03-11 16:24:10 +00:00
Vitor Pamplona 0f934ee461 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  feat: add CodeSnippetEvent (NIP-C0) rendering to NoteCompose and ThreadFeedView
2026-03-11 12:22:44 -04:00
Claude 3b3482e753 feat: move NamecoinSettingsSection to its own route and screen
Extract the Namecoin settings from PrivacyOptionsScreen into a
dedicated NamecoinSettingsScreen with its own Route.NamecoinSettings
route. Add a "Namecoin Settings" entry to AllSettingsScreen so users
can navigate to it directly from the settings list.

https://claude.ai/code/session_013gEw6fJYFiFoe4zETo8dpC
2026-03-11 16:19:07 +00:00
Claude 74e44f1256 feat: add CodeSnippetEvent (NIP-C0) rendering to NoteCompose and ThreadFeedView
- Create CodeSnippet.kt with RenderCodeSnippetEvent (feed card view) and
  RenderCodeSnippetHeaderForThread (full thread view)
- Feed card shows: filename/language badge, description, 5-line code preview
  in a monospace box with rounded border
- Thread header shows: full code in scrollable monospace block plus metadata
  (license, runtime, deps)
- Add is CodeSnippetEvent branch to NoteCompose.kt RenderNoteRow when-statement
- Add is CodeSnippetEvent branch to ThreadFeedView.kt header when-statement

https://claude.ai/code/session_01X6jjsMLGBUmcaWXHJKmrEn
2026-03-11 15:46:18 +00:00
Vitor Pamplona 76090077b6 Displays % of uptime in relay settings 2026-03-11 10:59:43 -04:00
Vitor Pamplona 76e86ee5f7 adds calendar rendering to the thread view 2026-03-11 10:59:21 -04:00
Vitor Pamplona 3fdde60a37 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  New Crowdin translations by GitHub Action
  fix: resolve conflicts with upstream PR #1789 merge
  fix(desktop): remove noisy debug logs and silence SLF4J warnings
  feat(desktop): add bunker heartbeat indicator to sidebar navigation
  fix(desktop): verify user pubkey via get_public_key after nostrconnect login
  fix(desktop): address code review findings for NIP-46 bunker login
  feat(desktop): add nostrconnect:// login flow for QR-based signer pairing
  revert: remove QR code scanning from login
  feat(desktop): webcam QR scanning via ffmpeg for bunker login
  feat(desktop): add webcam QR code scanning for bunker login
  feat(desktop): add QR code scanning for bunker login
  fix(desktop): clear stored credentials on logout
  feat(desktop): update login hints to mention bunker:// option
  fix(desktop): simplify settings logout to just a button
  feat(desktop): add logout option to menu bar and settings
  test: add NIP-46 test suite for desktop, quartz, and fix pre-existing chess test errors
  feat(desktop): add NIP-46 remote signer (bunker://) login
2026-03-11 08:42:44 -04:00
Vitor Pamplona 71574a5ce0 tracks and displays connection tentatives on relay settings 2026-03-11 08:42:32 -04:00
Vitor Pamplona 4576204c1d Fixes relay list backup 2026-03-11 08:10:50 -04:00
Vitor Pamplona 190bdb0795 Merge pull request #1803 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-03-11 07:51:20 -04:00
Crowdin Bot c67781f87d New Crowdin translations by GitHub Action 2026-03-11 11:49:38 +00:00
Vitor Pamplona 9f903709e7 Move location permission watcher to the outside of the screens to avoid recreating them 2026-03-10 20:01:55 -04:00
Vitor Pamplona 8cd9449ba6 Improves upload of music and documents. 2026-03-10 19:49:15 -04:00
Vitor Pamplona 8a03f0b501 Replaces Aboutme for NIP-05 in the user search 2026-03-10 19:12:27 -04:00
Vitor Pamplona 2567a7c022 Better alignment and options in the UI. 2026-03-10 18:56:00 -04:00
Vitor Pamplona 178fcbb4c1 removes unused imports 2026-03-10 18:47:00 -04:00
Vitor Pamplona cc4e81146f Saves the position of the screen on import follows dialog 2026-03-10 18:46:18 -04:00
Vitor Pamplona 7a3794eabb New string resource 2026-03-10 18:19:10 -04:00
Vitor Pamplona a8d4705fa6 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  New Crowdin translations by GitHub Action
2026-03-10 16:58:24 -04:00
Vitor Pamplona a1e90b8c9f save the lazy list state and make it scroll in the search view model to avoid coming back on another feed position 2026-03-10 16:56:31 -04:00