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

Commit 5105c8d5 authored by chen xu's avatar chen xu
Browse files

fix the issue that sending wrong preferred networktype to RIL

Bug: 126805258
Test: Manual
Change-Id: I794e5cc35120d2ee92e6278d2ed1f39569ed5267
parent 17ea6f00
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -85,6 +85,7 @@ import android.telephony.ServiceState;
import android.telephony.SmsManager;
import android.telephony.TelephonyHistogram;
import android.telephony.TelephonyManager;
import android.telephony.TelephonyManager.PrefNetworkMode;
import android.telephony.data.ApnSetting;
import android.telephony.data.DataCallResponse;
import android.telephony.data.DataProfile;
@@ -2574,7 +2575,7 @@ public class RIL extends BaseCommands implements CommandsInterface {
    }

    @Override
    public void setPreferredNetworkType(int networkType , Message result) {
    public void setPreferredNetworkType(@PrefNetworkMode int networkType , Message result) {
        IRadio radioProxy = getRadioProxy(result);
        if (radioProxy != null) {
            RILRequest rr = obtainRequest(RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE, result,
@@ -2598,7 +2599,7 @@ public class RIL extends BaseCommands implements CommandsInterface {
                        (android.hardware.radio.V1_4.IRadio) radioProxy;
                try {
                    radioProxy14.setPreferredNetworkTypeBitmap(
                            rr.mSerial, RadioAccessFamily.getRafFromNetworkType(networkType));
                            rr.mSerial, convertToHalRadioAccessFamily(networkType));
                } catch (RemoteException | RuntimeException e) {
                    handleRadioProxyExceptionForRR(rr, "setPreferredNetworkTypeBitmap", e);
                }
@@ -2606,6 +2607,13 @@ public class RIL extends BaseCommands implements CommandsInterface {
        }
    }

    private static int convertToHalRadioAccessFamily(@PrefNetworkMode int networkMode) {
        // android.hardware.radio.V1_0.RadioAccessFamily is one bit shift
        // from TelephonyManager.NetworkTypeBitMask
        int networkTypeBitmask = RadioAccessFamily.getRafFromNetworkType(networkMode);
        return networkTypeBitmask << 1;
    }

    @Override
    public void getPreferredNetworkType(Message result) {
        IRadio radioProxy = getRadioProxy(result);