diff --git a/Meshtastic.xcodeproj/project.pbxproj b/Meshtastic.xcodeproj/project.pbxproj index 6fb06ca4..438dca3c 100644 --- a/Meshtastic.xcodeproj/project.pbxproj +++ b/Meshtastic.xcodeproj/project.pbxproj @@ -43,7 +43,6 @@ DD6193752862F6E600E59241 /* ExternalNotificationConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD6193742862F6E600E59241 /* ExternalNotificationConfig.swift */; }; DD6193772862F90F00E59241 /* CannedMessagesConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD6193762862F90F00E59241 /* CannedMessagesConfig.swift */; }; DD6193792863875F00E59241 /* SerialConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD6193782863875F00E59241 /* SerialConfig.swift */; }; - DD6B85A828009258000ACD6B /* ShareChannels.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD6B85A728009258000ACD6B /* ShareChannels.swift */; }; DD73FD1128750779000852D6 /* PositionLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD73FD1028750779000852D6 /* PositionLog.swift */; }; DD769E0328D18BF1001A3F05 /* DeviceMetricsLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD769E0228D18BF0001A3F05 /* DeviceMetricsLog.swift */; }; DD8169F9271F1A6100F4AB02 /* MeshLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD8169F8271F1A6100F4AB02 /* MeshLogger.swift */; }; @@ -158,7 +157,6 @@ DD6193742862F6E600E59241 /* ExternalNotificationConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExternalNotificationConfig.swift; sourceTree = ""; }; DD6193762862F90F00E59241 /* CannedMessagesConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CannedMessagesConfig.swift; sourceTree = ""; }; DD6193782863875F00E59241 /* SerialConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SerialConfig.swift; sourceTree = ""; }; - DD6B85A728009258000ACD6B /* ShareChannels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareChannels.swift; sourceTree = ""; }; DD73FD1028750779000852D6 /* PositionLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PositionLog.swift; sourceTree = ""; }; DD769E0228D18BF0001A3F05 /* DeviceMetricsLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceMetricsLog.swift; sourceTree = ""; }; DD8169F8271F1A6100F4AB02 /* MeshLogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeshLogger.swift; sourceTree = ""; }; @@ -275,14 +273,6 @@ path = Custom; sourceTree = ""; }; - DD2160AC28C5019400C17253 /* Messages */ = { - isa = PBXGroup; - children = ( - DDA1C48628D82022009933EC /* MessageTemplate.swift */, - ); - path = Messages; - sourceTree = ""; - }; DD47E3CA26F0E50300029299 /* Nodes */ = { isa = PBXGroup; children = ( @@ -311,7 +301,6 @@ DD3501882852FC3B000FC853 /* Settings.swift */, DD4A911D2708C65400501B7E /* AppSettings.swift */, DD8169FA271F1F3A00F4AB02 /* MeshLog.swift */, - DD6B85A728009258000ACD6B /* ShareChannels.swift */, DD86D40B287F401000BAEB7A /* SaveChannelQRCode.swift */, DDCE4E2B2869F92900BE9F8F /* UserConfig.swift */, DD0F791A28713C8A00A6FDAD /* AdminMessageList.swift */, @@ -716,14 +705,12 @@ DDAF8C6E26ED19040058C060 /* Extensions.swift in Sources */, DD3501892852FC3B000FC853 /* Settings.swift in Sources */, DDA6B2EB28420A7B003E8C16 /* NodeAnnotation.swift in Sources */, - DDA1C48728D82022009933EC /* MessageTemplate.swift in Sources */, DDC2E1A726CEB3400042C5E4 /* LocationHelper.swift in Sources */, DD5394FE276BA0EF00AD86B1 /* PositionEntityExtension.swift in Sources */, DD913639270DFF4C00D7ACF3 /* LocalNotificationManager.swift in Sources */, DD4C158C2824A91E0032668E /* module_config.pb.swift in Sources */, DDB6ABE828B141AF00384BA1 /* WiFiModes.swift in Sources */, DD4F23CD28779A3C001D37CB /* EnvironmentMetricsLog.swift in Sources */, - DD6B85A828009258000ACD6B /* ShareChannels.swift in Sources */, DDB6ABD628AE742000384BA1 /* BluetoothConfig.swift in Sources */, DD769E0328D18BF1001A3F05 /* DeviceMetricsLog.swift in Sources */, DDAF8C5326EB1DF10058C060 /* BLEManager.swift in Sources */, diff --git a/Meshtastic/Views/Settings/Settings.swift b/Meshtastic/Views/Settings/Settings.swift index b998e532..615c4985 100644 --- a/Meshtastic/Views/Settings/Settings.swift +++ b/Meshtastic/Views/Settings/Settings.swift @@ -37,14 +37,14 @@ struct Settings: View { Section("Radio Configuration") { - NavigationLink { - ShareChannels(node: nodes.first(where: { $0.num == connectedNodeNum })) - } label: { - Image(systemName: "qrcode") - .symbolRenderingMode(.hierarchical) - Text("Share Channels QR Code") - } - .disabled(bleManager.connectedPeripheral == nil) +// NavigationLink { +// ShareChannels(node: nodes.first(where: { $0.num == connectedNodeNum })) +// } label: { +// Image(systemName: "qrcode") +// .symbolRenderingMode(.hierarchical) +// Text("Share Channels QR Code") +// } +// .disabled(bleManager.connectedPeripheral == nil) NavigationLink { UserConfig(node: nodes.first(where: { $0.num == connectedNodeNum })) diff --git a/Meshtastic/Views/Settings/ShareChannels.swift b/Meshtastic/Views/Settings/ShareChannels.swift deleted file mode 100644 index 95501702..00000000 --- a/Meshtastic/Views/Settings/ShareChannels.swift +++ /dev/null @@ -1,124 +0,0 @@ -// -// ShareChannel.swift -// MeshtasticApple -// -// Created by Garth Vander Houwen on 4/8/22. -// -import SwiftUI -import CoreData -import CoreImage.CIFilterBuiltins - - -struct QrCodeImage { - let context = CIContext() - - func generateQRCode(from text: String) -> UIImage { - var qrImage = UIImage(systemName: "xmark.circle") ?? UIImage() - let data = Data(text.utf8) - let filter = CIFilter.qrCodeGenerator() - filter.setValue(data, forKey: "inputMessage") - - let transform = CGAffineTransform(scaleX: 20, y: 20) - if let outputImage = filter.outputImage?.transformed(by: transform) { - if let image = context.createCGImage( - outputImage, - from: outputImage.extent) { - qrImage = UIImage(cgImage: image) - } - } - - return qrImage - } -} - -struct ShareChannels: View { - - @Environment(\.managedObjectContext) var context - @EnvironmentObject var bleManager: BLEManager - @EnvironmentObject var userSettings: UserSettings - - var node: NodeInfoEntity? - - @State private var text = "https://meshtastic.org/E/#test" - var qrCodeImage = QrCodeImage() - - var body: some View { - - VStack { - - GeometryReader { bounds in - - let smallest = min(bounds.size.width, bounds.size.height) - - ScrollView { - - VStack { - Text("Scan the QR code below with the Apple or Android device you would like to share your channel settings with.") - .fixedSize(horizontal: false, vertical: true) - .font(.callout) - - let image = qrCodeImage.generateQRCode(from: text) - Image(uiImage: image) - .resizable() - .scaledToFit() - .frame( - minWidth: smallest * 0.8, - maxWidth: smallest * 0.8, - minHeight: smallest * 0.8, - maxHeight: smallest * 0.8, - alignment: .center - ) - - VStack { - ShareLink( - item: text, - preview: SharePreview( - "Meshtastic Channel Settings From Node \(node?.user?.shortName ?? "????")", - image: Image(systemName: "qrcode") - ) - ) - .presentationDetents([.large, .large]) - .font(.title3) - } - - if node != nil && node!.loRaConfig != nil { - - HStack { - - let preset = ModemPresets(rawValue: Int(node!.loRaConfig!.modemPreset)) - Text("Modem Preset \(preset!.description)").font(.title3) - } - } - VStack { - - Text("Number of Channels: \(node!.myInfo!.maxChannels)").font(.title2) - - ForEach(node!.myInfo!.channels?.array.sorted(by: { ($0 as! ChannelEntity).index < ($1 as! ChannelEntity).index }) as! [ChannelEntity], id: \.self) { (channel: ChannelEntity) in - - VStack { - - - Text("Channel: \(channel.index) Name: \(channel.name ?? "")") - } - } - } - .frame(width: bounds.size.width, height: bounds.size.height) - } - } - .navigationTitle("Share Channel") - .navigationBarTitleDisplayMode(.automatic) - .navigationBarItems(trailing: - - ZStack { - - ConnectedDevice(bluetoothOn: bleManager.isSwitchedOn, deviceConnected: bleManager.connectedPeripheral != nil, name: (bleManager.connectedPeripheral != nil) ? bleManager.connectedPeripheral.shortName : "????") - }) - .onAppear { - - self.bleManager.context = context - } - } - .navigationViewStyle(StackNavigationViewStyle()) - } - } -}