Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b3abe62 authored by Sarah Chin's avatar Sarah Chin Committed by Sarah Kim
Browse files

Set NetworkSliceInfo status properly from RIL response

We were not properly processing the status field of the SliceInfo.

Test: atest RILTest
Bug: 289799534
Change-Id: Icd66fa2c717e545663d3584080ba38d456d77be6
parent d3e039c7
Loading
Loading
Loading
Loading
+22 −2
Original line number Diff line number Diff line
@@ -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;
@@ -3723,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);
@@ -3734,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);
@@ -3742,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()