diff --git a/iOS/DittoChat.xcodeproj/project.pbxproj b/iOS/DittoChat.xcodeproj/project.pbxproj index 688094f..29a1541 100644 --- a/iOS/DittoChat.xcodeproj/project.pbxproj +++ b/iOS/DittoChat.xcodeproj/project.pbxproj @@ -969,8 +969,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/getditto/DittoSwiftTools.git"; requirement = { - kind = upToNextMajorVersion; - minimumVersion = 4.4.0; + kind = exactVersion; + version = "4.8.0-visionos-beta.1"; }; }; 14BF945B29786731001F672D /* XCRemoteSwiftPackageReference "CodeScanner" */ = { @@ -985,8 +985,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/getditto/DittoSwiftPackage"; requirement = { - kind = upToNextMajorVersion; - minimumVersion = 4.7.0; + kind = exactVersion; + version = "4.8.0-visionos-beta.1"; }; }; 14CADB5E293FF00700BED068 /* XCRemoteSwiftPackageReference "Fakery" */ = { diff --git a/iOS/DittoChat.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/iOS/DittoChat.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 6dcebda..ed373c2 100644 --- a/iOS/DittoChat.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/iOS/DittoChat.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -15,8 +15,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/getditto/DittoSwiftPackage", "state" : { - "revision" : "8f32d91b4a8d903e2e1da9abdae9f685c152f65d", - "version" : "4.7.2" + "revision" : "7964986665af7acd1065cf7c8fcab584ec580bbd", + "version" : "4.8.0-visionos-beta.1" } }, { @@ -24,8 +24,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/getditto/DittoSwiftTools.git", "state" : { - "revision" : "c121a51ce7dba950df94689e3f5a695342883fa0", - "version" : "4.4.0" + "revision" : "ad84a398fb5f8878066f3c556c12493d989b8949", + "version" : "4.8.0-visionos-beta.1" } }, { diff --git a/iOS/DittoChat/Data/DittoService.swift b/iOS/DittoChat/Data/DittoService.swift index 088642b..2782282 100644 --- a/iOS/DittoChat/Data/DittoService.swift +++ b/iOS/DittoChat/Data/DittoService.swift @@ -101,9 +101,21 @@ extension DittoInstance { default: DittoLogger.enabled = true DittoLogger.minimumLogLevel = DittoLogLevel(rawValue: logOption.rawValue)! - if let logFileURL = DittoLogManager.shared.logFileURL { - DittoLogger.setLogFileURL(logFileURL) + let logsDirectoryName = "debug-logs" + let logFileName = "logs.txt" + + let logsDirectory = FileManager.default + .urls(for: .cachesDirectory, in: .userDomainMask).first! + .appendingPathComponent(logsDirectoryName, isDirectory: true) + + do { + try FileManager.default.createDirectory(at: logsDirectory, + withIntermediateDirectories: true) + } catch let error { + assertionFailure("Failed to create logs directory: \(error)") } + + DittoLogger.setLogFileURL(logsDirectory.appendingPathComponent(logFileName)) } } } diff --git a/iOS/DittoChat/Screens/ChatScreen/ChatScreen.swift b/iOS/DittoChat/Screens/ChatScreen/ChatScreen.swift index 79cbd80..edc423e 100644 --- a/iOS/DittoChat/Screens/ChatScreen/ChatScreen.swift +++ b/iOS/DittoChat/Screens/ChatScreen/ChatScreen.swift @@ -43,7 +43,9 @@ struct ChatScreen: View { } } } +#if !os(visionOS) .scrollDismissesKeyboard(.interactively) +#endif .onAppear { DispatchQueue.main.async { scrollToBottom(proxy: proxy) diff --git a/iOS/DittoChat/Screens/CodeScanner/ScannerView.swift b/iOS/DittoChat/Screens/CodeScanner/ScannerView.swift index 99a3bec..ac07309 100644 --- a/iOS/DittoChat/Screens/CodeScanner/ScannerView.swift +++ b/iOS/DittoChat/Screens/CodeScanner/ScannerView.swift @@ -6,6 +6,8 @@ // // Copyright © 2023 DittoLive Incorporated. All rights reserved. +// AVMetadataObject is unavailable in visionOS +#if !os(visionOS) import CodeScanner import SwiftUI @@ -72,3 +74,5 @@ struct ScannerView_Previews: PreviewProvider { ScannerView() } } + +#endif diff --git a/iOS/DittoChat/Screens/MessageEditView/MessageEditView.swift b/iOS/DittoChat/Screens/MessageEditView/MessageEditView.swift index edef557..67b92b2 100644 --- a/iOS/DittoChat/Screens/MessageEditView/MessageEditView.swift +++ b/iOS/DittoChat/Screens/MessageEditView/MessageEditView.swift @@ -79,7 +79,9 @@ struct MessageEditView: View { } } +#if !os(visionOS) .scrollDismissesKeyboard(.interactively) +#endif .onAppear { DispatchQueue.main.async { withAnimation { diff --git a/iOS/DittoChat/Screens/RoomsListScreen/RoomsListScreen.swift b/iOS/DittoChat/Screens/RoomsListScreen/RoomsListScreen.swift index de086db..be8f344 100644 --- a/iOS/DittoChat/Screens/RoomsListScreen/RoomsListScreen.swift +++ b/iOS/DittoChat/Screens/RoomsListScreen/RoomsListScreen.swift @@ -56,6 +56,7 @@ struct RoomsListScreen: View { .sheet(isPresented: $viewModel.presentProfileScreen) { ProfileScreen() } +#if !os(visionOS) .sheet(isPresented: $viewModel.presentScannerView) { ScannerView( successAction: { code in @@ -63,6 +64,7 @@ struct RoomsListScreen: View { } ) } +#endif .sheet(isPresented: $viewModel.presentCreateRoomScreen) { RoomEditScreen() } diff --git a/iOS/DittoChat/Utilities/Utils.swift b/iOS/DittoChat/Utilities/Utils.swift index b5d21c3..2789ba9 100644 --- a/iOS/DittoChat/Utilities/Utils.swift +++ b/iOS/DittoChat/Utilities/Utils.swift @@ -97,10 +97,10 @@ extension Bundle { extension CGFloat { static var screenWidth: CGFloat { - UIScreen.main.bounds.width + .infinity } static var screenHeight: CGFloat { - UIScreen.main.bounds.height + .infinity } }