mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 10:29:58 +02:00
fix(core): preserve typed transfer failures
This commit is contained in:
@@ -84,12 +84,15 @@
|
||||
<string name="diagnostics_title">Diagnosedaten teilen</string>
|
||||
<string name="error_camera">Für das Scannen eines QR-Codes ist Kamerazugriff erforderlich.</string>
|
||||
<string name="error_device_info">Geräteinformationen konnten nicht geladen werden.</string>
|
||||
<string name="error_destination_exists">Am Ziel ist bereits eine Datei mit demselben Namen vorhanden. Wählen Sie einen anderen Ordner oder entfernen Sie die vorhandene Datei.</string>
|
||||
<string name="error_filesystem">VniDrop konnte nicht auf die ausgewählten Dateien oder den Ordner zugreifen. Überprüfen Sie die Berechtigungen und versuchen Sie es erneut.</string>
|
||||
<string name="error_generic">Etwas ist schiefgelaufen. Versuchen Sie es erneut.</string>
|
||||
<string name="error_initialization">VniDrop konnte den Start nicht abschließen. Schließen Sie die App und versuchen Sie es erneut.</string>
|
||||
<string name="error_invalid_input">Einige Übertragungsinformationen sind ungültig. Prüfen Sie Ihre Auswahl oder bitten Sie den Absender, erneut zu teilen.</string>
|
||||
<string name="error_invalid_ticket">Diese Einladung konnte nicht gelesen werden. Bitten Sie den Absender um eine neue.</string>
|
||||
<string name="error_invitation_empty">Diese Einladung ist leer. Versuchen Sie, sie erneut zu öffnen.</string>
|
||||
<string name="error_missing_native_library">Die native VniDrop-Bibliothek fehlt in diesem Build.</string>
|
||||
<string name="error_network">VniDrop konnte den Absender nicht erreichen. Prüfen Sie die Verbindung auf beiden Geräten und versuchen Sie es erneut.</string>
|
||||
<string name="error_nfc">Dieses NFC-Tag konnte nicht verwendet werden. Versuchen Sie ein anderes.</string>
|
||||
<string name="error_permission">Der Absender hat diese Übertragung nicht genehmigt oder sie wurde abgelehnt.</string>
|
||||
<string name="error_repository">VniDrop konnte die Übertragungsdaten auf diesem Gerät nicht speichern.</string>
|
||||
@@ -97,7 +100,8 @@
|
||||
<string name="error_share_empty">Wählen Sie mindestens ein Objekt zum Teilen aus.</string>
|
||||
<string name="error_socket_bind">VniDrop konnte seine Netzwerk-Sockets auf diesem Gerät nicht öffnen.</string>
|
||||
<string name="error_starting_up">VniDrop startet noch. Öffnen Sie die Einladung gleich erneut.</string>
|
||||
<string name="error_transfer">Die Übertragung konnte nicht abgeschlossen werden. Überprüfen Sie Ihre Verbindung und versuchen Sie es erneut.</string>
|
||||
<string name="error_storage_full">Zum Speichern dieser Übertragung ist nicht genügend Speicherplatz vorhanden. Geben Sie Speicherplatz frei und versuchen Sie es erneut.</string>
|
||||
<string name="error_transfer">Die Übertragungsdaten konnten nicht verarbeitet werden. Bitten Sie den Absender, sie erneut zu teilen.</string>
|
||||
<string name="field_receiver_name">Empfängername</string>
|
||||
<string name="field_sender_name">Absendername</string>
|
||||
<string name="field_transfer_name">Übertragungsname</string>
|
||||
|
||||
@@ -84,12 +84,15 @@
|
||||
<string name="diagnostics_title">Compartir diagnósticos</string>
|
||||
<string name="error_camera">Se necesita acceso a la cámara para escanear un código QR.</string>
|
||||
<string name="error_device_info">No se pudo cargar la información del dispositivo.</string>
|
||||
<string name="error_destination_exists">Ya existe un archivo con el mismo nombre en el destino. Elija otra carpeta o elimine el archivo existente.</string>
|
||||
<string name="error_filesystem">VniDrop no pudo acceder a los archivos o la carpeta seleccionados. Compruebe los permisos e inténtelo de nuevo.</string>
|
||||
<string name="error_generic">Algo salió mal. Inténtelo de nuevo.</string>
|
||||
<string name="error_initialization">VniDrop no pudo terminar de iniciarse. Cierre la app e inténtelo de nuevo.</string>
|
||||
<string name="error_invalid_input">Parte de la información de la transferencia no es válida. Revise la selección o pida al remitente que vuelva a compartirla.</string>
|
||||
<string name="error_invalid_ticket">No se pudo leer esta invitación. Pida al remitente una nueva.</string>
|
||||
<string name="error_invitation_empty">Esa invitación está vacía. Intente abrirla de nuevo.</string>
|
||||
<string name="error_missing_native_library">Falta la biblioteca nativa de VniDrop en esta versión.</string>
|
||||
<string name="error_network">VniDrop no pudo contactar con el remitente. Compruebe la conexión en ambos dispositivos e inténtelo de nuevo.</string>
|
||||
<string name="error_nfc">No se pudo usar esta etiqueta NFC. Pruebe con otra.</string>
|
||||
<string name="error_permission">El remitente no ha aprobado esta transferencia, o fue rechazada.</string>
|
||||
<string name="error_repository">VniDrop no pudo guardar los datos de la transferencia en este dispositivo.</string>
|
||||
@@ -97,7 +100,8 @@
|
||||
<string name="error_share_empty">Seleccione al menos un elemento para compartir.</string>
|
||||
<string name="error_socket_bind">VniDrop no pudo abrir sus sockets de red en este dispositivo.</string>
|
||||
<string name="error_starting_up">VniDrop todavía se está iniciando. Vuelva a abrir la invitación en un momento.</string>
|
||||
<string name="error_transfer">No se pudo completar la transferencia. Compruebe su conexión e inténtelo de nuevo.</string>
|
||||
<string name="error_storage_full">No hay suficiente espacio de almacenamiento para guardar esta transferencia. Libere espacio e inténtelo de nuevo.</string>
|
||||
<string name="error_transfer">No se pudieron procesar los datos de la transferencia. Pida al remitente que vuelva a compartirlos.</string>
|
||||
<string name="field_receiver_name">Nombre del destinatario</string>
|
||||
<string name="field_sender_name">Nombre del remitente</string>
|
||||
<string name="field_transfer_name">Nombre de la transferencia</string>
|
||||
|
||||
@@ -84,12 +84,15 @@
|
||||
<string name="diagnostics_title">Partager les diagnostics</string>
|
||||
<string name="error_camera">L’accès à la caméra est nécessaire pour scanner un QR code.</string>
|
||||
<string name="error_device_info">Impossible de charger les informations de l’appareil.</string>
|
||||
<string name="error_destination_exists">Un fichier portant le même nom existe déjà dans la destination. Choisissez un autre dossier ou supprimez le fichier existant.</string>
|
||||
<string name="error_filesystem">VniDrop n’a pas pu accéder aux fichiers ou au dossier sélectionnés. Vérifiez les autorisations et réessayez.</string>
|
||||
<string name="error_generic">Une erreur est survenue. Réessayez.</string>
|
||||
<string name="error_initialization">VniDrop n’a pas pu terminer son démarrage. Fermez l’app et réessayez.</string>
|
||||
<string name="error_invalid_input">Certaines informations du transfert ne sont pas valides. Vérifiez votre sélection ou demandez à l’expéditeur de partager à nouveau.</string>
|
||||
<string name="error_invalid_ticket">Cette invitation n’a pas pu être lue. Demandez-en une nouvelle à l’expéditeur.</string>
|
||||
<string name="error_invitation_empty">Cette invitation est vide. Essayez de l’ouvrir à nouveau.</string>
|
||||
<string name="error_missing_native_library">La bibliothèque native de VniDrop est absente de cette version.</string>
|
||||
<string name="error_network">VniDrop n’a pas pu joindre l’expéditeur. Vérifiez la connexion sur les deux appareils et réessayez.</string>
|
||||
<string name="error_nfc">Ce tag NFC n’a pas pu être utilisé. Essayez-en un autre.</string>
|
||||
<string name="error_permission">L’expéditeur n’a pas approuvé ce transfert, ou il a été refusé.</string>
|
||||
<string name="error_repository">VniDrop n’a pas pu enregistrer les données de transfert sur cet appareil.</string>
|
||||
@@ -97,7 +100,8 @@
|
||||
<string name="error_share_empty">Sélectionnez au moins un élément à partager.</string>
|
||||
<string name="error_socket_bind">VniDrop n’a pas pu ouvrir ses sockets réseau sur cet appareil.</string>
|
||||
<string name="error_starting_up">VniDrop démarre encore. Rouvrez l’invitation dans un instant.</string>
|
||||
<string name="error_transfer">Le transfert n’a pas pu être terminé. Vérifiez votre connexion et réessayez.</string>
|
||||
<string name="error_storage_full">L’espace de stockage est insuffisant pour enregistrer ce transfert. Libérez de l’espace et réessayez.</string>
|
||||
<string name="error_transfer">Les données du transfert n’ont pas pu être traitées. Demandez à l’expéditeur de les partager à nouveau.</string>
|
||||
<string name="field_receiver_name">Nom du destinataire</string>
|
||||
<string name="field_sender_name">Nom de l’expéditeur</string>
|
||||
<string name="field_transfer_name">Nom du transfert</string>
|
||||
|
||||
@@ -84,12 +84,15 @@
|
||||
<string name="diagnostics_title">Condividi dati diagnostici</string>
|
||||
<string name="error_camera">Per scansionare un codice QR è necessario l’accesso alla fotocamera.</string>
|
||||
<string name="error_device_info">Impossibile caricare le informazioni sul dispositivo.</string>
|
||||
<string name="error_destination_exists">Nella destinazione esiste già un file con lo stesso nome. Scelga un’altra cartella o rimuova il file esistente.</string>
|
||||
<string name="error_filesystem">VniDrop non ha potuto accedere ai file o alla cartella selezionati. Controlli le autorizzazioni e riprovi.</string>
|
||||
<string name="error_generic">Qualcosa è andato storto. Riprovi.</string>
|
||||
<string name="error_initialization">VniDrop non ha potuto completare l’avvio. Chiuda l’app e riprovi.</string>
|
||||
<string name="error_invalid_input">Alcune informazioni del trasferimento non sono valide. Controlli la selezione o chieda al mittente di condividere di nuovo.</string>
|
||||
<string name="error_invalid_ticket">Impossibile leggere questo invito. Ne chieda uno nuovo al mittente.</string>
|
||||
<string name="error_invitation_empty">Questo invito è vuoto. Provi ad aprirlo di nuovo.</string>
|
||||
<string name="error_missing_native_library">La libreria nativa di VniDrop non è presente in questa build.</string>
|
||||
<string name="error_network">VniDrop non è riuscito a raggiungere il mittente. Controlli la connessione su entrambi i dispositivi e riprovi.</string>
|
||||
<string name="error_nfc">Impossibile usare questo tag NFC. Ne provi un altro.</string>
|
||||
<string name="error_permission">Il mittente non ha approvato questo trasferimento, oppure è stato rifiutato.</string>
|
||||
<string name="error_repository">VniDrop non ha potuto salvare i dati del trasferimento su questo dispositivo.</string>
|
||||
@@ -97,7 +100,8 @@
|
||||
<string name="error_share_empty">Selezioni almeno un elemento da condividere.</string>
|
||||
<string name="error_socket_bind">VniDrop non ha potuto aprire i suoi socket di rete su questo dispositivo.</string>
|
||||
<string name="error_starting_up">VniDrop è ancora in fase di avvio. Riapra l’invito tra un momento.</string>
|
||||
<string name="error_transfer">Impossibile completare il trasferimento. Controlli la connessione e riprovi.</string>
|
||||
<string name="error_storage_full">Lo spazio di archiviazione non è sufficiente per salvare il trasferimento. Liberi spazio e riprovi.</string>
|
||||
<string name="error_transfer">Non è stato possibile elaborare i dati del trasferimento. Chieda al mittente di condividerli di nuovo.</string>
|
||||
<string name="field_receiver_name">Nome del destinatario</string>
|
||||
<string name="field_sender_name">Nome del mittente</string>
|
||||
<string name="field_transfer_name">Nome del trasferimento</string>
|
||||
|
||||
@@ -84,12 +84,15 @@
|
||||
<string name="diagnostics_title">Diagnostische gegevens delen</string>
|
||||
<string name="error_camera">Voor het scannen van een QR-code is toegang tot de camera vereist.</string>
|
||||
<string name="error_device_info">Apparaatgegevens konden niet worden geladen.</string>
|
||||
<string name="error_destination_exists">Er staat al een bestand met dezelfde naam in de doelmap. Kies een andere map of verwijder het bestaande bestand.</string>
|
||||
<string name="error_filesystem">VniDrop kon geen toegang krijgen tot de geselecteerde bestanden of map. Controleer de machtigingen en probeer het opnieuw.</string>
|
||||
<string name="error_generic">Er is iets misgegaan. Probeer het opnieuw.</string>
|
||||
<string name="error_initialization">VniDrop kon het opstarten niet voltooien. Sluit de app en probeer het opnieuw.</string>
|
||||
<string name="error_invalid_input">Sommige overdrachtsgegevens zijn ongeldig. Controleer uw selectie of vraag de afzender opnieuw te delen.</string>
|
||||
<string name="error_invalid_ticket">Deze uitnodiging kon niet worden gelezen. Vraag de afzender om een nieuwe.</string>
|
||||
<string name="error_invitation_empty">Die uitnodiging is leeg. Probeer deze opnieuw te openen.</string>
|
||||
<string name="error_missing_native_library">De native VniDrop-bibliotheek ontbreekt in deze build.</string>
|
||||
<string name="error_network">VniDrop kon de afzender niet bereiken. Controleer de verbinding op beide apparaten en probeer het opnieuw.</string>
|
||||
<string name="error_nfc">Deze NFC-tag kon niet worden gebruikt. Probeer een andere.</string>
|
||||
<string name="error_permission">De afzender heeft deze overdracht niet goedgekeurd, of deze is geweigerd.</string>
|
||||
<string name="error_repository">VniDrop kon de overdrachtsgegevens niet op dit apparaat bewaren.</string>
|
||||
@@ -97,7 +100,8 @@
|
||||
<string name="error_share_empty">Selecteer minstens één item om te delen.</string>
|
||||
<string name="error_socket_bind">VniDrop kon zijn netwerksockets niet openen op dit apparaat.</string>
|
||||
<string name="error_starting_up">VniDrop is nog aan het opstarten. Open de uitnodiging zo meteen opnieuw.</string>
|
||||
<string name="error_transfer">De overdracht kon niet worden voltooid. Controleer uw verbinding en probeer het opnieuw.</string>
|
||||
<string name="error_storage_full">Er is onvoldoende opslagruimte om deze overdracht op te slaan. Maak ruimte vrij en probeer het opnieuw.</string>
|
||||
<string name="error_transfer">De overdrachtsgegevens konden niet worden verwerkt. Vraag de afzender ze opnieuw te delen.</string>
|
||||
<string name="field_receiver_name">Naam van ontvanger</string>
|
||||
<string name="field_sender_name">Naam van afzender</string>
|
||||
<string name="field_transfer_name">Naam van overdracht</string>
|
||||
|
||||
@@ -84,12 +84,15 @@
|
||||
<string name="diagnostics_title">Udostępniaj diagnostykę</string>
|
||||
<string name="error_camera">Do zeskanowania kodu QR wymagany jest dostęp do aparatu.</string>
|
||||
<string name="error_device_info">Nie udało się wczytać informacji o urządzeniu.</string>
|
||||
<string name="error_destination_exists">W miejscu docelowym istnieje już plik o tej samej nazwie. Wybierz inny folder lub usuń istniejący plik.</string>
|
||||
<string name="error_filesystem">VniDrop nie mógł uzyskać dostępu do wybranych plików lub folderu. Sprawdź uprawnienia i spróbuj ponownie.</string>
|
||||
<string name="error_generic">Coś poszło nie tak. Spróbuj ponownie.</string>
|
||||
<string name="error_initialization">VniDrop nie mógł dokończyć uruchamiania. Zamknij aplikację i spróbuj ponownie.</string>
|
||||
<string name="error_invalid_input">Niektóre informacje o transferze są nieprawidłowe. Sprawdź wybór lub poproś nadawcę o ponowne udostępnienie.</string>
|
||||
<string name="error_invalid_ticket">Nie udało się odczytać tego zaproszenia. Poproś nadawcę o nowe.</string>
|
||||
<string name="error_invitation_empty">To zaproszenie jest puste. Spróbuj otworzyć je ponownie.</string>
|
||||
<string name="error_missing_native_library">W tej kompilacji brakuje natywnej biblioteki VniDrop.</string>
|
||||
<string name="error_network">VniDrop nie mógł połączyć się z nadawcą. Sprawdź połączenie na obu urządzeniach i spróbuj ponownie.</string>
|
||||
<string name="error_nfc">Nie udało się użyć tego tagu NFC. Spróbuj innego.</string>
|
||||
<string name="error_permission">Nadawca nie zatwierdził tego transferu lub został on odrzucony.</string>
|
||||
<string name="error_repository">VniDrop nie mógł zapisać danych transferu na tym urządzeniu.</string>
|
||||
@@ -97,7 +100,8 @@
|
||||
<string name="error_share_empty">Wybierz co najmniej jeden element do udostępnienia.</string>
|
||||
<string name="error_socket_bind">VniDrop nie mógł otworzyć gniazd sieciowych na tym urządzeniu.</string>
|
||||
<string name="error_starting_up">VniDrop jeszcze się uruchamia. Otwórz zaproszenie ponownie za chwilę.</string>
|
||||
<string name="error_transfer">Nie udało się ukończyć transferu. Sprawdź połączenie i spróbuj ponownie.</string>
|
||||
<string name="error_storage_full">Brakuje miejsca na zapisanie tego transferu. Zwolnij miejsce i spróbuj ponownie.</string>
|
||||
<string name="error_transfer">Nie udało się przetworzyć danych transferu. Poproś nadawcę o ponowne udostępnienie.</string>
|
||||
<string name="field_receiver_name">Nazwa odbiorcy</string>
|
||||
<string name="field_sender_name">Nazwa nadawcy</string>
|
||||
<string name="field_transfer_name">Nazwa transferu</string>
|
||||
|
||||
@@ -84,12 +84,15 @@
|
||||
<string name="diagnostics_title">Partilhar diagnósticos</string>
|
||||
<string name="error_camera">É necessário acesso à câmara para ler um código QR.</string>
|
||||
<string name="error_device_info">Não foi possível carregar as informações do dispositivo.</string>
|
||||
<string name="error_destination_exists">Já existe um ficheiro com o mesmo nome no destino. Escolha outra pasta ou remova o ficheiro existente.</string>
|
||||
<string name="error_filesystem">O VniDrop não conseguiu aceder aos ficheiros ou à pasta selecionados. Verifique as permissões e tente novamente.</string>
|
||||
<string name="error_generic">Algo correu mal. Tente novamente.</string>
|
||||
<string name="error_initialization">O VniDrop não conseguiu concluir o arranque. Feche a app e tente novamente.</string>
|
||||
<string name="error_invalid_input">Algumas informações da transferência são inválidas. Reveja a seleção ou peça ao remetente para partilhar novamente.</string>
|
||||
<string name="error_invalid_ticket">Não foi possível ler este convite. Peça um novo ao remetente.</string>
|
||||
<string name="error_invitation_empty">Esse convite está vazio. Tente abri-lo novamente.</string>
|
||||
<string name="error_missing_native_library">A biblioteca nativa do VniDrop está em falta nesta compilação.</string>
|
||||
<string name="error_network">O VniDrop não conseguiu contactar o remetente. Verifique a ligação nos dois dispositivos e tente novamente.</string>
|
||||
<string name="error_nfc">Não foi possível utilizar esta etiqueta NFC. Tente outra.</string>
|
||||
<string name="error_permission">O remetente não aprovou esta transferência, ou foi recusada.</string>
|
||||
<string name="error_repository">O VniDrop não conseguiu guardar os dados da transferência neste dispositivo.</string>
|
||||
@@ -97,7 +100,8 @@
|
||||
<string name="error_share_empty">Selecione pelo menos um item para partilhar.</string>
|
||||
<string name="error_socket_bind">O VniDrop não conseguiu abrir os seus sockets de rede neste dispositivo.</string>
|
||||
<string name="error_starting_up">O VniDrop ainda está a iniciar. Abra o convite novamente dentro de momentos.</string>
|
||||
<string name="error_transfer">Não foi possível concluir a transferência. Verifique a sua ligação e tente novamente.</string>
|
||||
<string name="error_storage_full">Não existe espaço de armazenamento suficiente para guardar esta transferência. Liberte espaço e tente novamente.</string>
|
||||
<string name="error_transfer">Não foi possível processar os dados da transferência. Peça ao remetente para os partilhar novamente.</string>
|
||||
<string name="field_receiver_name">Nome do destinatário</string>
|
||||
<string name="field_sender_name">Nome do remetente</string>
|
||||
<string name="field_transfer_name">Nome da transferência</string>
|
||||
|
||||
@@ -84,12 +84,15 @@
|
||||
<string name="diagnostics_title">Делиться диагностикой</string>
|
||||
<string name="error_camera">Для сканирования QR-кода требуется доступ к камере.</string>
|
||||
<string name="error_device_info">Не удалось загрузить сведения об устройстве.</string>
|
||||
<string name="error_destination_exists">В папке назначения уже есть файл с таким именем. Выберите другую папку или удалите существующий файл.</string>
|
||||
<string name="error_filesystem">VniDrop не удалось получить доступ к выбранным файлам или папке. Проверьте разрешения и повторите попытку.</string>
|
||||
<string name="error_generic">Что-то пошло не так. Повторите попытку.</string>
|
||||
<string name="error_initialization">VniDrop не удалось завершить запуск. Закройте приложение и повторите попытку.</string>
|
||||
<string name="error_invalid_input">Некоторые данные передачи недействительны. Проверьте выбор или попросите отправителя поделиться снова.</string>
|
||||
<string name="error_invalid_ticket">Не удалось прочитать это приглашение. Попросите отправителя прислать новое.</string>
|
||||
<string name="error_invitation_empty">Это приглашение пустое. Попробуйте открыть его снова.</string>
|
||||
<string name="error_missing_native_library">В этой сборке отсутствует нативная библиотека VniDrop.</string>
|
||||
<string name="error_network">VniDrop не удалось связаться с отправителем. Проверьте подключение на обоих устройствах и повторите попытку.</string>
|
||||
<string name="error_nfc">Не удалось использовать эту NFC-метку. Попробуйте другую.</string>
|
||||
<string name="error_permission">Отправитель не одобрил эту передачу, или она была отклонена.</string>
|
||||
<string name="error_repository">VniDrop не удалось сохранить данные передачи на этом устройстве.</string>
|
||||
@@ -97,7 +100,8 @@
|
||||
<string name="error_share_empty">Выберите хотя бы один объект для отправки.</string>
|
||||
<string name="error_socket_bind">VniDrop не удалось открыть сетевые сокеты на этом устройстве.</string>
|
||||
<string name="error_starting_up">VniDrop ещё запускается. Откройте приглашение снова через мгновение.</string>
|
||||
<string name="error_transfer">Не удалось завершить передачу. Проверьте подключение и повторите попытку.</string>
|
||||
<string name="error_storage_full">Недостаточно места для сохранения этой передачи. Освободите место и повторите попытку.</string>
|
||||
<string name="error_transfer">Не удалось обработать данные передачи. Попросите отправителя поделиться ими снова.</string>
|
||||
<string name="field_receiver_name">Имя получателя</string>
|
||||
<string name="field_sender_name">Имя отправителя</string>
|
||||
<string name="field_transfer_name">Название передачи</string>
|
||||
|
||||
@@ -84,12 +84,15 @@
|
||||
<string name="diagnostics_title">Share diagnostics</string>
|
||||
<string name="error_camera">Camera access is required to scan a QR code.</string>
|
||||
<string name="error_device_info">Could not load device information.</string>
|
||||
<string name="error_destination_exists">A file with the same name already exists in the destination. Choose another folder or remove the existing file.</string>
|
||||
<string name="error_filesystem">VniDrop could not access the selected files or folder. Check permissions and try again.</string>
|
||||
<string name="error_generic">Something went wrong. Try again.</string>
|
||||
<string name="error_initialization">VniDrop could not finish starting up. Close the app and try again.</string>
|
||||
<string name="error_invalid_input">Some transfer information is invalid. Review your selection or ask the sender to share again.</string>
|
||||
<string name="error_invalid_ticket">This invitation could not be read. Ask the sender for a new one.</string>
|
||||
<string name="error_invitation_empty">That invitation is empty. Try opening it again.</string>
|
||||
<string name="error_missing_native_library">The native VniDrop library is missing from this build.</string>
|
||||
<string name="error_network">VniDrop could not reach the sender. Check the connection on both devices and try again.</string>
|
||||
<string name="error_nfc">This NFC tag could not be used. Try another tag.</string>
|
||||
<string name="error_permission">The sender has not approved this transfer, or it was refused.</string>
|
||||
<string name="error_repository">VniDrop could not save transfer data on this device.</string>
|
||||
@@ -97,7 +100,8 @@
|
||||
<string name="error_share_empty">Select at least one item to share.</string>
|
||||
<string name="error_socket_bind">VniDrop could not open its network sockets on this device.</string>
|
||||
<string name="error_starting_up">VniDrop is still starting. Open the invitation again in a moment.</string>
|
||||
<string name="error_transfer">The transfer could not be completed. Check your connection and try again.</string>
|
||||
<string name="error_storage_full">There is not enough storage space to save this transfer. Free up space and try again.</string>
|
||||
<string name="error_transfer">The transfer data could not be processed. Ask the sender to share it again.</string>
|
||||
<string name="field_receiver_name">Receiver name</string>
|
||||
<string name="field_sender_name">Sender name</string>
|
||||
<string name="field_transfer_name">Transfer name</string>
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.vnidrop.app.ui.feedback.UiMessage
|
||||
import com.vnidrop.app.ui.feedback.UiMessageController
|
||||
import com.vnidrop.app.ui.feedback.UiMessageTone
|
||||
import com.vnidrop.app.ui.feedback.UiText
|
||||
import com.vnidrop.app.ui.feedback.canRetryWithoutChangingInput
|
||||
import com.vnidrop.app.ui.feedback.isUserCancellation
|
||||
import com.vnidrop.app.ui.feedback.toUiText
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
@@ -206,8 +207,12 @@ class ReceiveViewModel(
|
||||
UiMessage(
|
||||
text = uiText,
|
||||
tone = UiMessageTone.Error,
|
||||
actionLabel = UiText.Resource(Res.string.button_retry),
|
||||
onAction = { receive() },
|
||||
actionLabel = if (error.canRetryWithoutChangingInput()) {
|
||||
UiText.Resource(Res.string.button_retry)
|
||||
} else {
|
||||
null
|
||||
},
|
||||
onAction = if (error.canRetryWithoutChangingInput()) ({ receive() }) else null,
|
||||
),
|
||||
)
|
||||
},
|
||||
|
||||
@@ -3,9 +3,11 @@ package com.vnidrop.app.ui.feedback
|
||||
import uniffi.vnidrop.VnidropException
|
||||
import vnidrop.shared.generated.resources.Res
|
||||
import vnidrop.shared.generated.resources.error_device_info
|
||||
import vnidrop.shared.generated.resources.error_destination_exists
|
||||
import vnidrop.shared.generated.resources.error_filesystem
|
||||
import vnidrop.shared.generated.resources.error_generic
|
||||
import vnidrop.shared.generated.resources.error_initialization
|
||||
import vnidrop.shared.generated.resources.error_invalid_input
|
||||
import vnidrop.shared.generated.resources.error_invalid_ticket
|
||||
import vnidrop.shared.generated.resources.error_invitation_empty
|
||||
import vnidrop.shared.generated.resources.error_missing_native_library
|
||||
@@ -15,8 +17,10 @@ import vnidrop.shared.generated.resources.error_selection_failed
|
||||
import vnidrop.shared.generated.resources.error_socket_bind
|
||||
import vnidrop.shared.generated.resources.error_camera
|
||||
import vnidrop.shared.generated.resources.error_nfc
|
||||
import vnidrop.shared.generated.resources.error_network
|
||||
import vnidrop.shared.generated.resources.error_share_empty
|
||||
import vnidrop.shared.generated.resources.error_starting_up
|
||||
import vnidrop.shared.generated.resources.error_storage_full
|
||||
import vnidrop.shared.generated.resources.error_transfer
|
||||
|
||||
/**
|
||||
@@ -29,8 +33,14 @@ fun Throwable.toUiText(): UiText =
|
||||
is VnidropException.Ticket -> UiText.Resource(Res.string.error_invalid_ticket)
|
||||
is VnidropException.Permission -> UiText.Resource(Res.string.error_permission)
|
||||
is VnidropException.Filesystem -> UiText.Resource(Res.string.error_filesystem)
|
||||
is VnidropException.FilesystemPermission -> UiText.Resource(Res.string.error_filesystem)
|
||||
is VnidropException.DestinationExists -> UiText.Resource(Res.string.error_destination_exists)
|
||||
is VnidropException.StorageFull -> UiText.Resource(Res.string.error_storage_full)
|
||||
is VnidropException.Network -> UiText.Resource(Res.string.error_network)
|
||||
is VnidropException.Transfer -> transferUiText(reason)
|
||||
is VnidropException.Repository -> UiText.Resource(Res.string.error_repository)
|
||||
is VnidropException.Cancelled -> UiText.Resource(Res.string.error_generic)
|
||||
is VnidropException.InvalidInput -> UiText.Resource(Res.string.error_invalid_input)
|
||||
is VnidropException.Initialization -> initializationUiText(reason)
|
||||
is VnidropException.Internal -> reasonHints(reason) ?: UiText.Resource(Res.string.error_generic)
|
||||
else -> reasonHints(technicalDetail()) ?: UiText.Resource(Res.string.error_generic)
|
||||
@@ -38,6 +48,7 @@ fun Throwable.toUiText(): UiText =
|
||||
|
||||
/** User intentionally backed out of a flow — do not treat as a failure snackbar. */
|
||||
fun Throwable.isUserCancellation(): Boolean {
|
||||
if (this is VnidropException.Cancelled) return true
|
||||
val haystack = technicalDetail().lowercase()
|
||||
if (haystack.isBlank()) return false
|
||||
return haystack.contains("cancelled") ||
|
||||
@@ -46,15 +57,26 @@ fun Throwable.isUserCancellation(): Boolean {
|
||||
haystack.contains("user canceled")
|
||||
}
|
||||
|
||||
fun Throwable.canRetryWithoutChangingInput(): Boolean =
|
||||
this !is VnidropException.FilesystemPermission &&
|
||||
this !is VnidropException.DestinationExists &&
|
||||
this !is VnidropException.InvalidInput
|
||||
|
||||
/** Prefer [VnidropException.reason] when present; else [Throwable.message]. */
|
||||
fun Throwable.technicalDetail(): String =
|
||||
when (this) {
|
||||
is VnidropException.Initialization -> reason
|
||||
is VnidropException.Ticket -> reason
|
||||
is VnidropException.Filesystem -> reason
|
||||
is VnidropException.FilesystemPermission -> reason
|
||||
is VnidropException.DestinationExists -> reason
|
||||
is VnidropException.StorageFull -> reason
|
||||
is VnidropException.Network -> reason
|
||||
is VnidropException.Transfer -> reason
|
||||
is VnidropException.Permission -> reason
|
||||
is VnidropException.Repository -> reason
|
||||
is VnidropException.Cancelled -> reason
|
||||
is VnidropException.InvalidInput -> reason
|
||||
is VnidropException.Internal -> reason
|
||||
else -> message.orEmpty()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user