mirror of
https://github.com/leonboe1/QuickDrop.git
synced 2026-11-11 02:51:11 +00:00
139 lines
3.9 KiB
Swift
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"
|
|
// }
|
|
// }
|
|
//}
|