Skip to content

Commit

Permalink
Fix: Bluetooth and Wifi scanning location MainSwitch page policy tran…
Browse files Browse the repository at this point in the history
…sparency.

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
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:7591fff234886e79c5d0210a2cf3282a69de9be9)
Merged-In: I52f9a11b1dd78a5e5dbb1bbde3cda7381c87ae39
Change-Id: I52f9a11b1dd78a5e5dbb1bbde3cda7381c87ae39
  • Loading branch information
Lin Yuan authored and whyredfire committed Jul 6, 2023
1 parent 39778f4 commit cdfc6da
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
Expand Up @@ -18,6 +18,7 @@
import android.content.Context;
import android.provider.Settings;
import android.widget.Switch;
import android.os.UserManager;

import androidx.preference.PreferenceScreen;

Expand All @@ -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
Expand All @@ -49,7 +52,9 @@ public void displayPreference(PreferenceScreen screen) {
@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;
}

Expand Down
Expand Up @@ -18,6 +18,7 @@
import android.content.Context;
import android.net.wifi.WifiManager;
import android.widget.Switch;
import android.os.UserManager;

import androidx.preference.PreferenceScreen;

Expand All @@ -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
Expand All @@ -52,7 +55,9 @@ public void displayPreference(PreferenceScreen screen) {
@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;
}

Expand Down

0 comments on commit cdfc6da

Please sign in to comment.