DO NOT MERGE - Merge RQ1A.201205.011
Bug: 172690556 Merged-In: I3f7d41c196569c0cb61e89cfc270b957e2f0add5 Change-Id: Id2d9c4f56beae280e6299b6695185577a1521345
This commit is contained in:
@@ -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;
|
||||||
|
@@ -365,9 +365,15 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int getPreferredNetworkMode() {
|
private int getPreferredNetworkMode() {
|
||||||
return Settings.Global.getInt(mContext.getContentResolver(),
|
int networkMode = Settings.Global.getInt(mContext.getContentResolver(),
|
||||||
Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
|
Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
|
||||||
TelephonyManager.DEFAULT_PREFERRED_NETWORK_MODE);
|
TelephonyManager.DEFAULT_PREFERRED_NETWORK_MODE);
|
||||||
|
if (!showNrList()) {
|
||||||
|
Log.d(LOG_TAG, "Network mode :" + networkMode + " reduce NR");
|
||||||
|
networkMode = reduceNrToLteNetworkType(networkMode);
|
||||||
|
}
|
||||||
|
Log.d(LOG_TAG, "getPreferredNetworkMode: " + networkMode);
|
||||||
|
return networkMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
private EnabledNetworks getEnabledNetworkType() {
|
private EnabledNetworks getEnabledNetworkType() {
|
||||||
@@ -635,6 +641,40 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transform NR5G network mode to LTE network mode.
|
||||||
|
*
|
||||||
|
* @param networkType an 5G network mode.
|
||||||
|
* @return the corresponding network mode without 5G.
|
||||||
|
*/
|
||||||
|
private static int reduceNrToLteNetworkType(int networkType) {
|
||||||
|
switch(networkType) {
|
||||||
|
case TelephonyManagerConstants.NETWORK_MODE_NR_LTE:
|
||||||
|
return TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY;
|
||||||
|
case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO:
|
||||||
|
return TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO;
|
||||||
|
case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA:
|
||||||
|
return TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA;
|
||||||
|
case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA:
|
||||||
|
return TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA;
|
||||||
|
case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_WCDMA:
|
||||||
|
return TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA;
|
||||||
|
case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA:
|
||||||
|
return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA;
|
||||||
|
case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM:
|
||||||
|
return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM;
|
||||||
|
case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA:
|
||||||
|
return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA;
|
||||||
|
case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA:
|
||||||
|
return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA;
|
||||||
|
case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
|
||||||
|
return TelephonyManagerConstants
|
||||||
|
.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
|
||||||
|
default:
|
||||||
|
return networkType; // do nothing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void setPreferenceValueAndSummary() {
|
private void setPreferenceValueAndSummary() {
|
||||||
setPreferenceValueAndSummary(getPreferredNetworkMode());
|
setPreferenceValueAndSummary(getPreferredNetworkMode());
|
||||||
}
|
}
|
||||||
|
@@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -221,6 +221,28 @@ public class EnabledNetworkModePreferenceControllerTest {
|
|||||||
TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
|
TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateState_NrEnableBoolFalse_5gOptionHidden() {
|
||||||
|
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
|
||||||
|
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
|
||||||
|
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_NR_ENABLED_BOOL, false);
|
||||||
|
|
||||||
|
mController.init(mLifecycle, SUB_ID);
|
||||||
|
Settings.Global.putInt(mContext.getContentResolver(),
|
||||||
|
Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
|
||||||
|
TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
|
||||||
|
|
||||||
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
|
assertThat(mPreference.getValue()).isEqualTo(
|
||||||
|
String.valueOf(
|
||||||
|
TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
|
||||||
|
assertThat(mPreference.getEntryValues())
|
||||||
|
.asList()
|
||||||
|
.doesNotContain(
|
||||||
|
String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateState_GlobalDisAllowed5g_GlobalWithoutNR() {
|
public void updateState_GlobalDisAllowed5g_GlobalWithoutNR() {
|
||||||
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
|
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
|
||||||
@@ -393,6 +415,11 @@ public class EnabledNetworkModePreferenceControllerTest {
|
|||||||
} else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA) {
|
} else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA) {
|
||||||
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
|
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
|
||||||
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
|
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
|
||||||
|
} else if (networkMode
|
||||||
|
== TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA) {
|
||||||
|
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
|
||||||
|
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true);
|
||||||
|
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -407,6 +434,6 @@ public class EnabledNetworkModePreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void mockPhoneType(int phoneType) {
|
private void mockPhoneType(int phoneType) {
|
||||||
doReturn(TelephonyManager.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
|
doReturn(phoneType).when(mTelephonyManager).getPhoneType();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user