diff options
author | Sarah Chin <sarahchin@google.com> | 2021-12-10 20:50:31 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-12-10 20:50:31 +0000 |
commit | 236b9e8ebe53b9153173e505769a54a3c2a7e954 (patch) | |
tree | 2bf1f142a78f72607c3f08296236f1dd6159dae8 | |
parent | 18ccca181104366086bbd98ad6db5a3c4ea250c7 (diff) | |
parent | f5ad418fbb68ac7a8aa23506e038947c35787164 (diff) | |
download | telephony-temp-sc-sam.tar.gz |
Merge "Fix inconsistencies in setPreferred/AllowedNetworkTypes" am: f5ad418fbbtemp-sc-sam
Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/1918477
Change-Id: If507d71d52747989a63c62398a313db9c412175b
-rw-r--r-- | src/java/com/android/internal/telephony/RIL.java | 8 | ||||
-rw-r--r-- | src/java/com/android/internal/telephony/RadioNetworkProxy.java | 26 |
2 files changed, 25 insertions, 9 deletions
diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java index e5adee1714..b10cad832f 100644 --- a/src/java/com/android/internal/telephony/RIL.java +++ b/src/java/com/android/internal/telephony/RIL.java @@ -2704,7 +2704,7 @@ public class RIL extends BaseCommands implements CommandsInterface { mMetrics.writeSetPreferredNetworkType(mPhoneId, networkType); try { - networkProxy.setAllowedNetworkTypesBitmap(rr.mSerial, mAllowedNetworkTypesBitmask); + networkProxy.setPreferredNetworkTypeBitmap(rr.mSerial, mAllowedNetworkTypesBitmask); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(NETWORK_SERVICE, "setPreferredNetworkType", e); } @@ -2735,6 +2735,12 @@ public class RIL extends BaseCommands implements CommandsInterface { @TelephonyManager.NetworkTypeBitMask int networkTypeBitmask, Message result) { RadioNetworkProxy networkProxy = getRadioServiceProxy(RadioNetworkProxy.class, result); if (!networkProxy.isEmpty()) { + if (mRadioVersion.less(RADIO_HAL_VERSION_1_6)) { + // For older HAL, redirects the call to setPreferredNetworkType. + setPreferredNetworkType( + RadioAccessFamily.getNetworkTypeFromRaf(networkTypeBitmask), result); + return; + } RILRequest rr = obtainRequest(RIL_REQUEST_SET_ALLOWED_NETWORK_TYPES_BITMAP, result, mRILDefaultWorkSource); diff --git a/src/java/com/android/internal/telephony/RadioNetworkProxy.java b/src/java/com/android/internal/telephony/RadioNetworkProxy.java index ea608e7d68..45d1a19ca8 100644 --- a/src/java/com/android/internal/telephony/RadioNetworkProxy.java +++ b/src/java/com/android/internal/telephony/RadioNetworkProxy.java @@ -23,7 +23,6 @@ import android.os.Message; import android.os.RemoteException; import android.telephony.AccessNetworkConstants; import android.telephony.NetworkScanRequest; -import android.telephony.RadioAccessFamily; import android.telephony.RadioAccessSpecifier; import android.telephony.SignalThresholdInfo; @@ -363,19 +362,30 @@ public class RadioNetworkProxy extends RadioServiceProxy { */ public void setAllowedNetworkTypesBitmap(int serial, int networkTypeBitmask) throws RemoteException { - if (isEmpty()) return; + if (isEmpty() || mHalVersion.less(RIL.RADIO_HAL_VERSION_1_6)) return; if (isAidl()) { mNetworkProxy.setAllowedNetworkTypesBitmap(serial, RILUtils.convertToHalRadioAccessFamilyAidl(networkTypeBitmask)); - } else if (mHalVersion.greaterOrEqual(RIL.RADIO_HAL_VERSION_1_6)) { + } else { ((android.hardware.radio.V1_6.IRadio) mRadioProxy).setAllowedNetworkTypesBitmap( serial, RILUtils.convertToHalRadioAccessFamily(networkTypeBitmask)); - } else if (mHalVersion.greaterOrEqual(RIL.RADIO_HAL_VERSION_1_4)) { - ((android.hardware.radio.V1_4.IRadio) mRadioProxy).setPreferredNetworkTypeBitmap( - serial, networkTypeBitmask); + } + } + + /** + * Call IRadioNetwork#setPreferredNetworkTypeBitmap + * @param serial Serial number of request + * @param networkTypesBitmask Preferred network types bitmask to set + * @throws RemoteException + */ + public void setPreferredNetworkTypeBitmap(int serial, int networkTypesBitmask) + throws RemoteException { + if (isEmpty() || mHalVersion.greaterOrEqual(RIL.RADIO_HAL_VERSION_1_6)) return; + if (mHalVersion.greaterOrEqual(RIL.RADIO_HAL_VERSION_1_4)) { + ((android.hardware.radio.V1_4.IRadio) mRadioProxy).setPreferredNetworkTypeBitmap(serial, + RILUtils.convertToHalRadioAccessFamily(networkTypesBitmask)); } else { - mRadioProxy.setPreferredNetworkType( - serial, RadioAccessFamily.getNetworkTypeFromRaf(networkTypeBitmask)); + mRadioProxy.setPreferredNetworkType(serial, networkTypesBitmask); } } |