From 5e640ac80e3b457cb2054d50f6892513a4b78b06 Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Wed, 12 Jun 2019 11:00:16 -0700 Subject: [PATCH] Fixed incorrect merge service state The existing logic for merging service state when device is on IWLAN does not work properly on AP-assisted mode devices. Fixed by copying the IWLAN preferred flag into IMS service state so it can get the correct data RAT for AP-assisted mode devices. Bug: 134706530 Test: WFC manual tests Change-Id: Ic18934adb870a0114c913855cdb68e0ef33caa79 --- telephony/java/android/telephony/ServiceState.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java index 518da74eb9e25..b7e40336c7547 100644 --- a/telephony/java/android/telephony/ServiceState.java +++ b/telephony/java/android/telephony/ServiceState.java @@ -2035,4 +2035,18 @@ public class ServiceState implements Parcelable { public void setIwlanPreferred(boolean isIwlanPreferred) { mIsIwlanPreferred = isIwlanPreferred; } + + /** + * @return {@code true} if any data network is preferred on IWLAN. + * + * Note only when this value is true, {@link #getDataNetworkType()} will return + * {@link TelephonyManager#NETWORK_TYPE_IWLAN} when AP-assisted mode device camps on both + * cellular and IWLAN. This value does not affect legacy mode devices as the data network + * type is directly reported by the modem. + * + * @hide + */ + public boolean isIwlanPreferred() { + return mIsIwlanPreferred; + } }