Mobile: opening an attachment names the file after the link text instead of the imeta filename
I maintainer di solito rispondono entro 1 giorno
@wenhaoone ci sta già lavorando.
Dal 3/10/2026.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 90/100
Direzione di ricerca
Inizia in mobile/lib/features/channels/message_content.dart, in _buildLink, poi esamina ImetaEntry.filename in mobile/lib/features/channels/message_media.dart. Esegui i test widget vicini a «opens local file links through an authenticated download» in mobile/test/features/channels/message_content_test.dart. Il lavoro è completato quando un allegato con etichetta e un nome file imeta si apre con quel nome file, mentre i link che ne sono privi mantengono il testo del link.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
On mobile, tapping a file attachment link downloads the file and opens it under the link text instead of the attachment's imeta filename. When the label is prose rather than a file name, the opened or saved file loses its real name and extension.
Where
mobile/lib/features/channels/message_content.dart, in _buildLink: the authenticated download is opened with the link text as the file name:
await ref.read(openDownloadedFileProvider)(
url,
auth.headersFor(url),
text,
);
_buildLink already receives the matching ImetaEntry? imeta, and ImetaEntry (mobile/lib/features/channels/message_media.dart) parses filename. It just isn't used here.
Steps to reproduce
- Send a message with a non-media attachment whose link label is not the file name, e.g. content
[Quarterly report](https://<relay>/media/<sha256>.pdf)withimetacontainingfilename q3-report.pdf. - Tap the link on mobile.
Expected: the file opens as q3-report.pdf.
Actual: it is opened under Quarterly report, without the .pdf extension, so the system viewer may not recognize it.
Suggested fix
Prefer the imeta filename and fall back to the link text:
imeta?.filename ?? text,
A widget test next to opens local file links through an authenticated download in mobile/test/features/channels/message_content_test.dart can pin it, with a labelled link plus an imeta tag carrying filename.
- Lingua principale
- Rust
- Stelle
- 35.3k
- Fork
- 4.7k
- Merge medio
- 2g 15h
- PR unite (30g)
- 175
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di block/buzz
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
I maintainer di solito rispondono entro 1 giorno
-
Desktop: private project home channels show no lock icon in the sidebarForse già presa @Bartok9 l’ha presa 4 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno
-
buzz-pair: panics on wss:// relays — rustls CryptoProvider never installedForse già presa @Bartok9 l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 92/100
I maintainer di solito rispondono entro 1 giorno
-
Desktop crashes on launch: undefined is not an object (evaluating 'e.participantPubkeys.map')Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
block/buzz#7880 · 2 commenti · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
zcashlabs/thus-spoke-zakura#153 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
topgrade-rs/topgrade#2395 ·
I maintainer di solito rispondono entro 1 giorno
-
app bug windows-os
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
Improve sublime text syntaxApertaeditor good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
funnyboy-roks/inq#54 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
pnpm/pnpm#16635 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno