diff --git a/Clocker/Panel/Notes Popover/NotesPopover.swift b/Clocker/Panel/Notes Popover/NotesPopover.swift index af340f1..f140883 100644 --- a/Clocker/Panel/Notes Popover/NotesPopover.swift +++ b/Clocker/Panel/Notes Popover/NotesPopover.swift @@ -175,7 +175,8 @@ class NotesPopover: NSViewController { guard let initialStart = calendar?.nextDate(after: currentDate, matching: NSCalendar.Unit.hour, value: hour, - options: NSCalendar.Options.matchPreviousTimePreservingSmallerUnits) else { + options: NSCalendar.Options.matchPreviousTimePreservingSmallerUnits) + else { assertionFailure("Initial Date object was unexepectedly nil") return } @@ -196,7 +197,8 @@ class NotesPopover: NSViewController { guard let newDate = currentCalendar?.date(byAdding: NSCalendar.Unit.minute, value: 0, to: Date(), - options: NSCalendar.Options.matchLast) else { + options: NSCalendar.Options.matchLast) + else { assertionFailure("Initial Date object was unexepectedly nil") completionHandler(nil) return @@ -222,7 +224,7 @@ class NotesPopover: NSViewController { } completionHandler(completedDate) - }) + }) } catch { assertionFailure("Failed to successfully initialize DataDetector") completionHandler(nil) @@ -320,7 +322,8 @@ class NotesPopover: NSViewController { } private func updateTimezoneInDefaultPreferences(with override: Int, - _: OverrideType) { + _: OverrideType) + { let timezones = DataStore.shared().timezones() var timezoneObjects: [TimezoneData] = [] @@ -389,7 +392,8 @@ class NotesPopover: NSViewController { timezone: model.timezone(), alertIndex: alertIndex, reminderDate: reminderPicker.dateValue, - additionalNotes: model.note) { + additionalNotes: model.note) + { showSuccessMessage() } } diff --git a/Clocker/Panel/PanelController.swift b/Clocker/Panel/PanelController.swift index 0e89d60..160b3a2 100644 --- a/Clocker/Panel/PanelController.swift +++ b/Clocker/Panel/PanelController.swift @@ -152,7 +152,8 @@ class PanelController: ParentPanelController { } if let statusWindow = statusBackgroundWindow, - let statusButton = statusView { + let statusButton = statusView + { var statusItemFrame = statusWindow.convertToScreen(statusButton.frame) var statusItemScreen = NSScreen.main var testPoint = statusItemFrame.origin @@ -184,16 +185,17 @@ class PanelController: ParentPanelController { let preferences = DataStore.shared().timezones() guard let theme = DataStore.shared().retrieve(key: CLThemeKey) as? NSNumber, - let displayFutureSliderKey = DataStore.shared().retrieve(key: CLThemeKey) as? NSNumber, - let showAppInForeground = DataStore.shared().retrieve(key: CLShowAppInForeground) as? NSNumber, - let relativeDateKey = DataStore.shared().retrieve(key: CLRelativeDateKey) as? NSNumber, - let fontSize = DataStore.shared().retrieve(key: CLUserFontSizePreference) as? NSNumber, - let sunriseTime = DataStore.shared().retrieve(key: CLSunriseSunsetTime) as? NSNumber, - let showDayInMenu = DataStore.shared().retrieve(key: CLShowDayInMenu) as? NSNumber, - let showDateInMenu = DataStore.shared().retrieve(key: CLShowDateInMenu) as? NSNumber, - let showPlaceInMenu = DataStore.shared().retrieve(key: CLShowPlaceInMenu) as? NSNumber, - let showUpcomingEventView = DataStore.shared().retrieve(key: CLShowUpcomingEventView) as? String, - let country = Locale.autoupdatingCurrent.regionCode else { + let displayFutureSliderKey = DataStore.shared().retrieve(key: CLThemeKey) as? NSNumber, + let showAppInForeground = DataStore.shared().retrieve(key: CLShowAppInForeground) as? NSNumber, + let relativeDateKey = DataStore.shared().retrieve(key: CLRelativeDateKey) as? NSNumber, + let fontSize = DataStore.shared().retrieve(key: CLUserFontSizePreference) as? NSNumber, + let sunriseTime = DataStore.shared().retrieve(key: CLSunriseSunsetTime) as? NSNumber, + let showDayInMenu = DataStore.shared().retrieve(key: CLShowDayInMenu) as? NSNumber, + let showDateInMenu = DataStore.shared().retrieve(key: CLShowDateInMenu) as? NSNumber, + let showPlaceInMenu = DataStore.shared().retrieve(key: CLShowPlaceInMenu) as? NSNumber, + let showUpcomingEventView = DataStore.shared().retrieve(key: CLShowUpcomingEventView) as? String, + let country = Locale.autoupdatingCurrent.regionCode + else { return } @@ -313,7 +315,7 @@ class PanelController: ParentPanelController { } class func panel() -> PanelController? { - let panel = NSApplication.shared.windows.compactMap { (window) -> PanelController? in + let panel = NSApplication.shared.windows.compactMap { window -> PanelController? in guard let parent = window.windowController as? PanelController else { return nil diff --git a/Clocker/Panel/ParentPanelController+ModernSlider.swift b/Clocker/Panel/ParentPanelController+ModernSlider.swift index 270e1a9..a834997 100644 --- a/Clocker/Panel/ParentPanelController+ModernSlider.swift +++ b/Clocker/Panel/ParentPanelController+ModernSlider.swift @@ -20,6 +20,7 @@ extension ParentPanelController { if modernSlider != nil { modernSlider.enclosingScrollView?.scrollerInsets = NSEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) modernSlider.enclosingScrollView?.backgroundColor = NSColor.clear + modernSlider.setAccessibility("ModernSlider") modernSlider.postsBoundsChangedNotifications = true NotificationCenter.default.addObserver(self, selector: #selector(collectionViewDidScroll(_:)), diff --git a/Clocker/Panel/ParentPanelController.swift b/Clocker/Panel/ParentPanelController.swift index 35bdc56..62b7ff9 100644 --- a/Clocker/Panel/ParentPanelController.swift +++ b/Clocker/Panel/ParentPanelController.swift @@ -37,7 +37,7 @@ class ParentPanelController: NSWindowController { var datasource: TimezoneDataSource? - private lazy var feedbackWindow: AppFeedbackWindowController = AppFeedbackWindowController.shared() + private lazy var feedbackWindow = AppFeedbackWindowController.shared() private var notePopover: NotesPopover? @@ -395,7 +395,7 @@ class ParentPanelController: NSWindowController { var current = main.frame.height - let activeScreens = NSScreen.screens.filter { (current) -> Bool in + let activeScreens = NSScreen.screens.filter { current -> Bool in NSMouseInRect(mouseLocation, current.frame, false) } @@ -425,8 +425,9 @@ class ParentPanelController: NSWindowController { if let note = object?.note, note.isEmpty == false { newHeight += 20 } else if DataStore.shared().shouldDisplay(.dstTransitionInfo), - let obj = object, - TimezoneDataOperations(with: obj).nextDaylightSavingsTransitionIfAvailable(with: futureSliderValue) != nil { + let obj = object, + TimezoneDataOperations(with: obj).nextDaylightSavingsTransitionIfAvailable(with: futureSliderValue) != nil + { newHeight += 20 } } @@ -496,7 +497,7 @@ class ParentPanelController: NSWindowController { updatePanelColor() let defaults = DataStore.shared().timezones() - let convertedTimezones = defaults.map { (data) -> TimezoneData in + let convertedTimezones = defaults.map { data -> TimezoneData in TimezoneData.customObject(from: data)! } @@ -533,7 +534,8 @@ class ParentPanelController: NSWindowController { let currentCalendar = Calendar(identifier: .gregorian) guard let newDate = currentCalendar.date(byAdding: .minute, value: Int(futureSlider.doubleValue), - to: Date()) else { + to: Date()) + else { assertionFailure("Data was unexpectedly nil") return } @@ -599,8 +601,9 @@ class ParentPanelController: NSWindowController { let current = preferences[$0] if $0 < mainTableView.numberOfRows, - let cellView = mainTableView.view(atColumn: 0, row: $0, makeIfNecessary: false) as? TimezoneCellView, - let model = TimezoneData.customObject(from: current) { + let cellView = mainTableView.view(atColumn: 0, row: $0, makeIfNecessary: false) as? TimezoneCellView, + let model = TimezoneData.customObject(from: current) + { if let futureSliderCell = futureSlider.cell as? CustomSliderCell, futureSliderCell.tracking == true { return } @@ -620,7 +623,8 @@ class ParentPanelController: NSWindowController { if let note = model.note, !note.isEmpty { cellView.noteLabel.stringValue = note } else if DataStore.shared().shouldDisplay(.dstTransitionInfo), - let value = TimezoneDataOperations(with: model).nextDaylightSavingsTransitionIfAvailable(with: futureSliderValue) { + let value = TimezoneDataOperations(with: model).nextDaylightSavingsTransitionIfAvailable(with: futureSliderValue) + { cellView.noteLabel.stringValue = value } else { cellView.noteLabel.stringValue = CLEmptyString @@ -719,7 +723,8 @@ class ParentPanelController: NSWindowController { @IBAction func calendarButtonAction(_: NSButton) { if calendarButton.title == NSLocalizedString("Click here to start.", - comment: "Button Title for no Calendar access") { + comment: "Button Title for no Calendar access") + { showPermissionsWindow() } else { retrieveCalendarEvents() @@ -840,7 +845,7 @@ class ParentPanelController: NSWindowController { let withoutAgo = withoutAn.replacingOccurrences(of: "ago", with: CLEmptyString) self.setCalendarButtonTitle(buttonTitle: "in \(withoutAgo.lowercased())") - + if upcomingEvent.meetingURL != nil { self.whiteRemoveButton.image = Themer.shared().videoCallImage() } @@ -1033,7 +1038,7 @@ class ParentPanelController: NSWindowController { @objc func openCrowdin() { guard let localizationURL = URL(string: AboutUsConstants.CrowdInLocalizationLink), - let languageCode = Locale.preferredLanguages.first else { return } + let languageCode = Locale.preferredLanguages.first else { return } NSWorkspace.shared.open(localizationURL) @@ -1112,7 +1117,7 @@ extension ParentPanelController: NSSharingServicePickerDelegate { let filteredServices = proposed.filter { service in allowedServices.contains(service.title) } - + var newProposedServices: [NSSharingService] = [copySharingService] newProposedServices.append(contentsOf: filteredServices) return newProposedServices diff --git a/Clocker/Panel/Rate Controller/ReviewController.swift b/Clocker/Panel/Rate Controller/ReviewController.swift index c1beea7..598db56 100644 --- a/Clocker/Panel/Rate Controller/ReviewController.swift +++ b/Clocker/Panel/Rate Controller/ReviewController.swift @@ -42,12 +42,12 @@ final class ReviewController { // Check if the app has been installed for atleast 7 days guard let install = storage.object(forKey: Keys.install) as? Date, - install.timeIntervalSinceNow < minInstall + install.timeIntervalSinceNow < minInstall else { return false } // If we have never been prompted before, go ahead and prompt guard let lastPrompt = storage.object(forKey: Keys.lastPrompt) as? Date, - let lastVersion = storage.object(forKey: Keys.lastVersion) as? String + let lastVersion = storage.object(forKey: Keys.lastVersion) as? String else { return true } // Minimum interval between two versions should be 45 diff --git a/Clocker/Panel/Rate Controller/UpcomingEventView.swift b/Clocker/Panel/Rate Controller/UpcomingEventView.swift index 9074051..94285a8 100644 --- a/Clocker/Panel/Rate Controller/UpcomingEventView.swift +++ b/Clocker/Panel/Rate Controller/UpcomingEventView.swift @@ -89,7 +89,7 @@ class ThinScroller: NSScroller { class DraggableClipView: NSClipView { private var clickPoint: NSPoint! private var trackingArea: NSTrackingArea? - + override func mouseDown(with event: NSEvent) { super.mouseDown(with: event) clickPoint = event.locationInWindow