diff options
Diffstat (limited to 'src/java/com/android/internal/telephony/RILUtils.java')
-rw-r--r-- | src/java/com/android/internal/telephony/RILUtils.java | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/src/java/com/android/internal/telephony/RILUtils.java b/src/java/com/android/internal/telephony/RILUtils.java index 9db186fbf8..ae8d033939 100644 --- a/src/java/com/android/internal/telephony/RILUtils.java +++ b/src/java/com/android/internal/telephony/RILUtils.java @@ -288,6 +288,7 @@ import static com.android.internal.telephony.RILConstants.RIL_UNSOL_VOICE_RADIO_ import android.annotation.NonNull; import android.annotation.Nullable; +import android.hardware.radio.data.SliceInfo; import android.net.InetAddresses; import android.net.LinkAddress; import android.net.LinkProperties; @@ -989,8 +990,9 @@ public class RILUtils { * @param dp Data profile * @return The converted DataProfileInfo */ - public static android.hardware.radio.data.DataProfileInfo convertToHalDataProfile( + public static android.hardware.radio.data.DataProfileInfo convertToHalDataProfile(@Nullable DataProfile dp) { + if (dp == null) return null; android.hardware.radio.data.DataProfileInfo dpi = new android.hardware.radio.data.DataProfileInfo(); @@ -3722,7 +3724,8 @@ public class RILUtils { private static NetworkSliceInfo convertHalSliceInfo(android.hardware.radio.V1_6.SliceInfo si) { NetworkSliceInfo.Builder builder = new NetworkSliceInfo.Builder() .setSliceServiceType(si.sst) - .setMappedHplmnSliceServiceType(si.mappedHplmnSst); + .setMappedHplmnSliceServiceType(si.mappedHplmnSst) + .setStatus(convertHalSliceStatus(si.status)); if (si.sliceDifferentiator != NetworkSliceInfo.SLICE_DIFFERENTIATOR_NO_SLICE) { builder.setSliceDifferentiator(si.sliceDifferentiator) .setMappedHplmnSliceDifferentiator(si.mappedHplmnSD); @@ -3733,7 +3736,8 @@ public class RILUtils { private static NetworkSliceInfo convertHalSliceInfo(android.hardware.radio.data.SliceInfo si) { NetworkSliceInfo.Builder builder = new NetworkSliceInfo.Builder() .setSliceServiceType(si.sliceServiceType) - .setMappedHplmnSliceServiceType(si.mappedHplmnSst); + .setMappedHplmnSliceServiceType(si.mappedHplmnSst) + .setStatus(convertHalSliceStatus(si.status)); if (si.sliceDifferentiator != NetworkSliceInfo.SLICE_DIFFERENTIATOR_NO_SLICE) { builder.setSliceDifferentiator(si.sliceDifferentiator) .setMappedHplmnSliceDifferentiator(si.mappedHplmnSd); @@ -3741,6 +3745,23 @@ public class RILUtils { return builder.build(); } + @NetworkSliceInfo.SliceStatus private static int convertHalSliceStatus(byte status) { + switch (status) { + case SliceInfo.STATUS_CONFIGURED: + return NetworkSliceInfo.SLICE_STATUS_CONFIGURED; + case SliceInfo.STATUS_ALLOWED: + return NetworkSliceInfo.SLICE_STATUS_ALLOWED; + case SliceInfo.STATUS_REJECTED_NOT_AVAILABLE_IN_PLMN: + return NetworkSliceInfo.SLICE_STATUS_REJECTED_NOT_AVAILABLE_IN_PLMN; + case SliceInfo.STATUS_REJECTED_NOT_AVAILABLE_IN_REG_AREA: + return NetworkSliceInfo.SLICE_STATUS_REJECTED_NOT_AVAILABLE_IN_REGISTERED_AREA; + case SliceInfo.STATUS_DEFAULT_CONFIGURED: + return NetworkSliceInfo.SLICE_STATUS_DEFAULT_CONFIGURED; + default: + return NetworkSliceInfo.SLICE_STATUS_UNKNOWN; + } + } + private static TrafficDescriptor convertHalTrafficDescriptor( android.hardware.radio.V1_6.TrafficDescriptor td) throws IllegalArgumentException { String dnn = td.dnn.getDiscriminator() |