mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
[AltStoreCore] Adds AppProtocol.storeApp
Simplifies retrieving the associated StoreApp for an app.
This commit is contained in:
@@ -104,7 +104,7 @@ public extension LoggedError
|
||||
{
|
||||
var app: AppProtocol {
|
||||
// `as AppProtocol` needed to fix "cannot convert AnyApp to StoreApp" compiler error with Xcode 14.
|
||||
let app = self.installedApp ?? self.storeApp ?? AnyApp(name: self.appName, bundleIdentifier: self.appBundleID, url: nil) as AppProtocol
|
||||
let app = self.installedApp ?? self.storeApp ?? AnyApp(name: self.appName, bundleIdentifier: self.appBundleID, url: nil, storeApp: nil) as AppProtocol
|
||||
return app
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@ public protocol AppProtocol
|
||||
var name: String { get }
|
||||
var bundleIdentifier: String { get }
|
||||
var url: URL? { get }
|
||||
|
||||
var storeApp: StoreApp? { get }
|
||||
}
|
||||
|
||||
public struct AnyApp: AppProtocol
|
||||
@@ -21,12 +23,14 @@ public struct AnyApp: AppProtocol
|
||||
public var name: String
|
||||
public var bundleIdentifier: String
|
||||
public var url: URL?
|
||||
public var storeApp: StoreApp?
|
||||
|
||||
public init(name: String, bundleIdentifier: String, url: URL?)
|
||||
public init(name: String, bundleIdentifier: String, url: URL?, storeApp: StoreApp?)
|
||||
{
|
||||
self.name = name
|
||||
self.bundleIdentifier = bundleIdentifier
|
||||
self.url = url
|
||||
self.storeApp = storeApp
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +39,10 @@ extension ALTApplication: AppProtocol
|
||||
public var url: URL? {
|
||||
return self.fileURL
|
||||
}
|
||||
|
||||
public var storeApp: StoreApp? {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
extension StoreApp: AppProtocol
|
||||
@@ -42,6 +50,10 @@ extension StoreApp: AppProtocol
|
||||
public var url: URL? {
|
||||
return self.latestAvailableVersion?.downloadURL
|
||||
}
|
||||
|
||||
public var storeApp: StoreApp? {
|
||||
return self
|
||||
}
|
||||
}
|
||||
|
||||
extension InstalledApp: AppProtocol
|
||||
@@ -63,4 +75,8 @@ extension AppVersion: AppProtocol {
|
||||
public var url: URL? {
|
||||
return self.downloadURL
|
||||
}
|
||||
|
||||
public var storeApp: StoreApp? {
|
||||
return self.app
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user