RESTRICT AUTOMERGE Fix: policy enforcement for location wifi scanning

Make DISALLOW_CONFIG_LOCATION effectively disallow wifi scanning and
bluetooth scanning settings for location services.

screenshots: http://shortn/_EUOdqrOcnS, http://shortn/_j320QDm1Zo

Bug: 228315522
Bug: 228315529
Test: atest SettingsRoboTests, on device

Change-Id: I78291579a79e915a27ebdd051b3caf3fc04efc41
(cherry picked from commit fcae147f58be3b6441ce9e03bc59515af0d53ccc)
(cherry picked from commit 2598a722aef1a65fec2d9b66baf9e800fc72a7b5)
Merged-In: I78291579a79e915a27ebdd051b3caf3fc04efc41
diff --git a/res/xml/location_services.xml b/res/xml/location_services.xml
index 2de4e7b..04eff23 100644
--- a/res/xml/location_services.xml
+++ b/res/xml/location_services.xml
@@ -23,13 +23,13 @@
             android:layout="@layout/preference_category_no_label"
             settings:controller="com.android.settings.location.LocationInjectedServicesPreferenceController"/>
 
-        <Preference
+        <com.android.settingslib.RestrictedPreference
             android:fragment="com.android.settings.location.WifiScanningFragment"
             android:key="location_services_wifi_scanning"
             android:title="@string/location_scanning_wifi_always_scanning_title"
             settings:controller="com.android.settings.location.LocationServicesWifiScanningPreferenceController"/>
 
-        <Preference
+        <com.android.settingslib.RestrictedPreference
             android:fragment="com.android.settings.location.BluetoothScanningFragment"
             android:key="location_services_bluetooth_scanning"
             android:title="@string/location_scanning_bluetooth_always_scanning_title"
diff --git a/src/com/android/settings/location/LocationServicesBluetoothScanningPreferenceController.java b/src/com/android/settings/location/LocationServicesBluetoothScanningPreferenceController.java
index 9913848..ccda572 100644
--- a/src/com/android/settings/location/LocationServicesBluetoothScanningPreferenceController.java
+++ b/src/com/android/settings/location/LocationServicesBluetoothScanningPreferenceController.java
@@ -16,10 +16,14 @@
 package com.android.settings.location;
 
 import android.content.Context;
+import android.os.UserManager;
 import android.provider.Settings;
 
+import androidx.preference.Preference;
+
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.RestrictedPreference;
 
 /**
  * Preference controller for Bluetooth scanning in Location Services.
@@ -32,6 +36,13 @@
     }
 
     @Override
+    public void updateState(Preference preference) {
+        ((RestrictedPreference) preference).checkRestrictionAndSetDisabled(
+                UserManager.DISALLOW_CONFIG_LOCATION);
+        refreshSummary(preference);
+    }
+
+    @Override
     public CharSequence getSummary() {
         final boolean bleScanOn = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE, 0) == 1;
diff --git a/src/com/android/settings/location/LocationServicesWifiScanningPreferenceController.java b/src/com/android/settings/location/LocationServicesWifiScanningPreferenceController.java
index 080a023..2814f9d 100644
--- a/src/com/android/settings/location/LocationServicesWifiScanningPreferenceController.java
+++ b/src/com/android/settings/location/LocationServicesWifiScanningPreferenceController.java
@@ -17,9 +17,13 @@
 
 import android.content.Context;
 import android.net.wifi.WifiManager;
+import android.os.UserManager;
+
+import androidx.preference.Preference;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.RestrictedPreference;
 
 /**
  * Preference controller for Wi-Fi scanning in Location Services.
@@ -34,6 +38,13 @@
     }
 
     @Override
+    public void updateState(Preference preference) {
+        ((RestrictedPreference) preference).checkRestrictionAndSetDisabled(
+                UserManager.DISALLOW_CONFIG_LOCATION);
+        refreshSummary(preference);
+    }
+
+    @Override
     public CharSequence getSummary() {
         final boolean wifiScanOn = mWifiManager.isScanAlwaysAvailable();
         int resId =