Update BarringInfo as Barring HAL date stuctures updated

Bug: 148102466
Test: atest BarringInfoTest
Merged-In: I04993b2dcef276f5af7d0780f954393838b77f8e
Change-Id: I04993b2dcef276f5af7d0780f954393838b77f8e
(cherry picked from commit 7ce04ea387)
This commit is contained in:
Rambo Wang
2020-01-29 16:20:53 -08:00
committed by Nathan Harold
parent 3c5e57cd07
commit 2251158835

View File

@@ -62,38 +62,38 @@ public final class BarringInfo implements Parcelable {
/* Applicabe to UTRAN */
/** Barring indicator for circuit-switched service; applicable to UTRAN */
public static final int BARRING_SERVICE_TYPE_CS_SERVICE =
android.hardware.radio.V1_5.BarringServiceType.CS_SERVICE;
android.hardware.radio.V1_5.BarringInfo.ServiceType.CS_SERVICE;
/** Barring indicator for packet-switched service; applicable to UTRAN */
public static final int BARRING_SERVICE_TYPE_PS_SERVICE =
android.hardware.radio.V1_5.BarringServiceType.PS_SERVICE;
android.hardware.radio.V1_5.BarringInfo.ServiceType.PS_SERVICE;
/** Barring indicator for circuit-switched voice service; applicable to UTRAN */
public static final int BARRING_SERVICE_TYPE_CS_VOICE =
android.hardware.radio.V1_5.BarringServiceType.CS_VOICE;
android.hardware.radio.V1_5.BarringInfo.ServiceType.CS_VOICE;
/* Applicable to EUTRAN, NGRAN */
/** Barring indicator for mobile-originated signalling; applicable to EUTRAN and NGRAN */
public static final int BARRING_SERVICE_TYPE_MO_SIGNALLING =
android.hardware.radio.V1_5.BarringServiceType.MO_SIGNALLING;
android.hardware.radio.V1_5.BarringInfo.ServiceType.MO_SIGNALLING;
/** Barring indicator for mobile-originated data traffic; applicable to EUTRAN and NGRAN */
public static final int BARRING_SERVICE_TYPE_MO_DATA =
android.hardware.radio.V1_5.BarringServiceType.MO_DATA;
android.hardware.radio.V1_5.BarringInfo.ServiceType.MO_DATA;
/** Barring indicator for circuit-switched fallback for voice; applicable to EUTRAN and NGRAN */
public static final int BARRING_SERVICE_TYPE_CS_FALLBACK =
android.hardware.radio.V1_5.BarringServiceType.CS_FALLBACK;
android.hardware.radio.V1_5.BarringInfo.ServiceType.CS_FALLBACK;
/** Barring indicator for MMTEL (IMS) voice; applicable to EUTRAN and NGRAN */
public static final int BARRING_SERVICE_TYPE_MMTEL_VOICE =
android.hardware.radio.V1_5.BarringServiceType.MMTEL_VOICE;
android.hardware.radio.V1_5.BarringInfo.ServiceType.MMTEL_VOICE;
/** Barring indicator for MMTEL (IMS) video; applicable to EUTRAN and NGRAN */
public static final int BARRING_SERVICE_TYPE_MMTEL_VIDEO =
android.hardware.radio.V1_5.BarringServiceType.MMTEL_VIDEO;
android.hardware.radio.V1_5.BarringInfo.ServiceType.MMTEL_VIDEO;
/* Applicable to UTRAN, EUTRAN, NGRAN */
/** Barring indicator for emergency services; applicable to UTRAN, EUTRAN, and NGRAN */
public static final int BARRING_SERVICE_TYPE_EMERGENCY =
android.hardware.radio.V1_5.BarringServiceType.EMERGENCY;
android.hardware.radio.V1_5.BarringInfo.ServiceType.EMERGENCY;
/** Barring indicator for SMS sending; applicable to UTRAN, EUTRAN, and NGRAN */
public static final int BARRING_SERVICE_TYPE_SMS =
android.hardware.radio.V1_5.BarringServiceType.SMS;
android.hardware.radio.V1_5.BarringInfo.ServiceType.SMS;
//TODO: add barring constants for Operator-Specific barring codes
@@ -112,13 +112,14 @@ public final class BarringInfo implements Parcelable {
public @interface BarringType {}
/** Barring is inactive */
public static final int BARRING_TYPE_NONE = android.hardware.radio.V1_5.BarringType.NONE;
public static final int BARRING_TYPE_NONE =
android.hardware.radio.V1_5.BarringInfo.BarringType.NONE;
/** The service is barred */
public static final int BARRING_TYPE_UNCONDITIONAL =
android.hardware.radio.V1_5.BarringType.UNCONDITIONAL;
android.hardware.radio.V1_5.BarringInfo.BarringType.UNCONDITIONAL;
/** The service may be barred based on additional factors */
public static final int BARRING_TYPE_CONDITIONAL =
android.hardware.radio.V1_5.BarringType.CONDITIONAL;
android.hardware.radio.V1_5.BarringInfo.BarringType.CONDITIONAL;
/** If a modem does not report barring info, then the barring type will be UNKNOWN */
public static final int BARRING_TYPE_UNKNOWN = -1;
@@ -271,27 +272,29 @@ public final class BarringInfo implements Parcelable {
SparseArray<BarringServiceInfo> serviceInfos = new SparseArray<>();
for (android.hardware.radio.V1_5.BarringInfo halBarringInfo : halBarringInfos) {
if (halBarringInfo.type == android.hardware.radio.V1_5.BarringType.CONDITIONAL) {
if (halBarringInfo.typeSpecificInfo.getDiscriminator()
!= android.hardware.radio.V1_5.BarringTypeSpecificInfo
.hidl_discriminator.conditionalBarringInfo) {
if (halBarringInfo.barringType
== android.hardware.radio.V1_5.BarringInfo.BarringType.CONDITIONAL) {
if (halBarringInfo.barringTypeSpecificInfo.getDiscriminator()
!= android.hardware.radio.V1_5.BarringInfo.BarringTypeSpecificInfo
.hidl_discriminator.conditional) {
// this is an error case where the barring info is conditional but the
// conditional barring fields weren't included
continue;
}
android.hardware.radio.V1_5.ConditionalBarringInfo conditionalInfo =
halBarringInfo.typeSpecificInfo.conditionalBarringInfo();
android.hardware.radio.V1_5.BarringInfo.BarringTypeSpecificInfo
.Conditional conditionalInfo =
halBarringInfo.barringTypeSpecificInfo.conditional();
serviceInfos.put(
halBarringInfo.service, new BarringServiceInfo(
halBarringInfo.type, // will always be CONDITIONAL here
halBarringInfo.serviceType, new BarringServiceInfo(
halBarringInfo.barringType, // will always be CONDITIONAL here
conditionalInfo.isBarred,
conditionalInfo.barringFactor,
conditionalInfo.barringTimeSeconds));
conditionalInfo.factor,
conditionalInfo.timeSeconds));
} else {
// Barring type is either NONE or UNCONDITIONAL
serviceInfos.put(
halBarringInfo.service, new BarringServiceInfo(halBarringInfo.type,
false, 0, 0));
halBarringInfo.serviceType, new BarringServiceInfo(
halBarringInfo.barringType, false, 0, 0));
}
}
return new BarringInfo(ci, serviceInfos);