You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale-android/android/src/main/java/com/tailscale/ipn/mdm/MDMSettings.kt

38 lines
1.4 KiB
Kotlin

// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
package com.tailscale.ipn.mdm
import android.content.RestrictionsManager
import com.tailscale.ipn.App
class MDMSettings(private val restrictionsManager: RestrictionsManager? = null) {
// TODO(angott): implement a typed enum string array type
val hiddenNetworkDevices: List<NetworkDevices> = emptyList()
fun get(setting: BooleanSetting): Boolean {
restrictionsManager?.let { restrictionsManager ->
restrictionsManager.applicationRestrictions.containsKey(setting.key)
return restrictionsManager.applicationRestrictions.getBoolean(setting.key)
} ?: run {
return App.getApplication().encryptedPrefs.getBoolean(setting.key, false)
}
}
fun get(setting: StringSetting): String? {
return App.getApplication().encryptedPrefs.getString(setting.key, null)
}
fun get(setting: AlwaysNeverUserDecidesSetting): AlwaysNeverUserDecidesValue {
val storedString = App.getApplication().encryptedPrefs.getString(setting.key, "user-decides")
?: "user-decides"
return AlwaysNeverUserDecidesValue.valueOf(storedString)
}
fun get(setting: ShowHideSetting): ShowHideValue {
val storedString = App.getApplication().encryptedPrefs.getString(setting.key, "show")
?: "show"
return ShowHideValue.valueOf(storedString)
}
}