Skip to content

Commit

Permalink
fix: versionInfo and Status
Browse files Browse the repository at this point in the history
  • Loading branch information
riderx committed Jun 23, 2022
1 parent a4c0c58 commit b64aa04
Show file tree
Hide file tree
Showing 2 changed files with 88 additions and 35 deletions.
90 changes: 60 additions & 30 deletions ios/Plugin/VersionInfo.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,66 +7,96 @@
//

import Foundation
extension String {
func trim(using characterSet: CharacterSet = .whitespacesAndNewlines) -> String {
return trimmingCharacters(in: characterSet)
}
}

@objc public class VersionInfo: NSObject, Equatable {
public let String VERSION_BUILTIN = "builtin";

private let String downloaded;
private let String name;
private let String version;
private let VersionStatus status;
@objc public class VersionInfo: NSObject {
public static let VERSION_BUILTIN: String = "builtin"
public static let VERSION_UNKNOWN: String = "unknown"
public static let DOWNLOADED_BUILTIN: String = "1970-01-01T00:00:00.000Z"

private let downloaded: String
private let name: String
private let version: String
private let status: VersionStatus

convenience init(version: String, status: VersionStatus, downloaded: Date, name: String) {
self.init(version: version, status: status, downloaded: downloaded.iso8601withFractionalSeconds, name: name)
}

init(version: String, status: VersionStatus, downloaded: String, name: String) {
self.downloaded = downloaded;
self.name = name;
self.version = version;
self.status = status;
self.downloaded = downloaded.trim()
self.name = name
self.version = version
self.status = status
}

public func isBuiltin() -> Boolean {
return VERSION_BUILTIN.equals(this.getVersion());
public func isBuiltin() -> Bool {
return VersionInfo.VERSION_BUILTIN == self.getVersion()
}

public func isUnknown() -> Bool {
return VersionInfo.VERSION_UNKNOWN == self.getVersion()
}

public func isErrorStatus() -> Bool {
return VersionStatus.ERROR == self.status
}

public func isErrorStatus() -> Boolean {
return VersionStatus.ERROR == this.status;
public func isDownloaded() -> Bool {
return !self.isBuiltin() && self.downloaded != nil && self.downloaded == VersionInfo.DOWNLOADED_BUILTIN
}

public func getDownloaded() -> String {
return this.isBuiltin() ? "1970-01-01T00:00:00.000Z" : this.downloaded;
return self.isBuiltin() ? VersionInfo.DOWNLOADED_BUILTIN : self.downloaded
}

public func setDownloaded(downloaded: Date) -> VersionInfo {
return VersionInfo(version: self.version, status: self.status, downloaded: downloaded, name: self.name)
}

public func getName() -> String {
return this.isBuiltin() ? VERSION_BUILTIN : this.name;
return self.isBuiltin() ? VersionInfo.VERSION_BUILTIN : self.name
}

public func setName(name: String) -> VersionInfo {
return VersionInfo(version: self.version, status: self.status, downloaded: self.downloaded, name: name)
}

public func getVersion() -> String {
return this.version == null ? VERSION_BUILTIN : this.version;
return self.version == nil ? VersionInfo.VERSION_BUILTIN : self.version
}

public func setVersion(version: String) -> VersionInfo {
return VersionInfo(version: version, status: self.status, downloaded: self.downloaded, name: self.name)
}

public func getStatus() -> VersionStatus {
return this.isBuiltin() ? VersionStatus.SUCCESS : this.status;
return self.isBuiltin() ? VersionStatus.SUCCESS : self.status
}

public func setStatus(status: VersionStatus) -> VersionInfo {
return VersionInfo(version: self.version, status: status, downloaded: self.downloaded, name: self.name)
}

public func toJSON() -> [String: String] {
return [
"downloaded": this.getDownloaded(),
"name": this.getName(),
"version": this.getVersion(),
"status": this.getStatus(),
];
"downloaded": self.getDownloaded(),
"name": self.getName(),
"version": self.getVersion(),
"status": self.getStatus().localizedString,
]
}

public static func == (lhs: VersionInfo, rhs: VersionInfo) -> Bool {
return lhs.getVersion() == rhs.getVersion()
return lhs.getVersion() == rhs.getVersion()
}

public func toString() -> String {
return "{" +
"downloaded: \"\(this.downloaded)\"" +
", name: \""\(this.name)\"" +
", version: \""\(this.version)\"" +
", status: \""\(this.status)\"" +
"}";
return "{ downloaded: \"\(self.downloaded)\", name: \"\(self.name)\", version: \"\(self.version)\", status: \"\(self.status)\"}"
}
}
33 changes: 28 additions & 5 deletions ios/Plugin/VersionStatus.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,39 @@

import Foundation

public enum VersionStatus: LocalizedString {
struct LocalizedString: ExpressibleByStringLiteral, Equatable {

let v: String

init(key: String) {
self.v = NSLocalizedString(key, comment: "")
}
init(localized: String) {
self.v = localized
}
init(stringLiteral value:String) {
self.init(key: value)
}
init(extendedGraphemeClusterLiteral value: String) {
self.init(key: value)
}
init(unicodeScalarLiteral value: String) {
self.init(key: value)
}
}

func ==(lhs:LocalizedString, rhs:LocalizedString) -> Bool {
return lhs.v == rhs.v
}

enum VersionStatus: LocalizedString {
case SUCCESS = "success"
case ERROR = error
case ERROR = "error"
case PENDING = "pending"


var localizedString: String {
return self.rawValue.v
}

init?(localizedString: String) {
self.init(rawValue: LocalizedString(localized: localizedString))
}
}

0 comments on commit b64aa04

Please sign in to comment.