Merge "Hide tethering option when in a guest account" into rvc-qpr-dev

This commit is contained in:
TreeHugger Robot
2020-10-06 02:06:23 +00:00
committed by Android (Google) Code Review
2 changed files with 29 additions and 1 deletions

View File

@@ -50,6 +50,7 @@ public class UsbBackend {
private final boolean mTetheringRestrictedBySystem; private final boolean mTetheringRestrictedBySystem;
private final boolean mMidiSupported; private final boolean mMidiSupported;
private final boolean mTetheringSupported; private final boolean mTetheringSupported;
private final boolean mIsAdminUser;
private UsbManager mUsbManager; private UsbManager mUsbManager;
@@ -70,6 +71,7 @@ public class UsbBackend {
mFileTransferRestrictedBySystem = isUsbFileTransferRestrictedBySystem(userManager); mFileTransferRestrictedBySystem = isUsbFileTransferRestrictedBySystem(userManager);
mTetheringRestricted = isUsbTetheringRestricted(userManager); mTetheringRestricted = isUsbTetheringRestricted(userManager);
mTetheringRestrictedBySystem = isUsbTetheringRestrictedBySystem(userManager); mTetheringRestrictedBySystem = isUsbTetheringRestrictedBySystem(userManager);
mIsAdminUser = userManager.isAdminUser();
mMidiSupported = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI); mMidiSupported = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI);
ConnectivityManager cm = ConnectivityManager cm =
@@ -100,7 +102,8 @@ public class UsbBackend {
|| (!mTetheringSupported && (functions & UsbManager.FUNCTION_RNDIS) != 0)) { || (!mTetheringSupported && (functions & UsbManager.FUNCTION_RNDIS) != 0)) {
return false; return false;
} }
return !(areFunctionDisallowed(functions) || areFunctionsDisallowedBySystem(functions)); return !(areFunctionDisallowed(functions) || areFunctionsDisallowedBySystem(functions)
|| areFunctionsDisallowedByNonAdminUser(functions));
} }
public int getPowerRole() { public int getPowerRole() {
@@ -207,6 +210,11 @@ public class UsbBackend {
|| (mTetheringRestrictedBySystem && ((functions & UsbManager.FUNCTION_RNDIS) != 0)); || (mTetheringRestrictedBySystem && ((functions & UsbManager.FUNCTION_RNDIS) != 0));
} }
@VisibleForTesting
boolean areFunctionsDisallowedByNonAdminUser(long functions) {
return !mIsAdminUser && (functions & UsbManager.FUNCTION_RNDIS) != 0;
}
private void updatePorts() { private void updatePorts() {
mPort = null; mPort = null;
mPortStatus = null; mPortStatus = null;

View File

@@ -181,4 +181,24 @@ public class UsbBackendTest {
assertThat(usbBackend.areFunctionsSupported(UsbManager.FUNCTION_MTP)).isTrue(); 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();
}
} }