|
@@ -8,6 +8,7 @@ extension Settings {
|
|
|
struct VersionInfo: Equatable {
|
|
struct VersionInfo: Equatable {
|
|
|
var latestVersion: String?
|
|
var latestVersion: String?
|
|
|
var isUpdateAvailable: Bool
|
|
var isUpdateAvailable: Bool
|
|
|
|
|
+ var isBlacklisted: Bool
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
struct RootView: BaseView {
|
|
struct RootView: BaseView {
|
|
@@ -25,7 +26,8 @@ extension Settings {
|
|
|
@State private var booleanPlaceholder: Bool = false
|
|
@State private var booleanPlaceholder: Bool = false
|
|
|
@State private var versionInfo = VersionInfo(
|
|
@State private var versionInfo = VersionInfo(
|
|
|
latestVersion: nil,
|
|
latestVersion: nil,
|
|
|
- isUpdateAvailable: false
|
|
|
|
|
|
|
+ isUpdateAvailable: false,
|
|
|
|
|
+ isBlacklisted: false
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
@Environment(\.colorScheme) var colorScheme
|
|
@Environment(\.colorScheme) var colorScheme
|
|
@@ -84,6 +86,14 @@ extension Settings {
|
|
|
)
|
|
)
|
|
|
.foregroundColor(versionInfo.isUpdateAvailable ? .orange : .green)
|
|
.foregroundColor(versionInfo.isUpdateAvailable ? .orange : .green)
|
|
|
}
|
|
}
|
|
|
|
|
+ if versionInfo.isBlacklisted {
|
|
|
|
|
+ HStack {
|
|
|
|
|
+ Text("Warning: Known issues. Update now.").font(.footnote)
|
|
|
|
|
+ .foregroundColor(.red)
|
|
|
|
|
+ Image(systemName: "exclamationmark.triangle.fill")
|
|
|
|
|
+ .foregroundColor(.red)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
Text("Latest version: Fetching...")
|
|
Text("Latest version: Fetching...")
|
|
|
.font(.footnote)
|
|
.font(.footnote)
|
|
@@ -340,11 +350,12 @@ extension Settings {
|
|
|
.screenNavigation(self)
|
|
.screenNavigation(self)
|
|
|
.onAppear {
|
|
.onAppear {
|
|
|
AppVersionChecker.shared.refreshVersionInfo { _, latestVersion, isNewer, isBlacklisted in
|
|
AppVersionChecker.shared.refreshVersionInfo { _, latestVersion, isNewer, isBlacklisted in
|
|
|
- let updateAvailable = isNewer && !isBlacklisted
|
|
|
|
|
|
|
+ let updateAvailable = isNewer
|
|
|
DispatchQueue.main.async {
|
|
DispatchQueue.main.async {
|
|
|
versionInfo = VersionInfo(
|
|
versionInfo = VersionInfo(
|
|
|
latestVersion: latestVersion,
|
|
latestVersion: latestVersion,
|
|
|
- isUpdateAvailable: updateAvailable
|
|
|
|
|
|
|
+ isUpdateAvailable: updateAvailable,
|
|
|
|
|
+ isBlacklisted: isBlacklisted
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|