mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-13 05:49:57 +02:00
fix(apple): realign UI layer with regenerated core bindings
- map the new VnidropError cases (DeviceUnavailable, OfferTimeout, RelayPolicyIncompatible, ProtocolIncompatible) to existing catalog keys - drop the stale .map(\.share) now that sharePickedFiles returns Share - remove the duplicate .transfersChanged pattern in the signal switch - replace the deprecated String(cString:) sysctl decode - close the CoreGateway protocol declaration
This commit is contained in:
@@ -47,3 +47,4 @@ protocol CoreGateway: AnyObject {
|
|||||||
func receiverRequests(transferId: UInt64) async -> Result<[ReceiverRequestModel], Error>
|
func receiverRequests(transferId: UInt64) async -> Result<[ReceiverRequestModel], Error>
|
||||||
func respondReceiverRequest(requestId: String, accepted: Bool, reason: String?) async -> Result<Void, Error>
|
func respondReceiverRequest(requestId: String, accepted: Bool, reason: String?) async -> Result<Void, Error>
|
||||||
func refresh() async -> Result<Void, Error>
|
func refresh() async -> Result<Void, Error>
|
||||||
|
}
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ final class TransferNotificationCoordinator: ObservableObject {
|
|||||||
switch signal {
|
switch signal {
|
||||||
case .receiverHistoryChanged(let transferId), .transfersChanged(let transferId):
|
case .receiverHistoryChanged(let transferId), .transfersChanged(let transferId):
|
||||||
Task { await self.syncReceivers(transferId: transferId) }
|
Task { await self.syncReceivers(transferId: transferId) }
|
||||||
case .approvalChanged, .transfersChanged:
|
case .approvalChanged:
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -353,7 +353,7 @@ final class SendModel: ObservableObject {
|
|||||||
senderName: current.senderName.trimmingCharacters(in: .whitespacesAndNewlines),
|
senderName: current.senderName.trimmingCharacters(in: .whitespacesAndNewlines),
|
||||||
destination: .invitation(accessPolicy: current.accessPolicy)
|
destination: .invitation(accessPolicy: current.accessPolicy)
|
||||||
)
|
)
|
||||||
switch result.map(\.share) {
|
switch result {
|
||||||
case .success(let share):
|
case .success(let share):
|
||||||
await fileSystemService.discardPickedFiles(current.selectedFiles)
|
await fileSystemService.discardPickedFiles(current.selectedFiles)
|
||||||
if let thumb = current.selectedFiles.compactMap(\.thumbnailData).first {
|
if let thumb = current.selectedFiles.compactMap(\.thumbnailData).first {
|
||||||
|
|||||||
@@ -42,9 +42,10 @@ private struct MacDeviceInfoProvider: DeviceInfoProvider {
|
|||||||
var size = 0
|
var size = 0
|
||||||
sysctlbyname("hw.model", nil, &size, nil, 0)
|
sysctlbyname("hw.model", nil, &size, nil, 0)
|
||||||
guard size > 0 else { return nil }
|
guard size > 0 else { return nil }
|
||||||
var model = [CChar](repeating: 0, count: size)
|
var model = [UInt8](repeating: 0, count: size)
|
||||||
sysctlbyname("hw.model", &model, &size, nil, 0)
|
sysctlbyname("hw.model", &model, &size, nil, 0)
|
||||||
return String(cString: model)
|
// sysctl reports a NUL-terminated C string; drop the terminator(s).
|
||||||
|
return String(decoding: model.prefix(while: { $0 != 0 }), as: UTF8.self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -30,6 +30,10 @@ extension Error {
|
|||||||
return .resource(L10n.Error.storageFull)
|
return .resource(L10n.Error.storageFull)
|
||||||
case .Network:
|
case .Network:
|
||||||
return .resource(L10n.Error.network)
|
return .resource(L10n.Error.network)
|
||||||
|
case .DeviceUnavailable, .RelayPolicyIncompatible:
|
||||||
|
return .resource(L10n.Error.network)
|
||||||
|
case .OfferTimeout, .ProtocolIncompatible:
|
||||||
|
return .resource(L10n.Error.transfer)
|
||||||
case .Transfer(let reason):
|
case .Transfer(let reason):
|
||||||
return transferUiText(reason)
|
return transferUiText(reason)
|
||||||
case .Repository:
|
case .Repository:
|
||||||
@@ -88,6 +92,8 @@ extension Error {
|
|||||||
switch vni {
|
switch vni {
|
||||||
case .Initialization(let r), .Ticket(let r), .Filesystem(let r), .FilesystemPermission(let r),
|
case .Initialization(let r), .Ticket(let r), .Filesystem(let r), .FilesystemPermission(let r),
|
||||||
.DestinationExists(let r), .StorageFull(let r), .Network(let r),
|
.DestinationExists(let r), .StorageFull(let r), .Network(let r),
|
||||||
|
.DeviceUnavailable(let r), .OfferTimeout(let r),
|
||||||
|
.RelayPolicyIncompatible(let r), .ProtocolIncompatible(let r),
|
||||||
.Transfer(let r), .Permission(let r), .Repository(let r), .Cancelled(let r),
|
.Transfer(let r), .Permission(let r), .Repository(let r), .Cancelled(let r),
|
||||||
.InvalidInput(let r), .InvalidTransition(let r), .SecureStorageLocked(let r),
|
.InvalidInput(let r), .InvalidTransition(let r), .SecureStorageLocked(let r),
|
||||||
.SecureStorageMissing(let r), .SecureStorageCorrupted(let r),
|
.SecureStorageMissing(let r), .SecureStorageCorrupted(let r),
|
||||||
|
|||||||
Reference in New Issue
Block a user