Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78799a55 authored by Lin Yuan's avatar Lin Yuan
Browse files

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: https://screenshot.googleplex.com/AqvEW2kTrQT2Ufp

Bug: 228315522
Bug: 228315529
Test: manually on sunfish flashed with rvc.
Change-Id: I6ef64a34764e52de7b461e87ea0af40a6d050587
parent 8ddd1d70
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -17,13 +17,13 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
        android:title="@string/location_scanning_screen_title">

        <SwitchPreference
        <com.android.settingslib.RestrictedSwitchPreference
            android:title="@string/location_scanning_wifi_always_scanning_title"
            android:summary="@string/location_scanning_wifi_always_scanning_description"
            android:defaultValue="true"
            android:key="wifi_always_scanning" />

        <SwitchPreference
        <com.android.settingslib.RestrictedSwitchPreference
            android:title="@string/location_scanning_bluetooth_always_scanning_title"
            android:summary="@string/location_scanning_bluetooth_always_scanning_description"
            android:defaultValue="true"
+11 −0
Original line number Diff line number Diff line
@@ -14,12 +14,17 @@
package com.android.settings.location;

import android.content.Context;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;

import androidx.preference.Preference;
import androidx.preference.SwitchPreference;

import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.core.AbstractPreferenceController;

public class BluetoothScanningPreferenceController extends AbstractPreferenceController
@@ -46,6 +51,12 @@ public class BluetoothScanningPreferenceController extends AbstractPreferenceCon
        ((SwitchPreference) preference).setChecked(
                Settings.Global.getInt(mContext.getContentResolver(),
                        Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE, 0) == 1);
        final RestrictedLockUtils.EnforcedAdmin admin =
            RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
                mContext, UserManager.DISALLOW_CONFIG_LOCATION, UserHandle.myUserId());
        if (admin != null) {
          ((RestrictedSwitchPreference) preference).setDisabledByAdmin(admin);
        }
    }

    @Override
+11 −0
Original line number Diff line number Diff line
@@ -14,12 +14,17 @@
package com.android.settings.location;

import android.content.Context;
import android.os.UserHandle;
import android.os.UserManager;
import android.net.wifi.WifiManager;

import androidx.preference.Preference;
import androidx.preference.SwitchPreference;

import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.core.AbstractPreferenceController;

public class WifiScanningPreferenceController extends AbstractPreferenceController
@@ -46,6 +51,12 @@ public class WifiScanningPreferenceController extends AbstractPreferenceControll
    @Override
    public void updateState(Preference preference) {
        ((SwitchPreference) preference).setChecked(mWifiManager.isScanAlwaysAvailable());
        final RestrictedLockUtils.EnforcedAdmin admin =
            RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
                mContext, UserManager.DISALLOW_CONFIG_LOCATION, UserHandle.myUserId());
        if (admin != null) {
          ((RestrictedSwitchPreference) preference).setDisabledByAdmin(admin);
        }
    }

    @Override