Show unknown devicrd

This commit is contained in:
Leon Böttger authored and Leon Böttger committed 2026-03-13 19:48:36 +01:00
1 parent fd1dfb4f4a
commit 42c101605f
2 files changed
+250 -9

No files matched your search

@@ -49,6 +49,7 @@ public class NearbyConnectionManager: NSObject, NetServiceDelegate, InboundNearb
private let txtKeyNotificationSyncCapabilities = "qd_caps"
private let txtKeyNotificationSyncKeyFingerprint = "qd_kid"
private let notificationSyncCapabilityToken = "nsync1"
private let unnamedAndroidFallbackDeviceName = "AndroidDevice".localized()
// MARK: Shared Instance
@@ -540,22 +541,22 @@ public class NearbyConnectionManager: NSObject, NetServiceDelegate, InboundNearb
guard case let NWBrowser.Result.Metadata.bonjour(txtRecord) = service.metadata else { return }
guard let endpointInfoEncoded = txtRecord.dictionary[txtKeyEndpointInfo] else { return }
guard let endpointInfoData = Data.dataFromUrlSafeBase64(endpointInfoEncoded) else { return }
guard var endpointInfo = EndpointInfo(data: endpointInfoData) else { return }
var deviceInfo: RemoteDeviceInfo?
if let _ = endpointInfo.name {
deviceInfo = addFoundDevice(foundService: &foundService, endpointInfo: endpointInfo, endpointID: endpointID)
var endpointInfo = EndpointInfo(data: endpointInfoData)
?? EndpointInfo(name: unnamedAndroidFallbackDeviceName, deviceType: .unknown)
let cleanedName = endpointInfo.name?.trimmingCharacters(in: .whitespacesAndNewlines)
if cleanedName?.isEmpty != false {
endpointInfo.name = unnamedAndroidFallbackDeviceName
}
let deviceInfo = addFoundDevice(foundService: &foundService, endpointInfo: endpointInfo, endpointID: endpointID)
if let qrData = endpointInfo.qrCodeData, let qrCodeAdvertisingToken = qrCodeAdvertisingToken, let qrCodeNameEncryptionKey = qrCodeNameEncryptionKey {
log("[NearbyConnectionManager] Device has QR data: \(qrData.base64EncodedString()), advertising token is \(qrCodeAdvertisingToken.base64EncodedString())")
if qrData == qrCodeAdvertisingToken {
if let deviceInfo = deviceInfo {
for delegate in outboundAppDelegates {
delegate.startTransferWithQrCode(device: deviceInfo)
}
for delegate in outboundAppDelegates {
delegate.startTransferWithQrCode(device: deviceInfo)
}
}
else if qrData.count > 28 {
@@ -577,10 +578,17 @@ public class NearbyConnectionManager: NSObject, NetServiceDelegate, InboundNearb
private func addFoundDevice(foundService: inout FoundServiceInfo, endpointInfo: EndpointInfo, endpointID: String) -> RemoteDeviceInfo {
let hadPreviousDevice = foundServices[endpointID]?.device != nil
let deviceInfo = RemoteDeviceInfo(info: endpointInfo, id: endpointID)
foundService.device = deviceInfo
foundServices[endpointID] = foundService
if hadPreviousDevice {
for delegate in outboundAppDelegates {
delegate.removeDevice(id: endpointID)
}
}
for delegate in outboundAppDelegates {
delegate.addDevice(device: deviceInfo)
}
+233
View File
@@ -1165,6 +1165,239 @@
}
}
},
"AndroidDevice" : {
"extractionState" : "manual",
"localizations" : {
"ar" : {
"stringUnit" : {
"state" : "translated",
"value" : "جهاز أندرويد"
}
},
"ca" : {
"stringUnit" : {
"state" : "translated",
"value" : "Dispositiu Android"
}
},
"cs" : {
"stringUnit" : {
"state" : "translated",
"value" : "Zařízení Android"
}
},
"da" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android-enhed"
}
},
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android-Gerät"
}
},
"el" : {
"stringUnit" : {
"state" : "translated",
"value" : "Συσκευή Android"
}
},
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android Device"
}
},
"en-AU" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android Device"
}
},
"en-CA" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android Device"
}
},
"en-GB" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android Device"
}
},
"es" : {
"stringUnit" : {
"state" : "translated",
"value" : "Dispositivo Android"
}
},
"es-419" : {
"stringUnit" : {
"state" : "translated",
"value" : "Dispositivo Android"
}
},
"fi" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android-laite"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Appareil Android"
}
},
"fr-CA" : {
"stringUnit" : {
"state" : "translated",
"value" : "Appareil Android"
}
},
"he" : {
"stringUnit" : {
"state" : "translated",
"value" : "מכשיר אנדרואיד"
}
},
"hi" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android डिवाइस"
}
},
"hr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android uređaj"
}
},
"hu" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android eszköz"
}
},
"id" : {
"stringUnit" : {
"state" : "translated",
"value" : "Perangkat Android"
}
},
"it" : {
"stringUnit" : {
"state" : "translated",
"value" : "Dispositivo Android"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "Androidデバイス"
}
},
"ko" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android 기기"
}
},
"ms" : {
"stringUnit" : {
"state" : "translated",
"value" : "Peranti Android"
}
},
"nb" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android-enhet"
}
},
"nl" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android-apparaat"
}
},
"pl" : {
"stringUnit" : {
"state" : "translated",
"value" : "Urządzenie z Androidem"
}
},
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Dispositivo Android"
}
},
"pt-PT" : {
"stringUnit" : {
"state" : "translated",
"value" : "Dispositivo Android"
}
},
"ro" : {
"stringUnit" : {
"state" : "translated",
"value" : "Dispozitiv Android"
}
},
"ru" : {
"stringUnit" : {
"state" : "translated",
"value" : "Устройство Android"
}
},
"sv" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android-enhet"
}
},
"th" : {
"stringUnit" : {
"state" : "translated",
"value" : "อุปกรณ์ Android"
}
},
"tr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android Cihazı"
}
},
"uk" : {
"stringUnit" : {
"state" : "translated",
"value" : "Пристрій Android"
}
},
"vi" : {
"stringUnit" : {
"state" : "translated",
"value" : "Thiết bị Android"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android 设备"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "Android 裝置"
}
}
}
},
"ApIsolationAction" : {
"extractionState" : "manual",
"localizations" : {