Loading Android.bp +6 −0 Original line number Diff line number Diff line Loading @@ -228,6 +228,12 @@ java_library { "android.hardware.radio-V1.4-java", "android.hardware.radio-V1.5-java", "android.hardware.radio-V1.6-java", "android.hardware.radio.data-V1-java", "android.hardware.radio.messaging-V1-java", "android.hardware.radio.modem-V1-java", "android.hardware.radio.network-V1-java", "android.hardware.radio.sim-V1-java", "android.hardware.radio.voice-V1-java", "android.hardware.thermal-V1.0-java-constants", "android.hardware.thermal-V1.0-java", "android.hardware.thermal-V1.1-java", Loading telephony/java/android/telephony/data/EpsQos.java +3 −9 Original line number Diff line number Diff line Loading @@ -32,15 +32,9 @@ public final class EpsQos extends Qos implements Parcelable { int qosClassId; public EpsQos() { super(Qos.QOS_TYPE_EPS, new android.hardware.radio.V1_6.QosBandwidth(), new android.hardware.radio.V1_6.QosBandwidth()); } public EpsQos(@NonNull android.hardware.radio.V1_6.EpsQos qos) { super(Qos.QOS_TYPE_EPS, qos.downlink, qos.uplink); qosClassId = qos.qci; public EpsQos(QosBandwidth downlink, QosBandwidth uplink, int qosClassId) { super(Qos.QOS_TYPE_EPS, downlink, uplink); this.qosClassId = qosClassId; } private EpsQos(Parcel source) { Loading telephony/java/android/telephony/data/NrQos.java +6 −5 Original line number Diff line number Diff line Loading @@ -32,11 +32,12 @@ public final class NrQos extends Qos implements Parcelable { int fiveQi; int averagingWindowMs; public NrQos(@NonNull android.hardware.radio.V1_6.NrQos qos) { super(Qos.QOS_TYPE_NR, qos.downlink, qos.uplink); fiveQi = qos.fiveQi; qosFlowId = qos.qfi; averagingWindowMs = qos.averagingWindowMs; public NrQos(QosBandwidth downlink, QosBandwidth uplink, int qosFlowId, int fiveQi, int averagingWindowMs) { super(Qos.QOS_TYPE_NR, downlink, uplink); this.qosFlowId = qosFlowId; this.fiveQi = fiveQi; this.averagingWindowMs = averagingWindowMs; } private NrQos(Parcel source) { Loading telephony/java/android/telephony/data/Qos.java +4 −21 Original line number Diff line number Diff line Loading @@ -48,12 +48,10 @@ public abstract class Qos { final QosBandwidth downlink; final QosBandwidth uplink; Qos(int type, @NonNull android.hardware.radio.V1_6.QosBandwidth downlink, @NonNull android.hardware.radio.V1_6.QosBandwidth uplink) { Qos(int type, QosBandwidth downlink, QosBandwidth uplink) { this.type = type; this.downlink = new QosBandwidth(downlink.maxBitrateKbps, downlink.guaranteedBitrateKbps); this.uplink = new QosBandwidth(uplink.maxBitrateKbps, uplink.guaranteedBitrateKbps); this.downlink = downlink; this.uplink = uplink; } public QosBandwidth getDownlinkBandwidth() { Loading @@ -68,10 +66,7 @@ public abstract class Qos { int maxBitrateKbps; int guaranteedBitrateKbps; QosBandwidth() { } QosBandwidth(int maxBitrateKbps, int guaranteedBitrateKbps) { public QosBandwidth(int maxBitrateKbps, int guaranteedBitrateKbps) { this.maxBitrateKbps = maxBitrateKbps; this.guaranteedBitrateKbps = guaranteedBitrateKbps; } Loading Loading @@ -157,18 +152,6 @@ public abstract class Qos { dest.writeParcelable(uplink, flags); } /** @hide */ public static @NonNull Qos create(@NonNull android.hardware.radio.V1_6.Qos qos) { switch (qos.getDiscriminator()) { case android.hardware.radio.V1_6.Qos.hidl_discriminator.eps: return new EpsQos(qos.eps()); case android.hardware.radio.V1_6.Qos.hidl_discriminator.nr: return new NrQos(qos.nr()); default: return null; } } /** @hide */ public @QosType int getType() { return type; Loading telephony/java/android/telephony/data/QosBearerFilter.java +4 −112 Original line number Diff line number Diff line Loading @@ -18,15 +18,12 @@ package android.telephony.data; import android.annotation.IntDef; import android.annotation.NonNull; import android.net.InetAddresses; import android.net.LinkAddress; import android.os.Parcel; import android.os.Parcelable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.net.InetAddress; import java.net.Inet4Address; import java.util.ArrayList; import java.util.List; import java.util.Objects; Loading Loading @@ -91,20 +88,13 @@ public final class QosBearerFilter implements Parcelable { */ private int precedence; QosBearerFilter() { localAddresses = new ArrayList<>(); remoteAddresses = new ArrayList<>(); localPort = new PortRange(); remotePort = new PortRange(); protocol = QOS_PROTOCOL_UNSPECIFIED; filterDirection = QOS_FILTER_DIRECTION_BIDIRECTIONAL; } public QosBearerFilter(List<LinkAddress> localAddresses, List<LinkAddress> remoteAddresses, PortRange localPort, PortRange remotePort, int protocol, int tos, long flowLabel, long spi, int direction, int precedence) { this.localAddresses = localAddresses; this.remoteAddresses = remoteAddresses; this.localAddresses = new ArrayList<>(); this.localAddresses.addAll(localAddresses); this.remoteAddresses = new ArrayList<>(); this.remoteAddresses.addAll(remoteAddresses); this.localPort = localPort; this.remotePort = remotePort; this.protocol = protocol; Loading Loading @@ -135,82 +125,10 @@ public final class QosBearerFilter implements Parcelable { return precedence; } /** @hide */ public static @NonNull QosBearerFilter create( @NonNull android.hardware.radio.V1_6.QosFilter qosFilter) { QosBearerFilter ret = new QosBearerFilter(); String[] localAddresses = qosFilter.localAddresses.stream().toArray(String[]::new); if (localAddresses != null) { for (String address : localAddresses) { ret.localAddresses.add(createLinkAddressFromString(address)); } } String[] remoteAddresses = qosFilter.remoteAddresses.stream().toArray(String[]::new); if (remoteAddresses != null) { for (String address : remoteAddresses) { ret.remoteAddresses.add(createLinkAddressFromString(address)); } } if (qosFilter.localPort != null) { if (qosFilter.localPort.getDiscriminator() == android.hardware.radio.V1_6.MaybePort.hidl_discriminator.range) { final android.hardware.radio.V1_6.PortRange portRange = qosFilter.localPort.range(); ret.localPort.start = portRange.start; ret.localPort.end = portRange.end; } } if (qosFilter.remotePort != null) { if (qosFilter.remotePort.getDiscriminator() == android.hardware.radio.V1_6.MaybePort.hidl_discriminator.range) { final android.hardware.radio.V1_6.PortRange portRange = qosFilter.remotePort.range(); ret.remotePort.start = portRange.start; ret.remotePort.end = portRange.end; } } ret.protocol = qosFilter.protocol; if (qosFilter.tos != null) { if (qosFilter.tos.getDiscriminator() == android.hardware.radio.V1_6.QosFilter.TypeOfService.hidl_discriminator.value) { ret.typeOfServiceMask = qosFilter.tos.value(); } } if (qosFilter.flowLabel != null) { if (qosFilter.flowLabel.getDiscriminator() == android.hardware.radio.V1_6.QosFilter.Ipv6FlowLabel.hidl_discriminator.value) { ret.flowLabel = qosFilter.flowLabel.value(); } } if (qosFilter.spi != null) { if (qosFilter.spi.getDiscriminator() == android.hardware.radio.V1_6.QosFilter.IpsecSpi.hidl_discriminator.value) { ret.securityParameterIndex = qosFilter.spi.value(); } } ret.filterDirection = qosFilter.direction; ret.precedence = qosFilter.precedence; return ret; } public static class PortRange implements Parcelable { int start; int end; PortRange() { start = -1; end = -1; } private PortRange(Parcel source) { start = source.readInt(); end = source.readInt(); Loading Loading @@ -325,32 +243,6 @@ public final class QosBearerFilter implements Parcelable { && precedence == other.precedence; } private static LinkAddress createLinkAddressFromString(String addressString) { addressString = addressString.trim(); InetAddress address = null; int prefixLength = -1; try { String[] pieces = addressString.split("/", 2); address = InetAddresses.parseNumericAddress(pieces[0]); if (pieces.length == 1) { prefixLength = (address instanceof Inet4Address) ? 32 : 128; } else if (pieces.length == 2) { prefixLength = Integer.parseInt(pieces[1]); } } catch (NullPointerException e) { // Null string. } catch (ArrayIndexOutOfBoundsException e) { // No prefix length. } catch (NumberFormatException e) { // Non-numeric prefix. } catch (IllegalArgumentException e) { // Invalid IP address. } if (address == null || prefixLength == -1) { throw new IllegalArgumentException("Invalid link address " + addressString); } return new LinkAddress(address, prefixLength, 0, 0, LinkAddress.LIFETIME_UNKNOWN, LinkAddress.LIFETIME_UNKNOWN); } private QosBearerFilter(Parcel source) { localAddresses = new ArrayList<>(); source.readList(localAddresses, LinkAddress.class.getClassLoader()); Loading Loading
Android.bp +6 −0 Original line number Diff line number Diff line Loading @@ -228,6 +228,12 @@ java_library { "android.hardware.radio-V1.4-java", "android.hardware.radio-V1.5-java", "android.hardware.radio-V1.6-java", "android.hardware.radio.data-V1-java", "android.hardware.radio.messaging-V1-java", "android.hardware.radio.modem-V1-java", "android.hardware.radio.network-V1-java", "android.hardware.radio.sim-V1-java", "android.hardware.radio.voice-V1-java", "android.hardware.thermal-V1.0-java-constants", "android.hardware.thermal-V1.0-java", "android.hardware.thermal-V1.1-java", Loading
telephony/java/android/telephony/data/EpsQos.java +3 −9 Original line number Diff line number Diff line Loading @@ -32,15 +32,9 @@ public final class EpsQos extends Qos implements Parcelable { int qosClassId; public EpsQos() { super(Qos.QOS_TYPE_EPS, new android.hardware.radio.V1_6.QosBandwidth(), new android.hardware.radio.V1_6.QosBandwidth()); } public EpsQos(@NonNull android.hardware.radio.V1_6.EpsQos qos) { super(Qos.QOS_TYPE_EPS, qos.downlink, qos.uplink); qosClassId = qos.qci; public EpsQos(QosBandwidth downlink, QosBandwidth uplink, int qosClassId) { super(Qos.QOS_TYPE_EPS, downlink, uplink); this.qosClassId = qosClassId; } private EpsQos(Parcel source) { Loading
telephony/java/android/telephony/data/NrQos.java +6 −5 Original line number Diff line number Diff line Loading @@ -32,11 +32,12 @@ public final class NrQos extends Qos implements Parcelable { int fiveQi; int averagingWindowMs; public NrQos(@NonNull android.hardware.radio.V1_6.NrQos qos) { super(Qos.QOS_TYPE_NR, qos.downlink, qos.uplink); fiveQi = qos.fiveQi; qosFlowId = qos.qfi; averagingWindowMs = qos.averagingWindowMs; public NrQos(QosBandwidth downlink, QosBandwidth uplink, int qosFlowId, int fiveQi, int averagingWindowMs) { super(Qos.QOS_TYPE_NR, downlink, uplink); this.qosFlowId = qosFlowId; this.fiveQi = fiveQi; this.averagingWindowMs = averagingWindowMs; } private NrQos(Parcel source) { Loading
telephony/java/android/telephony/data/Qos.java +4 −21 Original line number Diff line number Diff line Loading @@ -48,12 +48,10 @@ public abstract class Qos { final QosBandwidth downlink; final QosBandwidth uplink; Qos(int type, @NonNull android.hardware.radio.V1_6.QosBandwidth downlink, @NonNull android.hardware.radio.V1_6.QosBandwidth uplink) { Qos(int type, QosBandwidth downlink, QosBandwidth uplink) { this.type = type; this.downlink = new QosBandwidth(downlink.maxBitrateKbps, downlink.guaranteedBitrateKbps); this.uplink = new QosBandwidth(uplink.maxBitrateKbps, uplink.guaranteedBitrateKbps); this.downlink = downlink; this.uplink = uplink; } public QosBandwidth getDownlinkBandwidth() { Loading @@ -68,10 +66,7 @@ public abstract class Qos { int maxBitrateKbps; int guaranteedBitrateKbps; QosBandwidth() { } QosBandwidth(int maxBitrateKbps, int guaranteedBitrateKbps) { public QosBandwidth(int maxBitrateKbps, int guaranteedBitrateKbps) { this.maxBitrateKbps = maxBitrateKbps; this.guaranteedBitrateKbps = guaranteedBitrateKbps; } Loading Loading @@ -157,18 +152,6 @@ public abstract class Qos { dest.writeParcelable(uplink, flags); } /** @hide */ public static @NonNull Qos create(@NonNull android.hardware.radio.V1_6.Qos qos) { switch (qos.getDiscriminator()) { case android.hardware.radio.V1_6.Qos.hidl_discriminator.eps: return new EpsQos(qos.eps()); case android.hardware.radio.V1_6.Qos.hidl_discriminator.nr: return new NrQos(qos.nr()); default: return null; } } /** @hide */ public @QosType int getType() { return type; Loading
telephony/java/android/telephony/data/QosBearerFilter.java +4 −112 Original line number Diff line number Diff line Loading @@ -18,15 +18,12 @@ package android.telephony.data; import android.annotation.IntDef; import android.annotation.NonNull; import android.net.InetAddresses; import android.net.LinkAddress; import android.os.Parcel; import android.os.Parcelable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.net.InetAddress; import java.net.Inet4Address; import java.util.ArrayList; import java.util.List; import java.util.Objects; Loading Loading @@ -91,20 +88,13 @@ public final class QosBearerFilter implements Parcelable { */ private int precedence; QosBearerFilter() { localAddresses = new ArrayList<>(); remoteAddresses = new ArrayList<>(); localPort = new PortRange(); remotePort = new PortRange(); protocol = QOS_PROTOCOL_UNSPECIFIED; filterDirection = QOS_FILTER_DIRECTION_BIDIRECTIONAL; } public QosBearerFilter(List<LinkAddress> localAddresses, List<LinkAddress> remoteAddresses, PortRange localPort, PortRange remotePort, int protocol, int tos, long flowLabel, long spi, int direction, int precedence) { this.localAddresses = localAddresses; this.remoteAddresses = remoteAddresses; this.localAddresses = new ArrayList<>(); this.localAddresses.addAll(localAddresses); this.remoteAddresses = new ArrayList<>(); this.remoteAddresses.addAll(remoteAddresses); this.localPort = localPort; this.remotePort = remotePort; this.protocol = protocol; Loading Loading @@ -135,82 +125,10 @@ public final class QosBearerFilter implements Parcelable { return precedence; } /** @hide */ public static @NonNull QosBearerFilter create( @NonNull android.hardware.radio.V1_6.QosFilter qosFilter) { QosBearerFilter ret = new QosBearerFilter(); String[] localAddresses = qosFilter.localAddresses.stream().toArray(String[]::new); if (localAddresses != null) { for (String address : localAddresses) { ret.localAddresses.add(createLinkAddressFromString(address)); } } String[] remoteAddresses = qosFilter.remoteAddresses.stream().toArray(String[]::new); if (remoteAddresses != null) { for (String address : remoteAddresses) { ret.remoteAddresses.add(createLinkAddressFromString(address)); } } if (qosFilter.localPort != null) { if (qosFilter.localPort.getDiscriminator() == android.hardware.radio.V1_6.MaybePort.hidl_discriminator.range) { final android.hardware.radio.V1_6.PortRange portRange = qosFilter.localPort.range(); ret.localPort.start = portRange.start; ret.localPort.end = portRange.end; } } if (qosFilter.remotePort != null) { if (qosFilter.remotePort.getDiscriminator() == android.hardware.radio.V1_6.MaybePort.hidl_discriminator.range) { final android.hardware.radio.V1_6.PortRange portRange = qosFilter.remotePort.range(); ret.remotePort.start = portRange.start; ret.remotePort.end = portRange.end; } } ret.protocol = qosFilter.protocol; if (qosFilter.tos != null) { if (qosFilter.tos.getDiscriminator() == android.hardware.radio.V1_6.QosFilter.TypeOfService.hidl_discriminator.value) { ret.typeOfServiceMask = qosFilter.tos.value(); } } if (qosFilter.flowLabel != null) { if (qosFilter.flowLabel.getDiscriminator() == android.hardware.radio.V1_6.QosFilter.Ipv6FlowLabel.hidl_discriminator.value) { ret.flowLabel = qosFilter.flowLabel.value(); } } if (qosFilter.spi != null) { if (qosFilter.spi.getDiscriminator() == android.hardware.radio.V1_6.QosFilter.IpsecSpi.hidl_discriminator.value) { ret.securityParameterIndex = qosFilter.spi.value(); } } ret.filterDirection = qosFilter.direction; ret.precedence = qosFilter.precedence; return ret; } public static class PortRange implements Parcelable { int start; int end; PortRange() { start = -1; end = -1; } private PortRange(Parcel source) { start = source.readInt(); end = source.readInt(); Loading Loading @@ -325,32 +243,6 @@ public final class QosBearerFilter implements Parcelable { && precedence == other.precedence; } private static LinkAddress createLinkAddressFromString(String addressString) { addressString = addressString.trim(); InetAddress address = null; int prefixLength = -1; try { String[] pieces = addressString.split("/", 2); address = InetAddresses.parseNumericAddress(pieces[0]); if (pieces.length == 1) { prefixLength = (address instanceof Inet4Address) ? 32 : 128; } else if (pieces.length == 2) { prefixLength = Integer.parseInt(pieces[1]); } } catch (NullPointerException e) { // Null string. } catch (ArrayIndexOutOfBoundsException e) { // No prefix length. } catch (NumberFormatException e) { // Non-numeric prefix. } catch (IllegalArgumentException e) { // Invalid IP address. } if (address == null || prefixLength == -1) { throw new IllegalArgumentException("Invalid link address " + addressString); } return new LinkAddress(address, prefixLength, 0, 0, LinkAddress.LIFETIME_UNKNOWN, LinkAddress.LIFETIME_UNKNOWN); } private QosBearerFilter(Parcel source) { localAddresses = new ArrayList<>(); source.readList(localAddresses, LinkAddress.class.getClassLoader()); Loading