Files
QuickDrop/ShareExtension/ShareViewControllerSwiftUI.swift
T
2025-03-10 21:34:42 +01:00

139 lines
3.9 KiB
Swift

////
//// ShareViewControllerSwiftUI.swift
//// QuickDrop
////
//// Created by Leon Böttger on 10.03.25.
////
//
//import SwiftUI
//import NearbyShare
//
//import SwiftUI
//import Cocoa
//
//class ShareViewController: NSViewController {
// private let viewModel = ShareViewModel()
//
// override func loadView() {
// self.view = NSHostingView(rootView: ShareView(viewModel: viewModel))
// }
//
// override func viewDidLoad() {
// super.viewDidLoad()
// NearbyConnectionManager.shared.startDeviceDiscovery()
// NearbyConnectionManager.shared.addShareExtensionDelegate(viewModel)
// }
//
// override func viewWillDisappear() {
// NearbyConnectionManager.shared.stopDeviceDiscovery()
// NearbyConnectionManager.shared.removeShareExtensionDelegate(viewModel)
// }
//}
//
//import SwiftUI
//import Combine
//import NearbyShare
//
//class ShareViewModel: ObservableObject, ShareExtensionDelegate {
// @Published var foundDevices: [RemoteDeviceInfo] = []
// @Published var transferProgress: Double = 0.0
// @Published var transferState: String = "Idle"
// @Published var chosenDevice: RemoteDeviceInfo?
//
// func addDevice(device: RemoteDeviceInfo) {
// DispatchQueue.main.async {
// self.foundDevices.append(device)
// }
// }
//
// func removeDevice(id: String) {
// DispatchQueue.main.async {
// self.foundDevices.removeAll { $0.id == id }
// }
// }
//
// func connectionWasEstablished(pinCode: String) {
// DispatchQueue.main.async {
// self.transferState = "Connected - PIN: \(pinCode)"
// self.transferProgress = 0.0
// }
// }
//
// func connectionFailed(with error: Error) {
// DispatchQueue.main.async {
// self.transferState = "Error: \(error.localizedDescription)"
// }
// }
//
// func transferAccepted() {
// DispatchQueue.main.async {
// self.transferState = "Sending..."
// }
// }
//
// func transferProgress(progress: Double) {
// DispatchQueue.main.async {
// self.transferProgress = progress
// }
// }
//
// func transferFinished() {
// DispatchQueue.main.async {
// self.transferState = "Transfer finished"
// }
// }
//
// func selectDevice(device: RemoteDeviceInfo) {
// DispatchQueue.main.async {
// self.chosenDevice = device
// self.transferState = "Connecting to \(device.name)..."
// }
// NearbyConnectionManager.shared.stopDeviceDiscovery()
// NearbyConnectionManager.shared.startOutgoingTransfer(deviceID: device.id!, delegate: self, urls: [])
// }
//}
//
//
//import SwiftUI
//
//struct ShareView: View {
// @ObservedObject var viewModel: ShareViewModel
//
// var body: some View {
// VStack(spacing: 20) {
// Text("Nearby Devices")
// .font(.title)
//
// List(viewModel.foundDevices, id: \.id) { device in
// Button(action: {
// viewModel.selectDevice(device: device)
// }) {
// HStack {
// Image(systemName: deviceImageName(for: device.type))
// Text(device.name)
// }
// }
// }
//
// Text(viewModel.transferState)
// .padding()
//
// ProgressView(value: viewModel.transferProgress, total: 1000)
// .progressViewStyle(LinearProgressViewStyle())
// .padding()
// }
// .padding()
// }
//
// private func deviceImageName(for type: RemoteDeviceInfo.DeviceType) -> String {
// switch type {
// case .tablet:
// return "ipad"
// case .computer:
// return "desktopcomputer"
// default:
// return "iphone"
// }
// }
//}