github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/service/appstate.go (about) 1 // Copyright 2017 Keybase, Inc. All rights reserved. Use of 2 // this source code is governed by the included BSD license. 3 4 package service 5 6 import ( 7 "fmt" 8 "strings" 9 10 "github.com/keybase/client/go/libkb" 11 "github.com/keybase/client/go/protocol/keybase1" 12 "github.com/keybase/go-framed-msgpack-rpc/rpc" 13 "golang.org/x/net/context" 14 ) 15 16 type appStateHandler struct { 17 *BaseHandler 18 libkb.Contextified 19 } 20 21 func newAppStateHandler(xp rpc.Transporter, g *libkb.GlobalContext) *appStateHandler { 22 return &appStateHandler{ 23 BaseHandler: NewBaseHandler(g, xp), 24 Contextified: libkb.NewContextified(g), 25 } 26 } 27 28 func (a *appStateHandler) UpdateAppState(ctx context.Context, state keybase1.MobileAppState) (err error) { 29 a.G().Trace(fmt.Sprintf("UpdateAppState(%v)", state), &err)() 30 31 // Update app state 32 a.G().MobileAppState.Update(state) 33 return nil 34 } 35 36 func (a *appStateHandler) UpdateMobileNetState(ctx context.Context, stateStr string) (err error) { 37 a.G().Log.CDebugf(ctx, "UpdateMobileNetState(%v)", stateStr) 38 39 // normalize what the frontend gives us, `bluetooth`, `ethernet`, and 40 // `wimax` are android only values. 41 var state keybase1.MobileNetworkState 42 switch stateStr { 43 case "bluetooth", "ethernet": 44 stateStr = "wifi" 45 case "wimax": 46 stateStr = "cellular" 47 } 48 49 state, ok := keybase1.MobileNetworkStateMap[strings.ToUpper(stateStr)] 50 if !ok { 51 state = keybase1.MobileNetworkState_UNKNOWN 52 } 53 a.G().MobileNetState.Update(state) 54 return nil 55 } 56 57 func (a *appStateHandler) PowerMonitorEvent(ctx context.Context, event string) (err error) { 58 a.G().Log.CDebugf(ctx, "PowerMonitorEvent(%v)", event) 59 a.G().DesktopAppState.Update(a.MetaContext(ctx), event, a.xp) 60 return nil 61 }