diff --git a/Loop Status Extension/StatusViewController.swift b/Loop Status Extension/StatusViewController.swift index 0de511aa87..ef67de39a9 100644 --- a/Loop Status Extension/StatusViewController.swift +++ b/Loop Status Extension/StatusViewController.swift @@ -24,12 +24,21 @@ class StatusViewController: UIViewController, NCWidgetProviding { super.viewDidLoad() subtitleLabel.alpha = 0 subtitleLabel.textColor = UIColor.secondaryLabelColor + + let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(openLoopApp(_:))) + view.addGestureRecognizer(tapGestureRecognizer) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } - + + @objc private func openLoopApp(_: Any) { + if let url = Bundle.main.mainAppUrl { + self.extensionContext?.open(url) + } + } + func widgetPerformUpdate(completionHandler: (@escaping (NCUpdateResult) -> Void)) { guard let context = UserDefaults(suiteName: Bundle.main.appGroupSuiteName)?.statusExtensionContext diff --git a/Loop/Extensions/NSBundle.swift b/Loop/Extensions/NSBundle.swift index 1f458269c4..7c240b5b54 100644 --- a/Loop/Extensions/NSBundle.swift +++ b/Loop/Extensions/NSBundle.swift @@ -29,4 +29,12 @@ extension Bundle { var appGroupSuiteName: String { return "group.\(mainAppBundleIdentifier!)" } + + var mainAppUrl: URL? { + if let mainAppBundleIdentifier = mainAppBundleIdentifier { + return URL(string: "\(mainAppBundleIdentifier)://") + } else { + return nil + } + } } diff --git a/Loop/Info.plist b/Loop/Info.plist index aa6166da10..eb6d4f5693 100644 --- a/Loop/Info.plist +++ b/Loop/Info.plist @@ -2,6 +2,15 @@ + CFBundleURLTypes + + + CFBundleURLSchemes + + $(MAIN_APP_BUNDLE_IDENTIFIER) + + + CFBundleDevelopmentRegion en ITSAppUsesNonExemptEncryption