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

Commit 68761d25 authored by Chen Xu's avatar Chen Xu Committed by android-build-merger
Browse files

Merge "fix the issue that sending wrong preferred networktype to RIL"

am: e9583c8c

Change-Id: I079ff3878fa844c3b3d4a0c78fb26da961c2542a
parents f41f1053 e9583c8c
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;
@@ -2520,7 +2521,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,
@@ -2544,7 +2545,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);
                }
@@ -2552,6 +2553,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);