2024-02-08 22:14:09 +08:00
|
|
|
package libbox
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"time"
|
2025-04-06 16:35:18 +08:00
|
|
|
|
|
|
|
|
C "github.com/sagernet/sing-box/constant"
|
2024-02-08 22:14:09 +08:00
|
|
|
)
|
|
|
|
|
|
2025-04-06 16:35:18 +08:00
|
|
|
type iOSPauseFields struct {
|
|
|
|
|
endPauseTimer *time.Timer
|
2024-02-08 22:14:09 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (s *BoxService) Pause() {
|
2025-04-06 16:35:18 +08:00
|
|
|
s.pauseManager.DevicePause()
|
|
|
|
|
if !C.IsIos {
|
|
|
|
|
s.instance.Router().ResetNetwork()
|
|
|
|
|
} else {
|
|
|
|
|
if s.endPauseTimer == nil {
|
|
|
|
|
s.endPauseTimer = time.AfterFunc(time.Minute, s.pauseManager.DeviceWake)
|
|
|
|
|
} else {
|
|
|
|
|
s.endPauseTimer.Reset(time.Minute)
|
|
|
|
|
}
|
2024-02-08 22:14:09 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (s *BoxService) Wake() {
|
2025-04-06 16:35:18 +08:00
|
|
|
if !C.IsIos {
|
|
|
|
|
s.pauseManager.DeviceWake()
|
|
|
|
|
s.instance.Router().ResetNetwork()
|
2024-02-08 22:14:09 +08:00
|
|
|
}
|
2024-06-08 20:27:08 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (s *BoxService) ResetNetwork() {
|
2024-11-10 12:11:21 +08:00
|
|
|
s.instance.Router().ResetNetwork()
|
2024-02-08 22:14:09 +08:00
|
|
|
}
|
2025-02-20 14:42:09 +08:00
|
|
|
|
|
|
|
|
func (s *BoxService) UpdateWIFIState() {
|
|
|
|
|
s.instance.Network().UpdateWIFIState()
|
|
|
|
|
}
|