ui: port syspolicy handler code to new app (#304)
* ui: port syspolicy handler code to new app port over https://github.com/tailscale/tailscale-android/pull/199 from cmd/tailscale and legacy_android to libtailscale and android/ Updates tailscale/corp#18202 Signed-off-by: kari-ts <kari@tailscale.com> * android: PR suggestions for syspolicyHandler (#308) Updates tailscale/corp#18202 Signed-off-by: Percy Wegmann <percy@tailscale.com> --------- Signed-off-by: kari-ts <kari@tailscale.com> Signed-off-by: Percy Wegmann <percy@tailscale.com> Co-authored-by: Percy Wegmann <percy@tailscale.com>pull/309/head
parent
a3638f9fc7
commit
6a00880f61
@ -0,0 +1,47 @@
|
||||
// Copyright (c) Tailscale Inc & AUTHORS
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
package libtailscale
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"tailscale.com/util/syspolicy"
|
||||
)
|
||||
|
||||
// syspolicyHandler is a syspolicy handler for the Android version of the Tailscale client,
|
||||
// which lets the main networking code read values set via the Android RestrictionsManager.
|
||||
type syspolicyHandler struct {
|
||||
a *App
|
||||
}
|
||||
|
||||
func (h syspolicyHandler) ReadString(key string) (string, error) {
|
||||
if key == "" {
|
||||
return "", syspolicy.ErrNoSuchKey
|
||||
}
|
||||
retVal, err := h.a.appCtx.GetSyspolicyStringValue(key)
|
||||
if err != nil {
|
||||
log.Printf("syspolicy: failed to get string value via gomobile: %v", err)
|
||||
}
|
||||
return retVal, err
|
||||
}
|
||||
|
||||
func (h syspolicyHandler) ReadBoolean(key string) (bool, error) {
|
||||
if key == "" {
|
||||
return false, syspolicy.ErrNoSuchKey
|
||||
}
|
||||
retVal, err := h.a.appCtx.GetSyspolicyBooleanValue(key)
|
||||
if err != nil {
|
||||
log.Printf("syspolicy: failed to get bool value via gomobile: %v", err)
|
||||
}
|
||||
return retVal, err
|
||||
}
|
||||
|
||||
func (h syspolicyHandler) ReadUInt64(key string) (uint64, error) {
|
||||
if key == "" {
|
||||
return 0, syspolicy.ErrNoSuchKey
|
||||
}
|
||||
// TODO(angott): drop ReadUInt64 everywhere. We are not using it.
|
||||
log.Fatalf("ReadUInt64 is not implemented on Android")
|
||||
return 0, nil
|
||||
}
|
Loading…
Reference in New Issue