Add deprecated warnings
This commit is contained in:
@@ -83,6 +83,7 @@ public struct DashboardView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct DashboardView1: View {
|
struct DashboardView1: View {
|
||||||
|
@Environment(\.openURL) var openURL
|
||||||
@EnvironmentObject private var environments: ExtensionEnvironments
|
@EnvironmentObject private var environments: ExtensionEnvironments
|
||||||
@EnvironmentObject private var profile: ExtensionProfile
|
@EnvironmentObject private var profile: ExtensionProfile
|
||||||
@State private var alert: Alert?
|
@State private var alert: Alert?
|
||||||
@@ -100,6 +101,9 @@ public struct DashboardView: View {
|
|||||||
if newValue == .disconnecting || newValue == .connected {
|
if newValue == .disconnecting || newValue == .connected {
|
||||||
Task {
|
Task {
|
||||||
await checkServiceError()
|
await checkServiceError()
|
||||||
|
if newValue == .connected {
|
||||||
|
await checkDeprecatedNotes()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if newValue == .connecting {
|
} else if newValue == .connecting {
|
||||||
notStarted = true
|
notStarted = true
|
||||||
@@ -115,6 +119,40 @@ public struct DashboardView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private nonisolated func checkDeprecatedNotes() async {
|
||||||
|
do {
|
||||||
|
let reports = try LibboxNewStandaloneCommandClient()!.getDeprecatedNotes()
|
||||||
|
if reports.hasNext() {
|
||||||
|
await MainActor.run {
|
||||||
|
loopShowDeprecateNotes(reports)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
await MainActor.run {
|
||||||
|
alert = Alert(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@MainActor
|
||||||
|
private func loopShowDeprecateNotes(_ reports: any LibboxDeprecatedNoteIteratorProtocol) {
|
||||||
|
if reports.hasNext() {
|
||||||
|
let report = reports.next()!
|
||||||
|
NSLog("show next")
|
||||||
|
alert = Alert(
|
||||||
|
title: Text("Deprecated Warning"),
|
||||||
|
message: Text(report.message()),
|
||||||
|
primaryButton: .cancel(Text("Ok")) {
|
||||||
|
loopShowDeprecateNotes(reports)
|
||||||
|
},
|
||||||
|
secondaryButton: .default(Text("Documentation")) {
|
||||||
|
openURL(URL(string: report.migrationLink)!)
|
||||||
|
loopShowDeprecateNotes(reports)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private nonisolated func checkServiceError() async {
|
private nonisolated func checkServiceError() async {
|
||||||
var error: NSError?
|
var error: NSError?
|
||||||
let message = LibboxReadServiceError(&error)
|
let message = LibboxReadServiceError(&error)
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ public struct GroupView: View {
|
|||||||
}
|
}
|
||||||
.alertBinding($alert)
|
.alertBinding($alert)
|
||||||
.padding([.top, .bottom], 8)
|
.padding([.top, .bottom], 8)
|
||||||
|
.animation(.easeInOut, value: group.isExpand)
|
||||||
}
|
}
|
||||||
|
|
||||||
public var body: some View {
|
public var body: some View {
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ public class CommandClient: ObservableObject {
|
|||||||
}
|
}
|
||||||
DispatchQueue.main.async { [self] in
|
DispatchQueue.main.async { [self] in
|
||||||
if commandClient.logList.count >= commandClient.logMaxLines {
|
if commandClient.logList.count >= commandClient.logMaxLines {
|
||||||
commandClient.logList.removeSubrange(0 ..< Int(messageList.len()))
|
commandClient.logList.removeFirst()
|
||||||
}
|
}
|
||||||
while messageList.hasNext() {
|
while messageList.hasNext() {
|
||||||
commandClient.logList.append(messageList.next())
|
commandClient.logList.append(messageList.next())
|
||||||
|
|||||||
@@ -483,7 +483,6 @@
|
|||||||
3A27D8FF2A89BE230031EBCC /* CommandClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandClient.swift; sourceTree = "<group>"; };
|
3A27D8FF2A89BE230031EBCC /* CommandClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandClient.swift; sourceTree = "<group>"; };
|
||||||
3A27D9012A89C6870031EBCC /* ExtensionEnvironments.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionEnvironments.swift; sourceTree = "<group>"; };
|
3A27D9012A89C6870031EBCC /* ExtensionEnvironments.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionEnvironments.swift; sourceTree = "<group>"; };
|
||||||
3A2EAEEC2A6F4CBB00D00DE3 /* StandaloneApplicationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StandaloneApplicationDelegate.swift; sourceTree = "<group>"; };
|
3A2EAEEC2A6F4CBB00D00DE3 /* StandaloneApplicationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StandaloneApplicationDelegate.swift; sourceTree = "<group>"; };
|
||||||
3A334ECF2C0F621E00E9C577 /* ConnectionDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionDetailsView.swift; sourceTree = "<group>"; };
|
|
||||||
3A2F29EA2C998A5D007E024C /* Export.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Export.plist; sourceTree = "<group>"; };
|
3A2F29EA2C998A5D007E024C /* Export.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Export.plist; sourceTree = "<group>"; };
|
||||||
3A334ECF2C0F621E00E9C577 /* ConnectionDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionDetailsView.swift; sourceTree = "<group>"; };
|
3A334ECF2C0F621E00E9C577 /* ConnectionDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionDetailsView.swift; sourceTree = "<group>"; };
|
||||||
3A3AB2A62B70C146001815AE /* CoreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreView.swift; sourceTree = "<group>"; };
|
3A3AB2A62B70C146001815AE /* CoreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreView.swift; sourceTree = "<group>"; };
|
||||||
@@ -2148,7 +2147,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.10.0;
|
MARKETING_VERSION = 1.10.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
||||||
PRODUCT_NAME = "sing-box";
|
PRODUCT_NAME = "sing-box";
|
||||||
SDKROOT = appletvos;
|
SDKROOT = appletvos;
|
||||||
@@ -2183,7 +2182,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.10.0;
|
MARKETING_VERSION = 1.10.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
||||||
PRODUCT_NAME = "sing-box";
|
PRODUCT_NAME = "sing-box";
|
||||||
SDKROOT = appletvos;
|
SDKROOT = appletvos;
|
||||||
@@ -2488,7 +2487,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.10.0;
|
MARKETING_VERSION = 1.10.2;
|
||||||
OTHER_CODE_SIGN_FLAGS = "--deep";
|
OTHER_CODE_SIGN_FLAGS = "--deep";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
||||||
PRODUCT_NAME = "sing-box";
|
PRODUCT_NAME = "sing-box";
|
||||||
@@ -2530,7 +2529,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.10.0;
|
MARKETING_VERSION = 1.10.2;
|
||||||
OTHER_CODE_SIGN_FLAGS = "--deep";
|
OTHER_CODE_SIGN_FLAGS = "--deep";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
||||||
PRODUCT_NAME = "sing-box";
|
PRODUCT_NAME = "sing-box";
|
||||||
@@ -2553,7 +2552,7 @@
|
|||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 284;
|
CURRENT_PROJECT_VERSION = 286;
|
||||||
DEAD_CODE_STRIPPING = YES;
|
DEAD_CODE_STRIPPING = YES;
|
||||||
DEVELOPMENT_TEAM = 287TTNZF8L;
|
DEVELOPMENT_TEAM = 287TTNZF8L;
|
||||||
ENABLE_HARDENED_RUNTIME = YES;
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
@@ -2571,7 +2570,7 @@
|
|||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||||
MARKETING_VERSION = 1.10.0;
|
MARKETING_VERSION = 1.10.2;
|
||||||
OTHER_CODE_SIGN_FLAGS = "";
|
OTHER_CODE_SIGN_FLAGS = "";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
||||||
PRODUCT_NAME = "sing-box";
|
PRODUCT_NAME = "sing-box";
|
||||||
@@ -2593,7 +2592,7 @@
|
|||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 284;
|
CURRENT_PROJECT_VERSION = 286;
|
||||||
DEAD_CODE_STRIPPING = YES;
|
DEAD_CODE_STRIPPING = YES;
|
||||||
DEVELOPMENT_TEAM = 287TTNZF8L;
|
DEVELOPMENT_TEAM = 287TTNZF8L;
|
||||||
ENABLE_HARDENED_RUNTIME = YES;
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
@@ -2611,7 +2610,7 @@
|
|||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||||
MARKETING_VERSION = 1.10.0;
|
MARKETING_VERSION = 1.10.2;
|
||||||
OTHER_CODE_SIGN_FLAGS = "";
|
OTHER_CODE_SIGN_FLAGS = "";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt;
|
||||||
PRODUCT_NAME = "sing-box";
|
PRODUCT_NAME = "sing-box";
|
||||||
@@ -2739,7 +2738,7 @@
|
|||||||
"@executable_path/../../../../Frameworks",
|
"@executable_path/../../../../Frameworks",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||||
MARKETING_VERSION = 1.10.0;
|
MARKETING_VERSION = 1.10.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt.system;
|
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt.system;
|
||||||
PRODUCT_NAME = "$(inherited)";
|
PRODUCT_NAME = "$(inherited)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
@@ -2775,7 +2774,7 @@
|
|||||||
"@executable_path/../../../../Frameworks",
|
"@executable_path/../../../../Frameworks",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||||
MARKETING_VERSION = 1.10.0;
|
MARKETING_VERSION = 1.10.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt.system;
|
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt.system;
|
||||||
PRODUCT_NAME = "$(inherited)";
|
PRODUCT_NAME = "$(inherited)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
@@ -2817,7 +2816,7 @@
|
|||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||||
MARKETING_VERSION = 1.10.0;
|
MARKETING_VERSION = 1.10.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt.standalone;
|
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt.standalone;
|
||||||
PRODUCT_NAME = SFM;
|
PRODUCT_NAME = SFM;
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
@@ -2858,7 +2857,7 @@
|
|||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||||
MARKETING_VERSION = 1.10.0;
|
MARKETING_VERSION = 1.10.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt.standalone;
|
PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfavt.standalone;
|
||||||
PRODUCT_NAME = SFM;
|
PRODUCT_NAME = SFM;
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
|||||||
Reference in New Issue
Block a user