Merge "Hide tethering option when in a guest account" into rvc-qpr-dev
diff --git a/src/com/android/settings/connecteddevice/usb/UsbBackend.java b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
index 556f76d..4773aca 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbBackend.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
@@ -50,6 +50,7 @@
private final boolean mTetheringRestrictedBySystem;
private final boolean mMidiSupported;
private final boolean mTetheringSupported;
+ private final boolean mIsAdminUser;
private UsbManager mUsbManager;
@@ -70,6 +71,7 @@
mFileTransferRestrictedBySystem = isUsbFileTransferRestrictedBySystem(userManager);
mTetheringRestricted = isUsbTetheringRestricted(userManager);
mTetheringRestrictedBySystem = isUsbTetheringRestrictedBySystem(userManager);
+ mIsAdminUser = userManager.isAdminUser();
mMidiSupported = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI);
ConnectivityManager cm =
@@ -100,7 +102,8 @@
|| (!mTetheringSupported && (functions & UsbManager.FUNCTION_RNDIS) != 0)) {
return false;
}
- return !(areFunctionDisallowed(functions) || areFunctionsDisallowedBySystem(functions));
+ return !(areFunctionDisallowed(functions) || areFunctionsDisallowedBySystem(functions)
+ || areFunctionsDisallowedByNonAdminUser(functions));
}
public int getPowerRole() {
@@ -207,6 +210,11 @@
|| (mTetheringRestrictedBySystem && ((functions & UsbManager.FUNCTION_RNDIS) != 0));
}
+ @VisibleForTesting
+ boolean areFunctionsDisallowedByNonAdminUser(long functions) {
+ return !mIsAdminUser && (functions & UsbManager.FUNCTION_RNDIS) != 0;
+ }
+
private void updatePorts() {
mPort = null;
mPortStatus = null;
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java
index 4e5897d..b816a18 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java
@@ -181,4 +181,24 @@
assertThat(usbBackend.areFunctionsSupported(UsbManager.FUNCTION_MTP)).isTrue();
}
+
+ @Test
+ public void areFunctionsDisallowedByNonAdminUser_isAdminUser_returnFalse() {
+ when(mUserManager.isAdminUser()).thenReturn(true);
+
+ final UsbBackend usbBackend = new UsbBackend(mContext, mUserManager);
+
+ assertThat(usbBackend.areFunctionsDisallowedByNonAdminUser(
+ UsbManager.FUNCTION_RNDIS)).isFalse();
+ }
+
+ @Test
+ public void areFunctionsDisallowedByNonAdminUser_isNotAdminUser_returnTrue() {
+ when(mUserManager.isAdminUser()).thenReturn(false);
+
+ final UsbBackend usbBackend = new UsbBackend(mContext, mUserManager);
+
+ assertThat(usbBackend.areFunctionsDisallowedByNonAdminUser(
+ UsbManager.FUNCTION_RNDIS)).isTrue();
+ }
}