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

Commit 885dabbe 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
(cherry picked from commit 5105c8d5)
Merged-in: I794e5cc35120d2ee92e6278d2ed1f39569ed5267
parent e01ce3f0
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -84,6 +84,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;
@@ -2518,7 +2519,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,
@@ -2542,7 +2543,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);
                }
@@ -2550,6 +2551,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);