Fix: share extension was unable to export logs

This commit is contained in:
Leon Böttger committed 2025-07-25 14:18:34 +02:00
1 parent 7371208227
commit ae2fcfe886
23 files changed
+141 -102

No files matched your search

+3 -1
View File
@@ -109,6 +109,9 @@ class OutboundNearbyConnection: NearbyConnection {
try decryptAndProcessReceivedSecureMessage(smsg)
}
} catch {
log("Error occured while processing frame with data \(frameData.hex): \(error)")
if case NearbyError.ukey2 = error {
// do nothing
}
@@ -431,7 +434,6 @@ class OutboundNearbyConnection: NearbyConnection {
}
})
totalBytesSent += Int64(fileBuffer.count)
log("sent file chunk \(totalBytesSent)")
startInactivityTimer()
delegate?.outboundConnection(connection: self, transferProgress: Double(totalBytesSent) / Double(totalBytesToSend))
+2 -2
View File
@@ -226,7 +226,6 @@
EBC05C5A2E33936C00EECC18 /* ErrorAlertHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorAlertHandler.swift; sourceTree = "<group>"; };
EBCC27F82D80C9F70079C478 /* Zip.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Zip.swift; sourceTree = "<group>"; };
EBD2A2162D2860BE00BCB8E2 /* WelcomeScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeScreen.swift; sourceTree = "<group>"; };
EBD2A2182D28619200BCB8E2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
@@ -336,7 +335,6 @@
69DA9A1029E0BF5100A442DA /* QuickDrop */ = {
isa = PBXGroup;
children = (
EBD2A2182D28619200BCB8E2 /* Info.plist */,
69DA9A1129E0BF5100A442DA /* AppDelegate.swift */,
EBD2A2162D2860BE00BCB8E2 /* WelcomeScreen.swift */,
EBC05C5A2E33936C00EECC18 /* ErrorAlertHandler.swift */,
@@ -935,6 +933,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = QuickDrop/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = QuickDrop;
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
INFOPLIST_KEY_LSUIElement = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 Leon Böttger and NearDrop developers";
@@ -975,6 +974,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = QuickDrop/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = QuickDrop;
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
INFOPLIST_KEY_LSUIElement = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 Leon Böttger and NearDrop developers";
+16
View File
@@ -143,6 +143,22 @@ class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCenterDele
UNUserNotificationCenter.current().removeAllDeliveredNotifications()
iapManager?.stopObserving()
}
func application(_ application: NSApplication, open urls: [URL]) {
for url in urls {
if url.scheme == "quickdrop", url.host == "sendLog" {
sendLoggingString() // this time it runs in the main app
}
if url.scheme == "quickdrop", url.host == "openLog", let url = LogManager.sharedInstance.logFileURL {
log("Opening log file: \(url)")
// open folder containing the log file
NSWorkspace.shared.activateFileViewerSelecting([url])
}
}
}
func applicationSupportsSecureRestorableState(_: NSApplication) -> Bool {
+5 -5
View File
@@ -103,13 +103,13 @@ Note: Some networks do not allow devices to communicate with each other. In this
/* Share Extension */
"Connecting" = "Connecting...";
"NotEnoughSpace" = "Not enough disk space";
"NotEnoughSpace" = "Not enough disk space. Please free up some space and try again.";
"Sending" = "Sending...";
"TransferCanceled" = "Canceled";
"TransferDeclined" = "Declined";
"TransferCanceled" = "The transfer was cancelled.";
"TransferDeclined" = "The other device declined the transfer. Please try again.";
"TransferFinished" = "Transfer finished";
"TransferTimedOut" = "Timed out";
"UnsupportedType" = "Attachment type not supported";
"TransferTimedOut" = "The other device did not respond in time. Please try again.";
"UnsupportedType" = "The attachment type is not supported. Please try to send this file as a compressed .zip file instead.";
"QrCodeInstructions" = "Scan the QR Code with your Android device to connect it to your Mac. Make sure your phone is connected to the same network.\n\nIf you do not want to scan the QR code for every file transfer, install the QuickDrop app (see above).";
"ConnectWithQuickDropApp" = "Connect with QuickDrop App";
"ConnectWithoutApp" = "Connect without App";
+19 -2
View File
@@ -70,6 +70,7 @@ class ErrorAlertHandler {
self.isAlertShown = false
if result == .alertFirstButtonReturn {
log("Sending logging string")
sendLoggingString()
}
}
@@ -123,12 +124,26 @@ class ErrorAlertHandler {
func sendLoggingString() {
// If we're in an extension, redirect to the main app
if Bundle.main.bundlePath.hasSuffix(".appex") {
log("sendLoggingString: in extension, redirecting to main app")
if let url = URL(string: "quickdrop://sendLog") {
NSWorkspace.shared.open(url)
}
return
}
// We're in the main app – do the actual sending
if let url = LogManager.sharedInstance.logFileURL {
let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Unknown"
log("Sending logging string with file URL: \(url)")
sendEmailWithAttachment(fileURL: url, recipients: ["quickdrop@leonboettger.com"], subject: "QuickDrop \(appVersion) - \(getDeviceAndSystem())")
sendEmailWithAttachment(
fileURL: url,
recipients: ["quickdrop@leonboettger.com"],
subject: "QuickDrop \(appVersion) - \(getDeviceAndSystem())"
)
}
}
@@ -160,6 +175,8 @@ func sendEmailWithAttachment(fileURL: URL, recipients: [String], subject: String
emailService.recipients = recipients
emailService.subject = subject
emailService.perform(withItems: [fileURL])
log("Email service opened with recipients: \(recipients) and subject: \(subject)")
}
+13 -2
View File
@@ -2,7 +2,18 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>com.leonboettger.neardrop</string>
<key>CFBundleURLSchemes</key>
<array>
<string>quickdrop</string>
</array>
</dict>
</array>
</dict>
</plist>
+5 -5
View File
@@ -98,13 +98,13 @@ QuickDrop لنظام Android في المرحلة التجريبية حاليًا
"plusview_productRequestFailed" = "تعذر جلب عمليات الشراء داخل التطبيق في الوقت الحالي.";
"Connecting" = "جارٍ الاتصال...";
"NotEnoughSpace" = "مساحة القرص غير كافية";
"NotEnoughSpace" = "لا توجد مساحة كافية على القرص. يرجى تحرير بعض المساحة والمحاولة مرة أخرى.";
"Sending" = "جارٍ الإرسال...";
"TransferCanceled" = "تم الإلغاء";
"TransferDeclined" = "تم الرفض";
"TransferCanceled" = "تم إلغاء النقل.";
"TransferDeclined" = "رفض الجهاز الآخر عملية النقل. الرجاء المحاولة مرة أخرى.";
"TransferFinished" = "اكتمل النقل";
"TransferTimedOut" = "انتهت المهلة";
"UnsupportedType" = "نوع المرفق غير مدعوم";
"TransferTimedOut" = "لم يستجب الجهاز الآخر في الوقت المناسب. الرجاء المحاولة مرة أخرى.";
"UnsupportedType" = "نوع المرفق غير مدعوم. يرجى محاولة إرسال هذا الملف كملف .zip مضغوط.";
"QrCodeInstructions" = "امسح رمز الاستجابة السريعة (QR) باستخدام جهاز Android الخاص بك لتوصيله بجهاز Mac. تأكد من أن هاتفك متصل بنفس الشبكة.\n\nإذا كنت لا ترغب في مسح رمز الاستجابة السريعة في كل مرة تقوم فيها بنقل ملف، فقم بتثبيت تطبيق QuickDrop (انظر أعلاه).";
"ConnectWithQuickDropApp" = "الاتصال بتطبيق QuickDrop";
"ConnectWithoutApp" = "الاتصال بدون تطبيق";
+5 -5
View File
@@ -100,13 +100,13 @@ Hinweis: Einige Netzwerke erlauben keine Kommunikation zwischen Geräten. In die
"plusview_productRequestFailed" = "In-App-Käufe können momentan nicht abgerufen werden.";
"Connecting" = "Verbinden...";
"NotEnoughSpace" = "Nicht genügend Speicherplatz";
"NotEnoughSpace" = "Nicht genug Speicherplatz. Bitte gib etwas Speicherplatz frei und versuch es erneut.";
"Sending" = "Senden...";
"TransferCanceled" = "Abgebrochen";
"TransferDeclined" = "Abgelehnt";
"TransferCanceled" = "Die Übertragung wurde abgebrochen.";
"TransferDeclined" = "Das andere Gerät hat die Übertragung abgelehnt. Bitte versuche es erneut.";
"TransferFinished" = "Übertragung abgeschlossen";
"TransferTimedOut" = "Zeitüberschreitung";
"UnsupportedType" = "Typ nicht unterstützt";
"TransferTimedOut" = "Das andere Gerät hat nicht rechtzeitig geantwortet. Bitte versuche es erneut.";
"UnsupportedType" = "Der Anhangstyp wird nicht unterstützt. Versuche stattdessen, die Datei als .zip-Archiv zu senden.";
"QrCodeInstructions" = "Scanne den QR-Code mit deinem Android-Gerät, um es mit deinem Mac zu verbinden. Stelle sicher, dass dein Handy mit demselben Netzwerk verbunden ist.\n\nWenn du nicht bei jeder Dateiübertragung den QR-Code scannen willst, installiere die QuickDrop-App (siehe oben).";
"ConnectWithQuickDropApp" = "Mit QuickDrop-App verbinden";
"ConnectWithoutApp" = "Ohne App verbinden";
+5 -5
View File
@@ -99,13 +99,13 @@ Nota: Algunas redes no permiten la comunicación entre dispositivos. En ese caso
"plusview_productRequestFailed" = "No se pueden recuperar las compras dentro de la aplicación en este momento.";
"Connecting" = "Conectando...";
"NotEnoughSpace" = "Espacio en disco insuficiente";
"NotEnoughSpace" = "No hay suficiente espacio en disco. Libera espacio e inténtalo de nuevo.";
"Sending" = "Enviando...";
"TransferCanceled" = "Cancelado";
"TransferDeclined" = "Rechazado";
"TransferCanceled" = "La transferencia fue cancelada.";
"TransferDeclined" = "El otro dispositivo rechazó la transferencia. Por favor, inténtalo de nuevo.";
"TransferFinished" = "Transferencia finalizada";
"TransferTimedOut" = "Tiempo de espera agotado";
"UnsupportedType" = "Tipo de archivo adjunto no compatible";
"TransferTimedOut" = "El otro dispositivo no respondió a tiempo. Inténtalo de nuevo.";
"UnsupportedType" = "El tipo de archivo no es compatible. Intenta enviar el archivo como un archivo .zip comprimido.";
"QrCodeInstructions" = "Escanea el código QR con tu dispositivo Android para conectarlo a tu Mac. Asegúrate de que tu teléfono esté conectado a la misma red.\n\nSi no deseas escanear el código QR en cada transferencia de archivos, instala la aplicación QuickDrop (ver arriba).";
"ConnectWithQuickDropApp" = "Conectar con la aplicación QuickDrop";
"ConnectWithoutApp" = "Conectar sin aplicación";
+5 -5
View File
@@ -100,13 +100,13 @@ Remarque : Certains réseaux ne permettent pas aux appareils de communiquer entr
"Connecting" = "Connexion en cours...";
"NotEnoughSpace" = "Espace disque insuffisant";
"NotEnoughSpace" = "Espace disque insuffisant. Veuillez libérer de l’espace et réessayer.";
"Sending" = "Envoi en cours...";
"TransferCanceled" = "Annulé";
"TransferDeclined" = "Refusé";
"TransferCanceled" = "Le transfert a été annulé.";
"TransferDeclined" = "L'autre appareil a refusé le transfert. Veuillez réessayer.";
"TransferFinished" = "Transfert terminé";
"TransferTimedOut" = "Délai dépassé";
"UnsupportedType" = "Type de pièce jointe non pris en charge";
"TransferTimedOut" = "L'autre appareil n'a pas répondu à temps. Veuillez réessayer.";
"UnsupportedType" = "Le type de pièce jointe n'est pas pris en charge. Veuillez envoyer ce fichier sous forme de fichier .zip compressé.";
"QrCodeInstructions" = "Scannez le code QR avec votre appareil Android pour le connecter à votre Mac. Assurez-vous que votre téléphone est connecté au même réseau.\n\nSi vous ne souhaitez pas scanner le code QR à chaque transfert de fichier, installez l'application QuickDrop (voir ci-dessus).";
"ConnectWithQuickDropApp" = "Se connecter avec l'app QuickDrop";
"ConnectWithoutApp" = "Se connecter sans app";
+5 -5
View File
@@ -101,13 +101,13 @@ Megjegyzés: Egyes hálózatok nem engedélyezik az eszközök közötti kommuni
"Connecting" = "Csatlakozás...";
"NotEnoughSpace" = "Nincs elég lemezterület";
"NotEnoughSpace" = "Nincs elég lemezterület. Szabadíts fel némi helyet, majd próbáld újra.";
"Sending" = "Küldés...";
"TransferCanceled" = "Megszakítva";
"TransferDeclined" = "Elutasítva";
"TransferCanceled" = "Az átvitel megszakadt.";
"TransferDeclined" = "A másik eszköz elutasította az átvitelt. Kérlek, próbáld újra.";
"TransferFinished" = "Átvitel befejezve";
"TransferTimedOut" = "Időtúllépés";
"UnsupportedType" = "Nem támogatott csatolmánytípus";
"TransferTimedOut" = "A másik eszköz nem válaszolt időben. Próbáld újra.";
"UnsupportedType" = "Ez a csatolmánytípus nem támogatott. Próbáld meg tömörített .zip fájlként elküldeni.";
"QrCodeInstructions" = "Olvasd be a QR-kódot Android-eszközöddel a Mac-hez való csatlakozáshoz. Győződj meg róla, hogy a telefonod ugyanahhoz a hálózathoz csatlakozik.\n\nHa nem szeretnéd minden fájlátvitel előtt beolvasni a QR-kódot, telepítsd a QuickDrop alkalmazást (lásd fentebb).";
"ConnectWithQuickDropApp" = "Csatlakozás a QuickDrop alkalmazással";
"ConnectWithoutApp" = "Csatlakozás alkalmazás nélkül";
+5 -5
View File
@@ -100,13 +100,13 @@ Nota: alcune reti non permettono ai dispositivi di comunicare tra loro. In tal c
"Connecting" = "Connessione in corso...";
"NotEnoughSpace" = "Spazio su disco insufficiente";
"NotEnoughSpace" = "Spazio su disco insufficiente. Libera spazio e riprova.";
"Sending" = "Invio in corso...";
"TransferCanceled" = "Annullato";
"TransferDeclined" = "Rifiutato";
"TransferCanceled" = "Il trasferimento è stato annullato.";
"TransferDeclined" = "L'altro dispositivo ha rifiutato il trasferimento. Riprova.";
"TransferFinished" = "Trasferimento completato";
"TransferTimedOut" = "Tempo scaduto";
"UnsupportedType" = "Tipo di allegato non supportato";
"TransferTimedOut" = "L'altro dispositivo non ha risposto in tempo. Riprova.";
"UnsupportedType" = "Il tipo di allegato non è supportato. Prova a inviare questo file come archivio compresso .zip.";
"QrCodeInstructions" = "Scansiona il codice QR con il tuo dispositivo Android per collegarlo al tuo Mac. Assicurati che il telefono sia connesso alla stessa rete.\n\nSe non vuoi scansionare il codice QR per ogni trasferimento di file, installa l'app QuickDrop (vedi sopra).";
"ConnectWithQuickDropApp" = "Connetti con l'app QuickDrop";
"ConnectWithoutApp" = "Connetti senza app";
+5 -5
View File
@@ -100,13 +100,13 @@ AndroidデバイスからMacにファイルを送信するには、スマート
"Connecting" = "接続中...";
"NotEnoughSpace" = "ディスクの空き容量が不足しています";
"NotEnoughSpace" = "ディスクの空き容量が足りません。空き容量を確保してから、再試行してください。";
"Sending" = "送信中...";
"TransferCanceled" = "キャンセルされました";
"TransferDeclined" = "拒否されました";
"TransferCanceled" = "転送がキャンセルされました。";
"TransferDeclined" = "別のデバイスが転送を拒否しました。もう一度お試しください。";
"TransferFinished" = "転送完了";
"TransferTimedOut" = "タイムアウトしました";
"UnsupportedType" = "添付ファイルの種類はサポートされていません";
"TransferTimedOut" = "相手のデバイスが時間内に応答しませんでした。もう一度お試しください。";
"UnsupportedType" = "添付ファイルの形式はサポートされていません。ファイルを.zip形式で圧縮して送信してください。";
"QrCodeInstructions" = "AndroidデバイスでQRコードをスキャンしてMacに接続してください。スマートフォンが同じネットワークに接続されていることを確認してください。\n\n毎回ファイル転送のたびにQRコードをスキャンしたくない場合は、QuickDropアプリをインストールしてください(上記参照)。";
"ConnectWithQuickDropApp" = "QuickDropアプリで接続";
"ConnectWithoutApp" = "アプリなしで接続";
+5 -5
View File
@@ -100,13 +100,13 @@ Android 기기에서 Mac으로 파일을 보내려면 휴대폰에서 공유 아
"Connecting" = "연결 중...";
"NotEnoughSpace" = "디스크 공간 부족";
"NotEnoughSpace" = "디스크 공간이 부족합니다. 공간을 확보한 후 다시 시도하세요.";
"Sending" = "보내는 중...";
"TransferCanceled" = "취소됨";
"TransferDeclined" = "거부됨";
"TransferCanceled" = "전송이 취소되었습니다.";
"TransferDeclined" = "다른 기기가 전송을 거부했습니다. 다시 시도해 주세요.";
"TransferFinished" = "전송 완료";
"TransferTimedOut" = "시간 초과";
"UnsupportedType" = "지원되지 않는 첨부 파일 유형";
"TransferTimedOut" = "다른 기기가 제시간에 응답하지 않았습니다. 다시 시도해 주세요.";
"UnsupportedType" = "첨부 파일 형식이 지원되지 않습니다. 파일을 압축된 .zip 형식으로 보내주세요.";
"QrCodeInstructions" = "Android 기기로 QR 코드를 스캔하여 Mac에 연결하세요. 휴대폰이 동일한 네트워크에 연결되어 있는지 확인하세요.\n\n파일을 전송할 때마다 QR 코드를 스캔하고 싶지 않다면, QuickDrop 앱을 설치하세요 (위 참조).";
"ConnectWithQuickDropApp" = "QuickDrop 앱으로 연결";
"ConnectWithoutApp" = "앱 없이 연결";
+5 -5
View File
@@ -99,13 +99,13 @@ Opmerking: Sommige netwerken staan niet toe dat apparaten met elkaar communicere
"plusview_productRequestFailed" = "In-app aankopen kunnen momenteel niet worden opgehaald.";
"Connecting" = "Verbinden...";
"NotEnoughSpace" = "Onvoldoende schijfruimte";
"NotEnoughSpace" = "Onvoldoende schijfruimte. Maak wat ruimte vrij en probeer het opnieuw.";
"Sending" = "Bezig met verzenden...";
"TransferCanceled" = "Geannuleerd";
"TransferDeclined" = "Geweigerd";
"TransferCanceled" = "De overdracht is geannuleerd.";
"TransferDeclined" = "Het andere apparaat heeft de overdracht geweigerd. Probeer het opnieuw.";
"TransferFinished" = "Overdracht voltooid";
"TransferTimedOut" = "Time-out";
"UnsupportedType" = "Bijlagetype niet ondersteund";
"TransferTimedOut" = "Het andere apparaat reageerde niet op tijd. Probeer het opnieuw.";
"UnsupportedType" = "Het type bijlage wordt niet ondersteund. Probeer het bestand als een gecomprimeerd .zip-bestand te verzenden.";
"QrCodeInstructions" = "Scan de QR-code met je Android-apparaat om het met je Mac te verbinden. Zorg ervoor dat je telefoon met hetzelfde netwerk is verbonden.\n\nAls je niet bij elke bestandsoverdracht de QR-code wilt scannen, installeer dan de QuickDrop-app (zie hierboven).";
"ConnectWithQuickDropApp" = "Verbind met de QuickDrop-app";
"ConnectWithoutApp" = "Verbind zonder app";
+5 -5
View File
@@ -100,13 +100,13 @@ Observação: Algumas redes não permitem que os dispositivos se comuniquem entr
"plusview_productRequestFailed" = "Não foi possível recuperar as compras dentro do aplicativo no momento.";
"Connecting" = "Conectando...";
"NotEnoughSpace" = "Espaço em disco insuficiente";
"NotEnoughSpace" = "Espaço em disco insuficiente. Libere espaço e tente novamente.";
"Sending" = "Enviando...";
"TransferCanceled" = "Cancelado";
"TransferDeclined" = "Recusado";
"TransferCanceled" = "A transferência foi cancelada.";
"TransferDeclined" = "O outro dispositivo recusou a transferência. Por favor, tente novamente.";
"TransferFinished" = "Transferência concluída";
"TransferTimedOut" = "Tempo esgotado";
"UnsupportedType" = "Tipo de anexo não suportado";
"TransferTimedOut" = "O outro dispositivo não respondeu a tempo. Por favor, tente novamente.";
"UnsupportedType" = "O tipo de anexo não é compatível. Tente enviar este arquivo como um .zip compactado.";
"QrCodeInstructions" = "Escaneie o código QR com seu dispositivo Android para conectá-lo ao seu Mac. Certifique-se de que o telefone esteja conectado à mesma rede.\n\nSe não quiser escanear o QR Code em toda transferência, instale o aplicativo QuickDrop (veja acima).";
"ConnectWithQuickDropApp" = "Conectar com o aplicativo QuickDrop";
"ConnectWithoutApp" = "Conectar sem aplicativo";
+5 -5
View File
@@ -100,13 +100,13 @@ Nota: Algumas redes não permitem que os dispositivos comuniquem entre si. Neste
"Connecting" = "A ligar...";
"NotEnoughSpace" = "Espaço em disco insuficiente";
"NotEnoughSpace" = "Espaço em disco insuficiente. Liberta algum espaço e tenta novamente.";
"Sending" = "A enviar...";
"TransferCanceled" = "Cancelado";
"TransferDeclined" = "Recusado";
"TransferCanceled" = "A transferência foi cancelada.";
"TransferDeclined" = "O outro dispositivo recusou a transferência. Por favor, tenta novamente.";
"TransferFinished" = "Transferência concluída";
"TransferTimedOut" = "Tempo limite excedido";
"UnsupportedType" = "Tipo de anexo não suportado";
"TransferTimedOut" = "O outro dispositivo não respondeu a tempo. Por favor, tenta novamente.";
"UnsupportedType" = "O tipo de anexo não é suportado. Tenta enviar este ficheiro como um ficheiro .zip comprimido.";
"QrCodeInstructions" = "Digitaliza o código QR com o teu dispositivo Android para o ligares ao teu Mac. Certifica-te de que o teu telefone está ligado à mesma rede.\n\nSe não quiseres digitalizar o código QR em todas as transferências de ficheiros, instala a aplicação QuickDrop (ver acima).";
"ConnectWithQuickDropApp" = "Ligar com a app QuickDrop";
"ConnectWithoutApp" = "Ligar sem app";
+5 -5
View File
@@ -99,13 +99,13 @@ Notă: Unele rețele nu permit dispozitivelor să comunice între ele. În acest
"plusview_productRequestFailed" = "Momentan, nu se pot obține informații despre achizițiile în aplicație.";
"Connecting" = "Se conectează...";
"NotEnoughSpace" = "Spațiu insuficient pe disc";
"NotEnoughSpace" = "Spațiu insuficient pe disc. Eliberează spațiu și încearcă din nou.";
"Sending" = "Se trimite...";
"TransferCanceled" = "Anulat";
"TransferDeclined" = "Refuzat";
"TransferCanceled" = "Transferul a fost anulat.";
"TransferDeclined" = "Celălalt dispozitiv a refuzat transferul. Vă rugăm să încercați din nou.";
"TransferFinished" = "Transfer finalizat";
"TransferTimedOut" = "Timpul a expirat";
"UnsupportedType" = "Tip de atașament neacceptat";
"TransferTimedOut" = "Celălalt dispozitiv nu a răspuns la timp. Vă rugăm să încercați din nou.";
"UnsupportedType" = "Tipul de fișier atașat nu este acceptat. Încercați să trimiteți acest fișier ca arhivă .zip.";
"QrCodeInstructions" = "Scanează codul QR cu dispozitivul tău Android pentru a-l conecta la Mac. Asigură-te că telefonul este conectat la aceeași rețea.\n\nDacă nu dorești să scanezi codul QR de fiecare dată când transferi fișiere, instalează aplicația QuickDrop (vezi mai sus).";
"ConnectWithQuickDropApp" = "Conectează-te cu aplicația QuickDrop";
"ConnectWithoutApp" = "Conectează-te fără aplicație";
+5 -5
View File
@@ -100,13 +100,13 @@ QuickDrop для Android сейчас находится в стадии бет
"Connecting" = "Подключение...";
"NotEnoughSpace" = "Недостаточно места на диске";
"NotEnoughSpace" = "Недостаточно места на диске. Освободите немного места и попробуйте снова.";
"Sending" = "Отправка...";
"TransferCanceled" = "Отменено";
"TransferDeclined" = "Отклонено";
"TransferCanceled" = "Передача была отменена.";
"TransferDeclined" = "Другое устройство отклонило передачу. Пожалуйста, попробуйте снова.";
"TransferFinished" = "Передача завершена";
"TransferTimedOut" = "Время ожидания истекло";
"UnsupportedType" = "Тип вложения не поддерживается";
"TransferTimedOut" = "Другое устройство не ответило вовремя. Попробуйте еще раз.";
"UnsupportedType" = "Тип вложения не поддерживается. Попробуйте отправить файл в виде .zip архива.";
"QrCodeInstructions" = "Сканируйте QR-код с помощью устройства Android, чтобы подключить его к вашему Mac. Убедитесь, что ваш телефон подключен к той же сети.\n\nЕсли вы не хотите сканировать QR-код при каждой передаче файла, установите приложение QuickDrop (см. выше).";
"ConnectWithQuickDropApp" = "Подключиться с помощью приложения QuickDrop";
"ConnectWithoutApp" = "Подключиться без приложения";
+6 -6
View File
@@ -100,13 +100,13 @@ QuickDrop สำหรับ Android อยู่ในช่วงเบต้
"plusview_productRequestFailed" = "ไม่สามารถดึงข้อมูลการซื้อภายในแอปได้ในขณะนี้";
"Connecting" = "กำลังเชื่อมต่อ...";
"NotEnoughSpace" = "พื้นที่ดิสก์ไม่เพียงพอ";
"NotEnoughSpace" = "พื้นที่ดิสก์ไม่เพียงพอ โปรดเพิ่มพื้นที่ว่างแล้วลองใหม่อีกครั้ง";
"Sending" = "กำลังส่ง...";
"TransferCanceled" = "ยกเลิก";
"TransferDeclined" = "ถูกปฏิเสธ";
"TransferFinished" = "การโอนเสร็จสิ้น";
"TransferTimedOut" = "หมดเวลา";
"UnsupportedType" = "ไม่รองรับประเภทไฟล์แนบ";
"TransferCanceled" = "การถ่ายโอนถูกยกเลิก";
"TransferDeclined" = "อุปกรณ์อีกเครื่องปฏิเสธการถ่ายโอน โปรดลองอีกครั้ง";
"TransferFinished" = "การถ่ายโอนเสร็จสิ้น";
"TransferTimedOut" = "อุปกรณ์อีกเครื่องไม่ตอบสนองภายในเวลา โปรดลองอีกครั้ง";
"UnsupportedType" = "ไม่รองรับประเภทไฟล์แนบ โปรดลองส่งไฟล์นี้เป็น .zip แทน";
"QrCodeInstructions" = "สแกนรหัส QR ด้วยอุปกรณ์ Android ของคุณเพื่อเชื่อมต่อกับ Mac ของคุณ ตรวจสอบให้แน่ใจว่าโทรศัพท์ของคุณเชื่อมต่อกับเครือข่ายเดียวกัน\n\nหากคุณไม่ต้องการสแกนรหัส QR ทุกครั้งที่ถ่ายโอนไฟล์ ให้ติดตั้งแอป QuickDrop (ดูด้านบน)";
"ConnectWithQuickDropApp" = "เชื่อมต่อด้วยแอป QuickDrop";
"ConnectWithoutApp" = "เชื่อมต่อโดยไม่ใช้แอป";
+5 -5
View File
@@ -100,13 +100,13 @@ QuickDrop для Android наразі знаходиться в бета-вер
"Connecting" = "Підключення...";
"NotEnoughSpace" = "Недостатньо місця на диску";
"NotEnoughSpace" = "Недостатньо місця на диску. Звільніть трохи місця та спробуйте ще раз.";
"Sending" = "Надсилання...";
"TransferCanceled" = "Скасовано";
"TransferDeclined" = "Відхилено";
"TransferCanceled" = "Передачу скасовано.";
"TransferDeclined" = "Інший пристрій відхилив передачу. Спробуйте ще раз.";
"TransferFinished" = "Передача завершена";
"TransferTimedOut" = "Час очікування вийшов";
"UnsupportedType" = "Тип вкладення не підтримується";
"TransferTimedOut" = "Інший пристрій не відповів вчасно. Спробуйте ще раз.";
"UnsupportedType" = "Тип вкладення не підтримується. Спробуйте надіслати файл у форматі стиснутого .zip.";
"QrCodeInstructions" = "Скануйте QR-код за допомогою вашого Android-пристрою, щоб підключити його до Mac. Переконайтесь, що телефон підключений до тієї ж мережі.\n\nЯкщо ви не хочете сканувати QR-код під час кожної передачі файлів, встановіть додаток QuickDrop (див. вище).";
"ConnectWithQuickDropApp" = "Підключитися за допомогою додатка QuickDrop";
"ConnectWithoutApp" = "Підключитися без додатка";
+5 -5
View File
@@ -100,13 +100,13 @@ QuickDrop for Android 当前处于测试阶段。要注册测试版,请发送
"Connecting" = "正在连接...";
"NotEnoughSpace" = "磁盘空间不足";
"NotEnoughSpace" = "磁盘空间不足。请释放一些空间后再试一次。";
"Sending" = "正在发送...";
"TransferCanceled" = "已取消";
"TransferDeclined" = "已拒绝";
"TransferCanceled" = "传输已取消。";
"TransferDeclined" = "对方设备拒绝了传输。请重试。";
"TransferFinished" = "传输完成";
"TransferTimedOut" = "超时";
"UnsupportedType" = "不支持的附件类型";
"TransferTimedOut" = "对方设备未及时响应。请重试。";
"UnsupportedType" = "不支持的附件类型。请尝试将该文件压缩为 .zip 文件后再发送。";
"QrCodeInstructions" = "使用您的 Android 设备扫描二维码以将其连接到您的 Mac。请确保您的手机连接到同一网络。\n\n如果您不想每次传输文件都扫描二维码,请安装 QuickDrop 应用(见上方)。";
"ConnectWithQuickDropApp" = "使用 QuickDrop 应用连接";
"ConnectWithoutApp" = "无需应用连接";
+2 -9
View File
@@ -295,15 +295,8 @@ class ShareViewController: NSViewController, ShareExtensionDelegate {
progressProgressBar?.doubleValue = 0
lastError = error
if let ne = (error as? NearbyError), case let .canceled(reason) = ne {
progressState?.stringValue = reason.localizedDescription()
progressDeviceSecondaryIcon?.isHidden = false
dismissDelayed()
}
else {
ErrorAlertHandler.shared.showErrorAlert(for: chosenDevice?.name ?? "", error: error)
self.extensionContext!.cancelRequest(withError: error)
}
ErrorAlertHandler.shared.showErrorAlert(for: chosenDevice?.name ?? "", error: error)
self.extensionContext!.cancelRequest(withError: error)
}