Merge "Reverted to the old logic for APN selection" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-06-24 22:34:53 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 38 deletions

View File

@@ -16,8 +16,6 @@
package android.telephony;
import static android.telephony.TelephonyManager.NETWORK_TYPE_BITMASK_UNKNOWN;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -1607,12 +1605,6 @@ public class ServiceState implements Parcelable {
}
}
/** @hide */
public static int networkTypeToAccessNetworkType(@TelephonyManager.NetworkType
int networkType) {
return rilRadioTechnologyToAccessNetworkType(networkTypeToRilRadioTechnology(networkType));
}
/**
* Get current data network type.
*
@@ -1738,36 +1730,6 @@ public class ServiceState implements Parcelable {
return false;
}
/**
*
* Returns whether the bearerBitmask includes a networkType that matches the accessNetworkType.
*
* The NetworkType refers to NetworkType in TelephonyManager. For example
* {@link TelephonyManager#NETWORK_TYPE_GPRS}.
*
* The accessNetworkType refers to {@link AccessNetworkType}.
*
* @hide
* */
public static boolean networkBitmaskHasAccessNetworkType(
@TelephonyManager.NetworkTypeBitMask int networkBitmask, int accessNetworkType) {
if (networkBitmask == NETWORK_TYPE_BITMASK_UNKNOWN) return true;
if (accessNetworkType == AccessNetworkType.UNKNOWN) return false;
int networkType = 1;
while (networkBitmask != 0) {
if ((networkBitmask & 1) != 0) {
if (networkTypeToAccessNetworkType(networkType) == accessNetworkType) {
return true;
}
}
networkBitmask = networkBitmask >> 1;
networkType++;
}
return false;
}
/** @hide */
public static int getBitmaskForTech(int radioTech) {
if (radioTech >= 1) {

View File

@@ -1417,6 +1417,28 @@ public class ApnSetting implements Parcelable {
return port == UNSPECIFIED_INT ? null : Integer.toString(port);
}
/**
* Check if this APN setting can support the given network
*
* @param networkType The network type
* @return {@code true} if this APN setting can support the given network.
*
* @hide
*/
public boolean canSupportNetworkType(@TelephonyManager.NetworkType int networkType) {
// Do a special checking for GSM. In reality, GSM is a voice only network type and can never
// be used for data. We allow it here because in some DSDS corner cases, on the non-DDS
// sub, modem reports data rat unknown. In that case if voice is GSM and this APN supports
// GPRS or EDGE, this APN setting should be selected.
if (networkType == TelephonyManager.NETWORK_TYPE_GSM
&& (mNetworkTypeBitmask & (TelephonyManager.NETWORK_TYPE_BITMASK_GPRS
| TelephonyManager.NETWORK_TYPE_BITMASK_EDGE)) != 0) {
return true;
}
return ServiceState.bitmaskHasTech(mNetworkTypeBitmask, networkType);
}
// Implement Parcelable.
@Override
/** @hide */