diff --git a/TILogging/Sources/Views/LoggerWindow/LoggingTogglingViewController.swift b/TILogging/Sources/Views/LoggerWindow/LoggingTogglingViewController.swift index 27c128c8..f0b7c549 100644 --- a/TILogging/Sources/Views/LoggerWindow/LoggingTogglingViewController.swift +++ b/TILogging/Sources/Views/LoggerWindow/LoggingTogglingViewController.swift @@ -117,32 +117,31 @@ open class LoggingTogglingViewController: BaseInitializeableViewController { private func clipButtonIfNeeded() { let viewFrame = view.safeAreaLayoutGuide.layoutFrame let buttonFrame = button.frame + var x: CGFloat = buttonFrame.minX + var y: CGFloat = buttonFrame.minY if buttonFrame.maxX > viewFrame.maxX { - button.frame = .init(x: viewFrame.maxX - buttonFrame.width, - y: buttonFrame.minY, - width: buttonFrame.width, - height: buttonFrame.height) + x = viewFrame.maxX - buttonFrame.width + y = buttonFrame.minY } else if buttonFrame.minX < viewFrame.minX { - button.frame = .init(x: viewFrame.minX, - y: buttonFrame.minY, - width: buttonFrame.width, - height: buttonFrame.height) + x = viewFrame.minX + y = buttonFrame.minY } if buttonFrame.maxY > viewFrame.maxY { - button.frame = .init(x: button.frame.minX, - y: viewFrame.maxY - button.frame.height, - width: button.frame.width, - height: button.frame.height) + x = buttonFrame.minX + y = viewFrame.maxY - buttonFrame.height } else if buttonFrame.minY < viewFrame.minY { - button.frame = .init(x: buttonFrame.minX, - y: viewFrame.minY, - width: buttonFrame.width, - height: buttonFrame.height) + x = buttonFrame.minX + y = viewFrame.minY } + + button.frame = .init(x: x, + y: y, + width: buttonFrame.width, + height: buttonFrame.height) } // MARK: - Actions diff --git a/TILogging/Sources/Views/ViewModels/Helpers/DefaultLogsListManipulator.swift b/TILogging/Sources/Views/ViewModels/Helpers/DefaultLogsListManipulator.swift index 820367ac..26e1d842 100644 --- a/TILogging/Sources/Views/ViewModels/Helpers/DefaultLogsListManipulator.swift +++ b/TILogging/Sources/Views/ViewModels/Helpers/DefaultLogsListManipulator.swift @@ -25,12 +25,20 @@ import OSLog @available(iOS 15, *) public actor DefaultLogsListManipulator: LogsListManipulatorProtocol { public func fetchLogs() async -> [OSLogEntryLog]? { - let logStore = try? OSLogStore(scope: .currentProcessIdentifier) - let entries = try? logStore?.getEntries() + let logsResult = Result { try OSLogStore(scope: .currentProcessIdentifier) } + .flatMap { logStore in + Result { + try logStore + .getEntries() + .reversed() + .compactMap { $0 as? OSLogEntryLog } + } + } + if case let .success(logs) = logsResult { + return logs + } - return entries? - .reversed() - .compactMap { $0 as? OSLogEntryLog } + return nil } public func filter(_ logs: [OSLogEntryLog], byText text: String) async -> [OSLogEntryLog] {