aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSarah Chin <sarahchin@google.com>2021-12-10 20:50:31 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-12-10 20:50:31 +0000
commit236b9e8ebe53b9153173e505769a54a3c2a7e954 (patch)
tree2bf1f142a78f72607c3f08296236f1dd6159dae8
parent18ccca181104366086bbd98ad6db5a3c4ea250c7 (diff)
parentf5ad418fbb68ac7a8aa23506e038947c35787164 (diff)
downloadtelephony-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.java8
-rw-r--r--src/java/com/android/internal/telephony/RadioNetworkProxy.java26
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);
}
}