Part3 - Don't add padlock if the restriction is not set by admin.
Bug: 26687435 Change-Id: Ibfea6d7d5bd32e7a05dcc2cc32b121c9e50b6a34
This commit is contained in:
@@ -395,7 +395,10 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
|
||||
EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(
|
||||
getActivity(), UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA,
|
||||
UserHandle.myUserId());
|
||||
if (admin != null) {
|
||||
boolean hasBaseUserRestriction = RestrictedLockUtils.hasBaseUserRestriction(
|
||||
getActivity(), UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA,
|
||||
UserHandle.myUserId());
|
||||
if (admin != null && !hasBaseUserRestriction) {
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getActivity(), admin);
|
||||
return;
|
||||
}
|
||||
|
@@ -22,6 +22,7 @@ import android.content.pm.PackageManager;
|
||||
import android.hardware.usb.UsbManager;
|
||||
import android.hardware.usb.UsbPort;
|
||||
import android.hardware.usb.UsbPortStatus;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
|
||||
public class UsbBackend {
|
||||
@@ -37,6 +38,7 @@ public class UsbBackend {
|
||||
public static final int MODE_DATA_MIDI = 0x03 << 1;
|
||||
|
||||
private final boolean mRestricted;
|
||||
private final boolean mRestrictedBySystem;
|
||||
private final boolean mMidi;
|
||||
|
||||
private UserManager mUserManager;
|
||||
@@ -56,6 +58,8 @@ public class UsbBackend {
|
||||
mUsbManager = context.getSystemService(UsbManager.class);
|
||||
|
||||
mRestricted = mUserManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER);
|
||||
mRestrictedBySystem = mUserManager.hasBaseUserRestriction(
|
||||
UserManager.DISALLOW_USB_FILE_TRANSFER, UserHandle.of(UserHandle.myUserId()));
|
||||
mMidi = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI);
|
||||
|
||||
UsbPort[] ports = mUsbManager.getPorts();
|
||||
@@ -134,7 +138,7 @@ public class UsbBackend {
|
||||
? UsbPort.POWER_ROLE_SOURCE : UsbPort.POWER_ROLE_SINK;
|
||||
}
|
||||
|
||||
public boolean isModeDisallowedByAdmin(int mode) {
|
||||
public boolean isModeDisallowed(int mode) {
|
||||
if (mRestricted && (mode & MODE_DATA_MASK) != MODE_DATA_NONE
|
||||
&& (mode & MODE_DATA_MASK) != MODE_DATA_MIDI) {
|
||||
// No USB data modes are supported.
|
||||
@@ -143,6 +147,15 @@ public class UsbBackend {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isModeDisallowedBySystem(int mode) {
|
||||
if (mRestrictedBySystem && (mode & MODE_DATA_MASK) != MODE_DATA_NONE
|
||||
&& (mode & MODE_DATA_MASK) != MODE_DATA_MIDI) {
|
||||
// No USB data modes are supported.
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isModeSupported(int mode) {
|
||||
if (!mMidi && (mode & MODE_DATA_MASK) == MODE_DATA_MIDI) {
|
||||
return false;
|
||||
|
@@ -106,9 +106,10 @@ public class UsbModeChooserActivity extends Activity {
|
||||
mBackend = new UsbBackend(this);
|
||||
int current = mBackend.getCurrentMode();
|
||||
for (int i = 0; i < DEFAULT_MODES.length; i++) {
|
||||
if (mBackend.isModeSupported(DEFAULT_MODES[i])) {
|
||||
if (mBackend.isModeSupported(DEFAULT_MODES[i])
|
||||
&& !mBackend.isModeDisallowedBySystem(DEFAULT_MODES[i])) {
|
||||
inflateOption(DEFAULT_MODES[i], current == DEFAULT_MODES[i], container,
|
||||
mBackend.isModeDisallowedByAdmin(DEFAULT_MODES[i]));
|
||||
mBackend.isModeDisallowed(DEFAULT_MODES[i]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user