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

Commit 7591fff2 authored by Lin Yuan's avatar Lin Yuan
Browse files

Fix: Bluetooth and Wifi scanning location MainSwitch page policy transparency.

When DISALLOW_CONFIG_LOCATION is set, make location service's
MainSwitchPreference pages for wifi scanning and bluetooth scanning
unavailable too, so that intent direct access is disabled.

screenshot: http://shortn/_kkK3BMTSh1

Bug: 277333746
Bug: 277333781
Test: atest SettingsRoboTests, on device
Change-Id: I52f9a11b1dd78a5e5dbb1bbde3cda7381c87ae39
parent cfacc2ac
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.location;
import android.content.Context;
import android.provider.Settings;
import android.widget.Switch;
import android.os.UserManager;

import androidx.preference.PreferenceScreen;

@@ -33,9 +34,11 @@ public class BluetoothScanningMainSwitchPreferenceController extends TogglePrefe
        implements OnMainSwitchChangeListener {

    private static final String KEY_BLUETOOTH_SCANNING_SWITCH = "bluetooth_always_scanning_switch";
    private final UserManager mUserManager;

    public BluetoothScanningMainSwitchPreferenceController(Context context) {
        super(context, KEY_BLUETOOTH_SCANNING_SWITCH);
        mUserManager = UserManager.get(context);
    }

    @Override
@@ -49,7 +52,9 @@ public class BluetoothScanningMainSwitchPreferenceController extends TogglePrefe
    @Override
    public int getAvailabilityStatus() {
        return mContext.getResources().getBoolean(R.bool.config_show_location_scanning)
                ? AVAILABLE
                ? (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_LOCATION)
                        ? DISABLED_DEPENDENT_SETTING
                        : AVAILABLE)
                : UNSUPPORTED_ON_DEVICE;
    }

+6 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.location;
import android.content.Context;
import android.net.wifi.WifiManager;
import android.widget.Switch;
import android.os.UserManager;

import androidx.preference.PreferenceScreen;

@@ -34,10 +35,12 @@ public class WifiScanningMainSwitchPreferenceController extends TogglePreference

    private static final String KEY_WIFI_SCANNING_SWITCH = "wifi_always_scanning_switch";
    private final WifiManager mWifiManager;
    private final UserManager mUserManager;

    public WifiScanningMainSwitchPreferenceController(Context context) {
        super(context, KEY_WIFI_SCANNING_SWITCH);
        mWifiManager = context.getSystemService(WifiManager.class);
        mUserManager = UserManager.get(context);
    }

    @Override
@@ -52,7 +55,9 @@ public class WifiScanningMainSwitchPreferenceController extends TogglePreference
    @Override
    public int getAvailabilityStatus() {
        return mContext.getResources().getBoolean(R.bool.config_show_location_scanning)
                ? AVAILABLE
                ? (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_LOCATION)
                       ? DISABLED_DEPENDENT_SETTING
                       : AVAILABLE)
                : UNSUPPORTED_ON_DEVICE;
    }