From 93111d571ee119ecbbb369ea4280ebd817bdb036 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Thu, 22 Dec 2016 16:28:09 -0800 Subject: [PATCH 1/3] Open the app when the user taps on the widget Register the "Loop" app url scheme in order to make the app an addressable target. --- Loop Status Extension/StatusViewController.swift | 11 ++++++++++- Loop/Info.plist | 9 +++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Loop Status Extension/StatusViewController.swift b/Loop Status Extension/StatusViewController.swift index 0de511aa87..d533931108 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 = URL(string: "Loop://") { + self.extensionContext?.open(url) + } + } + func widgetPerformUpdate(completionHandler: (@escaping (NCUpdateResult) -> Void)) { guard let context = UserDefaults(suiteName: Bundle.main.appGroupSuiteName)?.statusExtensionContext diff --git a/Loop/Info.plist b/Loop/Info.plist index aa6166da10..dd72b94860 100644 --- a/Loop/Info.plist +++ b/Loop/Info.plist @@ -2,6 +2,15 @@ + CFBundleURLTypes + + + CFBundleURLSchemes + + Loop + + + CFBundleDevelopmentRegion en ITSAppUsesNonExemptEncryption From bdb02ababc21a12e5a8e96ce6bd1dbbcd50b2833 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Thu, 22 Dec 2016 17:11:26 -0800 Subject: [PATCH 2/3] Use MAIN_APP_BUNDLE_IDENTIFIER instead of hardcoding "Loop" as the URL scheme --- Loop Status Extension/StatusViewController.swift | 2 +- Loop/Extensions/NSBundle.swift | 8 ++++++++ Loop/Info.plist | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Loop Status Extension/StatusViewController.swift b/Loop Status Extension/StatusViewController.swift index d533931108..ef67de39a9 100644 --- a/Loop Status Extension/StatusViewController.swift +++ b/Loop Status Extension/StatusViewController.swift @@ -34,7 +34,7 @@ class StatusViewController: UIViewController, NCWidgetProviding { } @objc private func openLoopApp(_: Any) { - if let url = URL(string: "Loop://") { + if let url = Bundle.main.mainAppUrl { self.extensionContext?.open(url) } } diff --git a/Loop/Extensions/NSBundle.swift b/Loop/Extensions/NSBundle.swift index 1f458269c4..7c6e8cd42f 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 dd72b94860..eb6d4f5693 100644 --- a/Loop/Info.plist +++ b/Loop/Info.plist @@ -7,7 +7,7 @@ CFBundleURLSchemes - Loop + $(MAIN_APP_BUNDLE_IDENTIFIER) From 82dc3da9a0196554be60d037d711d4e5e85eb5f0 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Fri, 23 Dec 2016 10:45:07 -0800 Subject: [PATCH 3/3] Improve string concatenation style --- Loop/Extensions/NSBundle.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Loop/Extensions/NSBundle.swift b/Loop/Extensions/NSBundle.swift index 7c6e8cd42f..7c240b5b54 100644 --- a/Loop/Extensions/NSBundle.swift +++ b/Loop/Extensions/NSBundle.swift @@ -32,7 +32,7 @@ extension Bundle { var mainAppUrl: URL? { if let mainAppBundleIdentifier = mainAppBundleIdentifier { - return URL(string: mainAppBundleIdentifier + "://") + return URL(string: "\(mainAppBundleIdentifier)://") } else { return nil }