2019-07-28 15:08:13 -07:00
|
|
|
//
|
|
|
|
|
// AppProtocol.swift
|
|
|
|
|
// AltStore
|
|
|
|
|
//
|
|
|
|
|
// Created by Riley Testut on 7/26/19.
|
|
|
|
|
// Copyright © 2019 Riley Testut. All rights reserved.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
import Foundation
|
|
|
|
|
import AltSign
|
|
|
|
|
|
2020-09-03 16:39:08 -07:00
|
|
|
public protocol AppProtocol
|
2019-07-28 15:08:13 -07:00
|
|
|
{
|
|
|
|
|
var name: String { get }
|
|
|
|
|
var bundleIdentifier: String { get }
|
2022-09-08 15:59:24 -05:00
|
|
|
var url: URL? { get }
|
2019-07-28 15:08:13 -07:00
|
|
|
}
|
|
|
|
|
|
2021-10-25 22:27:30 -07:00
|
|
|
public struct AnyApp: AppProtocol
|
|
|
|
|
{
|
|
|
|
|
public var name: String
|
|
|
|
|
public var bundleIdentifier: String
|
2022-09-08 15:59:24 -05:00
|
|
|
public var url: URL?
|
2021-10-25 22:27:30 -07:00
|
|
|
|
2022-09-08 15:59:24 -05:00
|
|
|
public init(name: String, bundleIdentifier: String, url: URL?)
|
2021-10-25 22:27:30 -07:00
|
|
|
{
|
|
|
|
|
self.name = name
|
|
|
|
|
self.bundleIdentifier = bundleIdentifier
|
|
|
|
|
self.url = url
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-07-28 15:08:13 -07:00
|
|
|
extension ALTApplication: AppProtocol
|
|
|
|
|
{
|
2022-09-08 15:59:24 -05:00
|
|
|
public var url: URL? {
|
2019-07-28 15:08:13 -07:00
|
|
|
return self.fileURL
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-07-31 14:07:00 -07:00
|
|
|
extension StoreApp: AppProtocol
|
2019-07-28 15:08:13 -07:00
|
|
|
{
|
2022-09-08 15:59:24 -05:00
|
|
|
public var url: URL? {
|
2019-07-28 15:08:13 -07:00
|
|
|
return self.downloadURL
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
extension InstalledApp: AppProtocol
|
|
|
|
|
{
|
2022-09-08 15:59:24 -05:00
|
|
|
public var url: URL? {
|
2019-07-28 15:08:13 -07:00
|
|
|
return self.fileURL
|
|
|
|
|
}
|
|
|
|
|
}
|