From c063e3c5297e65513296816b7e806f6c05d78963 Mon Sep 17 00:00:00 2001 From: Matt Freiburg Date: Mon, 11 Jan 2021 11:50:21 -0600 Subject: [PATCH 1/3] Add tvOS 13 to if available checks --- Sources/Managers/PresentationManager.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/Managers/PresentationManager.swift b/Sources/Managers/PresentationManager.swift index 9ff120c4..4f74a22d 100644 --- a/Sources/Managers/PresentationManager.swift +++ b/Sources/Managers/PresentationManager.swift @@ -227,7 +227,7 @@ private extension PresentationManager { private extension PresentationManager { private func createWindow() -> UIWindow? { var window = UIWindow() - if #available(iOS 13.0, *) { + if #available(iOS 13.0, tvOS 13.0, *) { guard let windowScene = getFirstForegroundScene() else { return nil } window = UIWindow(windowScene: windowScene) } else { @@ -243,7 +243,7 @@ private extension PresentationManager { return window } - @available(iOS 13.0, *) + @available(iOS 13.0, tvOS 13.0, *) private func getFirstForegroundScene() -> UIWindowScene? { let connectedScenes = UIApplication.shared.connectedScenes if let windowActiveScene = connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene { From 7d7fceac9ff424063654ef4d7a31e16c5c22668f Mon Sep 17 00:00:00 2001 From: Matt Freiburg Date: Mon, 11 Jan 2021 12:22:55 -0600 Subject: [PATCH 2/3] Add queryItem for tvOS App Store --- Sources/Managers/APIManager.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Sources/Managers/APIManager.swift b/Sources/Managers/APIManager.swift index bf1437f3..84e5c0f7 100644 --- a/Sources/Managers/APIManager.swift +++ b/Sources/Managers/APIManager.swift @@ -114,6 +114,11 @@ extension APIManager { var items: [URLQueryItem] = [URLQueryItem(name: Constants.bundleID, value: Bundle.main.bundleIdentifier)] + #if os(tvOS) + let tvOSQueryItem = URLQueryItem(name: "entity", value: "tvSoftware") + items.append(tvOSQueryItem) + #endif + if let countryCode = country.code { let item = URLQueryItem(name: Constants.country, value: countryCode) items.append(item) From b53fb2700127fb247681a364b5eeafa10ee4e663 Mon Sep 17 00:00:00 2001 From: Matt Freiburg Date: Thu, 14 Jan 2021 12:57:17 -0600 Subject: [PATCH 3/3] Move inline tvOS Query parameter strings to Constants struct --- Sources/Managers/APIManager.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Sources/Managers/APIManager.swift b/Sources/Managers/APIManager.swift index 84e5c0f7..a1537140 100644 --- a/Sources/Managers/APIManager.swift +++ b/Sources/Managers/APIManager.swift @@ -16,6 +16,10 @@ public struct APIManager { static let bundleID = "bundleId" /// Constant for the `country` parameter in the iTunes Lookup API request. static let country = "country" + /// Constant for the `entity` parameter in the iTunes Lookup API reqeust. + static let entity = "entity" + /// Constant for the `entity` parameter value when performing a tvOS iTunes Lookup API reqeust. + static let tvSoftware = "tvSoftware" } /// Return results or errors obtained from performing a version check with Siren. @@ -115,7 +119,7 @@ extension APIManager { var items: [URLQueryItem] = [URLQueryItem(name: Constants.bundleID, value: Bundle.main.bundleIdentifier)] #if os(tvOS) - let tvOSQueryItem = URLQueryItem(name: "entity", value: "tvSoftware") + let tvOSQueryItem = URLQueryItem(name: Constants.entity, value: Constants.tvSoftware) items.append(tvOSQueryItem) #endif