Add option to disable 5G-NSA disambiguation

PiperOrigin-RevId: 384575860
This commit is contained in:
olly 2021-07-14 00:25:24 +01:00 committed by Oliver Woodman
parent e403dda105
commit 3670541465

View File

@ -59,6 +59,7 @@ public final class NetworkTypeObserver {
}
@Nullable private static NetworkTypeObserver staticInstance;
private static volatile boolean disable5GNsaDisambiguation;
private final Handler mainHandler;
// This class needs to hold weak references as it doesn't require listeners to unregister.
@ -69,6 +70,11 @@ public final class NetworkTypeObserver {
@C.NetworkType
private int networkType;
/** Disables logic to disambiguate 5G-NSA networks from 4G networks. */
public static void disable5GNsaDisambiguation() {
disable5GNsaDisambiguation = true;
}
/**
* Returns a network type observer instance.
*
@ -217,7 +223,7 @@ public final class NetworkTypeObserver {
@Override
public void onReceive(Context context, Intent intent) {
@C.NetworkType int networkType = getNetworkTypeFromConnectivityManager(context);
if (networkType == C.NETWORK_TYPE_4G && Util.SDK_INT >= 29) {
if (Util.SDK_INT >= 29 && !disable5GNsaDisambiguation && networkType == C.NETWORK_TYPE_4G) {
// Delay update of the network type to check whether this is actually 5G-NSA.
try {
// We can't access TelephonyManager getters like getServiceState() directly as they