mirror of https://github.com/jetkvm/kvm.git
fix(display): cloud connecting animation
This commit is contained in:
parent
fd3a8cb553
commit
d136a90106
34
display.go
34
display.go
|
@ -1,7 +1,6 @@
|
||||||
package kvm
|
package kvm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
@ -89,8 +88,8 @@ func switchToScreenIfDifferent(screenName string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
cloudBlinkCtx context.Context
|
cloudBlinkLock sync.Mutex = sync.Mutex{}
|
||||||
cloudBlinkCancel context.CancelFunc
|
cloudBlinkStopped bool
|
||||||
cloudBlinkTicker *time.Ticker
|
cloudBlinkTicker *time.Ticker
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -141,33 +140,28 @@ func updateDisplay() {
|
||||||
func startCloudBlink() {
|
func startCloudBlink() {
|
||||||
if cloudBlinkTicker == nil {
|
if cloudBlinkTicker == nil {
|
||||||
cloudBlinkTicker = time.NewTicker(2 * time.Second)
|
cloudBlinkTicker = time.NewTicker(2 * time.Second)
|
||||||
}
|
} else {
|
||||||
|
// do nothing if the blink isn't stopped
|
||||||
|
if cloudBlinkStopped {
|
||||||
|
cloudBlinkLock.Lock()
|
||||||
|
defer cloudBlinkLock.Unlock()
|
||||||
|
|
||||||
if cloudBlinkCtx != nil {
|
cloudBlinkStopped = false
|
||||||
cloudBlinkCancel()
|
|
||||||
}
|
|
||||||
|
|
||||||
cloudBlinkCtx, cloudBlinkCancel = context.WithCancel(appCtx)
|
|
||||||
cloudBlinkTicker.Reset(2 * time.Second)
|
cloudBlinkTicker.Reset(2 * time.Second)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
defer cloudBlinkTicker.Stop()
|
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-cloudBlinkTicker.C:
|
case <-cloudBlinkTicker.C:
|
||||||
if cloudConnectionState != CloudConnectionStateConnecting {
|
if cloudConnectionState != CloudConnectionStateConnecting {
|
||||||
return
|
continue
|
||||||
}
|
}
|
||||||
_, _ = lvObjFadeIn("ui_Home_Header_Cloud_Status_Icon", 1000)
|
|
||||||
time.Sleep(1000 * time.Millisecond)
|
|
||||||
_, _ = lvObjFadeOut("ui_Home_Header_Cloud_Status_Icon", 1000)
|
_, _ = lvObjFadeOut("ui_Home_Header_Cloud_Status_Icon", 1000)
|
||||||
time.Sleep(1000 * time.Millisecond)
|
time.Sleep(1000 * time.Millisecond)
|
||||||
case <-cloudBlinkCtx.Done():
|
|
||||||
time.Sleep(1000 * time.Millisecond)
|
|
||||||
_, _ = lvObjFadeIn("ui_Home_Header_Cloud_Status_Icon", 1000)
|
_, _ = lvObjFadeIn("ui_Home_Header_Cloud_Status_Icon", 1000)
|
||||||
time.Sleep(1000 * time.Millisecond)
|
time.Sleep(1000 * time.Millisecond)
|
||||||
_, _ = lvObjSetOpacity("ui_Home_Header_Cloud_Status_Icon", 255)
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
@ -178,9 +172,9 @@ func stopCloudBlink() {
|
||||||
cloudBlinkTicker.Stop()
|
cloudBlinkTicker.Stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
if cloudBlinkCtx != nil {
|
cloudBlinkLock.Lock()
|
||||||
cloudBlinkCancel()
|
defer cloudBlinkLock.Unlock()
|
||||||
}
|
cloudBlinkStopped = true
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
Loading…
Reference in New Issue