Add option to ignore device sleep

This commit is contained in:
世界
2024-02-02 11:33:19 +08:00
parent 339e37f4be
commit 70d43abd52
3 changed files with 18 additions and 0 deletions
+1
View File
@@ -17,6 +17,7 @@ public enum SharedPreferences {
public static let maxLogLines = Preference<Int>("max_log_lines", defaultValue: 300)
public static let alwaysOn = Preference<Bool>("always_on", defaultValue: false)
public static let ignoreDeviceSleep = Preference<Bool>("ignore_device_sleep", defaultValue: false)
#if os(macOS)
public static let showMenuBarExtra = Preference<Bool>("show_menu_bar_extra", defaultValue: true)
+8
View File
@@ -6,6 +6,7 @@ open class ExtensionProvider: NEPacketTunnelProvider {
public var username: String? = nil
private var commandServer: LibboxCommandServer!
private var boxService: LibboxBoxService!
private var ignoreDeviceSleep = false
private var systemProxyAvailable = false
private var systemProxyEnabled = false
private var platformInterface: ExtensionPlatformInterface!
@@ -35,6 +36,7 @@ open class ExtensionProvider: NEPacketTunnelProvider {
}
await LibboxSetMemoryLimit(!SharedPreferences.disableMemoryLimit.get())
ignoreDeviceSleep = await SharedPreferences.ignoreDeviceSleep.get()
if platformInterface == nil {
platformInterface = ExtensionPlatformInterface(self)
@@ -159,12 +161,18 @@ open class ExtensionProvider: NEPacketTunnelProvider {
}
override open func sleep() async {
if ignoreDeviceSleep {
return
}
if let boxService {
boxService.sleep()
}
}
override open func wake() {
if ignoreDeviceSleep {
return
}
if let boxService {
boxService.wake()
}