nrobi144
f0c80f3c7c
fix(media): delay volume enforcement — VLC audio output not ready at playing event
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 12:34:36 +02:00
nrobi144
11b9fdad80
fix(media): enforce volume on playback start — VLC resets volume on new media
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 12:30:57 +02:00
nrobi144
2a6087af27
feat(media): global media player — persistent playback across navigation
...
Media playback now survives navigation. A GlobalMediaPlayer singleton owns
VLC players and exposes StateFlows. Composables are thin viewports.
NowPlayingBar has full controls (volume, mute, save, fullscreen).
GlobalFullscreenOverlay renders video fullscreen above all screens.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 12:27:13 +02:00
davotoula
20ab105e44
feat: add metadata stripping failure dialog to all upload ViewModels
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 11:12:36 +01:00
davotoula
c0632e17bd
feat: add onStrippingFailed callback to upload orchestrators
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:51:30 +01:00
davotoula
9ce1ff3e63
feat: plumb stripMetadata from UI through ViewModels to upload orchestrators
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:50:16 +01:00
davotoula
3b1b15911f
feat: rename stripLocationMetadata to stripMetadata in UI state and dialogs
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:42:59 +01:00
davotoula
c76459859d
feat: update all Screen call-sites for new stripMetadata onAdd parameter
...
Add 6th Boolean parameter to onAdd lambdas in all 6 files that call
ImageVideoDescription. The parameter is unused (_) for now in 5 sites
and named in ShortNotePostScreen for future plumbing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:38:04 +01:00
davotoula
0d514a46d7
feat: add privacy toggle to ImageVideoDescription
...
Add stripMetadata state and SettingSwitchItem toggle. Extend onAdd
callback signature with 6th Boolean parameter for stripMetadata.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:36:56 +01:00
davotoula
f7a9389a66
feat: add string resources for privacy toggle and metadata dialog
...
Rename strip_location_metadata_label/description to strip_metadata_label/description
to reflect broader scope. Add new strings for the metadata stripping failure dialog.
Update references in NewMediaView.kt and ChatFileUploadDialog.kt.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:36:03 +01:00
davotoula
24e8487db6
fix: hide codec toggle when video compression is set to uncompressed
...
When the compression quality slider is set to UNCOMPRESSED (value 3),
no encoding happens so the H264/H265 codec choice is irrelevant. Hide
the codec toggle in this case to avoid confusion.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:33:35 +01:00
davotoula
0e62904883
fix: hide compression slider for audio uploads
...
Audio has no compression support in MediaCompressor (falls through to
no-op), so showing the compression quality slider for audio files is
misleading. This removes audio from the slider visibility condition in
ImageVideoDescription and wraps the unconditionally-shown slider in
ChatFileUploadDialog with a media type check.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:33:28 +01:00
davotoula
489e731eea
feat: add MP3 ID3 tag stripping and early-exit for unsupported audio
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:29:09 +01:00
davotoula
b9d62edaad
feat: support multiple tracks in audio metadata stripping
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:28:13 +01:00
davotoula
7219c787a6
fix: update direct MetadataStripper.strip() call sites for StrippingResult
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:26:02 +01:00
davotoula
4fc5166815
feat: propagate StrippingResult through UploadOrchestrator
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:25:55 +01:00
davotoula
f9176fc3fb
feat: add StrippingResult data class to MetadataStripper
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-18 10:25:50 +01:00
nrobi144
6e1315a4fa
feat(media): improve video player pool, thumbnail extraction, and NoteCard layout
...
Harden VLC player pool with dedicated thumbnail acquisition, better error
logging, and defensive buffer checks. Simplify lightbox/video controls,
fix NoteCard media sizing across feed, thread, bookmarks, and search screens.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 09:24:00 +02:00
Vitor Pamplona
f25be5e7bd
removes the benchmark action... it's not that useful.
2026-03-17 16:00:46 -04:00
Vitor Pamplona
bc5b254d01
merge
2026-03-17 15:57:44 -04:00
Vitor Pamplona
62811282a1
Merge pull request #1871 from vitorpamplona/claude/reorganize-nip47-wallet-mbVxR
...
Refactor NIP47 WalletConnect into organized subpackages
2026-03-17 15:47:51 -04:00
Vitor Pamplona
3e19195e4a
Renaming and making a test case that considers limits.
...
Fixes active filter index bug
2026-03-17 15:45:52 -04:00
davotoula
72158e8fc2
Add rotation to stripped video
2026-03-17 20:27:15 +01:00
davotoula
e5e51c9c42
REMUX_BUFFER_SIZE = 8MB — extracted as a companion constant (was 1024 * 1024 inline in both video and audio). 8MB prevents silent frame loss on 4K keyframes.
...
stripAudioMetadata try/finally — now mirrors stripVideoMetadata exactly: muxer/extractor always released, incomplete output file deleted on failure.
2026-03-17 20:09:33 +01:00
Claude
5029db2302
refactor: reorganize nip47 wallet connect package into subpackages
...
Split the flat nip47WalletConnect package into logical subpackages:
- rpc/ - JSON-RPC protocol models (Request, Response, Notification, NwcMethod, NwcErrorCode, NwcTransaction, etc.)
- events/ - Nostr event types (LnZapPaymentRequestEvent, LnZapPaymentResponseEvent, NwcInfoEvent, NwcNotificationEvent)
- cache/ - Decryption caches (NostrWalletConnectRequestCache, NostrWalletConnectResponseCache)
Root level keeps the entry points: Nip47WalletConnect (URI parsing), Nip47Client, Nip47Server.
Existing subpackages (tags/, kotlinSerialization/, jackson/) remain unchanged.
https://claude.ai/code/session_018YcwMeTHPXmeqpbZHcBEUg
2026-03-17 19:04:24 +00:00
davotoula
d87bf37138
added comment about limitations
2026-03-17 19:53:57 +01:00
davotoula
e7d11fdc84
add Track interleaving
2026-03-17 19:51:58 +01:00
davotoula
a2f29d5e2e
Early return with the original uri if there are no tracks
2026-03-17 19:43:16 +01:00
davotoula
4cf3a84190
delete orphaned output file on failure
2026-03-17 19:42:18 +01:00
davotoula
b61e1d5779
fix resource leak(s) on exception
2026-03-17 19:40:12 +01:00
Vitor Pamplona
b8351b8e29
Merge branch 'main' into claude/event-sync-screen-sYGtN
2026-03-17 14:17:13 -04:00
Vitor Pamplona
18fdfcc9d8
Merge branch 'main' of https://github.com/vitorpamplona/amethyst
...
* 'main' of https://github.com/vitorpamplona/amethyst :
adaptability: use constant instead of repeated string literals
2026-03-17 14:10:45 -04:00
Vitor Pamplona
b22aa1ad0f
Shows default banner if the user's image is not available
2026-03-17 14:02:09 -04:00
Vitor Pamplona
7f5baab5df
Adds last seen to the user profile
2026-03-17 13:58:07 -04:00
davotoula
76f8130d40
Merge branch 'main-upstream' into claude/strip-file-metadata-sVIEd
2026-03-17 18:47:35 +01:00
Vitor Pamplona
aaa3bcfb2a
Merge pull request #1870 from vitorpamplona/claude/fix-event-counter-per-filter-Aps6R
...
Add per-filter event counting for relay pagination
2026-03-17 13:46:10 -04:00
Claude
308e9fcb9e
chore: remove unused coroutineContext import in EventSync
...
https://claude.ai/code/session_01Baaira4xoEHEsaSQCX52Sy
2026-03-17 17:43:04 +00:00
davotoula
a6c153a154
adaptability: use constant instead of repeated string literals
2026-03-17 18:42:39 +01:00
Claude
76c00dea3c
fix: track event counts per filter in downloadFromRelay
...
Change the event counter from a single global counter to per-filter
tracking using Filter.match(). Each filter's limit is now respected
individually - fulfilled filters are excluded from subsequent pages,
and pagination stops when all filters with limits are satisfied.
https://claude.ai/code/session_01Baaira4xoEHEsaSQCX52Sy
2026-03-17 17:41:40 +00:00
Vitor Pamplona
504a218eee
Merge branch 'main' into claude/event-sync-screen-sYGtN
2026-03-17 13:41:34 -04:00
Vitor Pamplona
97758a5163
fixes build
2026-03-17 13:35:50 -04:00
Vitor Pamplona
dd9e57542f
Merge branch 'main' into claude/event-sync-screen-sYGtN
2026-03-17 13:28:36 -04:00
Vitor Pamplona
985cab73cd
Merge branch 'main' into claude/strip-file-metadata-sVIEd
2026-03-17 13:27:00 -04:00
Vitor Pamplona
843058ce52
Merge pull request #1869 from vitorpamplona/claude/move-delete-button-topbar-SlZVz
...
Refactor DraftListScreen UI with top app bar improvements
2026-03-17 13:26:23 -04:00
Vitor Pamplona
91994a0b74
Merge branch 'main' into claude/strip-file-metadata-sVIEd
2026-03-17 13:25:54 -04:00
Vitor Pamplona
acb8068606
Merge pull request #1866 from vitorpamplona/claude/auto-load-transactions-scroll-KC8of
...
Add transaction filtering and pagination to wallet screen
2026-03-17 12:06:31 -04:00
Vitor Pamplona
cc98ac72c1
Revert to 20 since Alby only replies if limit is 20.
2026-03-17 12:04:10 -04:00
Vitor Pamplona
3764cd6d7f
missing imports
2026-03-17 11:51:02 -04:00
Vitor Pamplona
e66e5e28c1
Merge branch 'main' into claude/auto-load-transactions-scroll-KC8of
2026-03-17 11:48:21 -04:00
Vitor Pamplona
c027e70c8b
Merge pull request #1849 from vitorpamplona/claude/file-encryption-toggle-PwA8W
...
Add encrypted file upload with fallback option for NIP17 chats
2026-03-17 11:45:25 -04:00