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