diff --git a/Dangerfile.swift b/Dangerfile.swift index 74d0a7103962b..87dc119ef133e 100644 --- a/Dangerfile.swift +++ b/Dangerfile.swift @@ -432,7 +432,7 @@ func checkDescriptionSection() { func commentDescriptionSection(desc: String) { let count = desc.trimmingCharacters(in: .whitespacesAndNewlines).count - if count == 0 { + if count == 0 { // swiftlint:disable:this empty_count fail(""" Details needed! Your description section is empty. Adding a bit more context will make reviews smoother. """) diff --git a/focus-ios/OpenInFocus/ActionViewController.swift b/focus-ios/OpenInFocus/ActionViewController.swift index 7a0e6a0ebda22..1c2aaff8553a0 100644 --- a/focus-ios/OpenInFocus/ActionViewController.swift +++ b/focus-ios/OpenInFocus/ActionViewController.swift @@ -33,8 +33,11 @@ extension NSItemProvider { } } -class ActionViewController: SLComposeServiceViewController { - private var isKlar: Bool { return (Bundle.main.infoDictionary!["CFBundleIdentifier"] as! String).contains("Klar") } +final class ActionViewController: SLComposeServiceViewController { + private var isKlar: Bool { + guard let string = Bundle.main.infoDictionary?["CFBundleIdentifier"] as? String else { return false } + return string.contains("Klar") + } private var urlScheme: String { return isKlar ? "firefox-klar" : "firefox-focus" } override func isContentValid() -> Bool { return true } @@ -97,21 +100,21 @@ class ActionViewController: SLComposeServiceViewController { } private func handleUrl(_ url: NSURL) { - // From http://stackoverflow.com/questions/24297273/openurl-not-work-in-action-extension + // From https://stackoverflow.com/questions/24297273/openurl-not-work-in-action-extension var responder = self as UIResponder? let selectorOpenURL = sel_registerName("openURL:") - while responder != nil { + while let currentResponder = responder { if #available(iOS 18.0, *) { if let application = responder as? UIApplication { application.open(url as URL, options: [:], completionHandler: nil) } } else { - if responder!.responds(to: selectorOpenURL) { - responder!.callSelector(selector: selectorOpenURL, object: url, delay: 0) + if currentResponder.responds(to: selectorOpenURL) { + currentResponder.callSelector(selector: selectorOpenURL, object: url, delay: 0) } } - responder = responder!.next + responder = currentResponder.next } finish() } diff --git a/focus-ios/Widgets/Widgets.swift b/focus-ios/Widgets/Widgets.swift index 9d3f9d918c2f8..e7bba6e2a45bc 100644 --- a/focus-ios/Widgets/Widgets.swift +++ b/focus-ios/Widgets/Widgets.swift @@ -63,7 +63,10 @@ struct FocusWidgets_Previews: PreviewProvider { fileprivate extension String { static var appNameForBundle: String { - var isKlar: Bool { return (Bundle.main.infoDictionary!["CFBundleIdentifier"] as! String).contains("Klar") } + var isKlar: Bool { + guard let string = Bundle.main.infoDictionary?["CFBundleIdentifier"] as? String else { return false } + return string.contains("Klar") + } return isKlar ? "Klar" : "Focus" } // Quick Action - Small Size - Gallery View @@ -100,7 +103,7 @@ fileprivate extension Bool { } fileprivate extension URL { - static let deepLinkURL = URL(string: "firefox-focus://widget")! + static let deepLinkURL = URL(string: "firefox-focus://widget") } fileprivate extension View {