Consider Private DNS user restriction
As a new user restriction, to disallow changing Private DNS settings, was added, make the Private DNS mode dialog preference consider whether to let the user modify it or not based on the presence of this restriction. Bug: 112982691 Test: atest com.android.cts.devicepolicy.DeviceOwnerTest#testPrivateDnsPolicy Test: m -j RunSettingsRoboTests ROBOTEST_FILTER=PrivateDnsPreferenceControllerTest Test: Manual, using TestDPC Change-Id: If815860ace3aadf6f79fd23173f0a2c80a29f0e1
This commit is contained in:
@@ -34,6 +34,8 @@ import android.net.Network;
|
||||
import android.net.Uri;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
@@ -46,6 +48,8 @@ import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.util.List;
|
||||
@@ -136,6 +140,19 @@ public class PrivateDnsPreferenceController extends BasePreferenceController
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
super.updateState(preference);
|
||||
//TODO(b/112982691): Add policy transparency explaining why this setting is disabled.
|
||||
preference.setEnabled(!isManagedByAdmin());
|
||||
}
|
||||
|
||||
private boolean isManagedByAdmin() {
|
||||
EnforcedAdmin enforcedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
|
||||
mContext, UserManager.DISALLOW_CONFIG_PRIVATE_DNS, UserHandle.myUserId());
|
||||
return enforcedAdmin != null;
|
||||
}
|
||||
|
||||
private class PrivateDnsSettingsObserver extends ContentObserver {
|
||||
public PrivateDnsSettingsObserver(Handler h) {
|
||||
super(h);
|
||||
|
Reference in New Issue
Block a user