From cb4e0bd018173171a0fd0ec4a3df1db70550084b Mon Sep 17 00:00:00 2001 From: Zoey Chen Date: Mon, 20 Mar 2023 08:51:12 +0000 Subject: [PATCH] [Settings] Should not show WFC UI in the SIM page if the SIM does not support WFC Bug: 270792637 Test: manual Change-Id: Ic67bd2e766d66c91fc4b0fcf5a5355debd805ac6 --- .../network/telephony/MobileNetworkUtils.java | 8 ++++++-- .../NetworkProviderWifiCallingGroup.java | 20 ++----------------- .../WifiCallingPreferenceController.java | 1 - .../wifi/calling/WifiCallingSettings.java | 3 ++- 4 files changed, 10 insertions(+), 22 deletions(-) diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java index 308da88ed34..265eb167fed 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java +++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java @@ -949,7 +949,12 @@ public class MobileNetworkUtils { boolean isWifiCallingEnabled; if (phoneAccountHandle != null) { final Intent intent = buildPhoneAccountConfigureIntent(context, phoneAccountHandle); - isWifiCallingEnabled = intent != null; + if (intent == null) { + Log.d(TAG, "Can not get phoneAccount configure intent."); + isWifiCallingEnabled = false; + } else { + isWifiCallingEnabled = true; + } } else { if (queryImsState == null) { queryImsState = new WifiCallingQueryImsState(context, subId); @@ -959,7 +964,6 @@ public class MobileNetworkUtils { return isWifiCallingEnabled; } - /** * Returns preferred status of Calls & SMS separately when Provider Model is enabled. */ diff --git a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java index 688084f4488..7ad9e03a1a8 100644 --- a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java +++ b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java @@ -314,29 +314,13 @@ public class NetworkProviderWifiCallingGroup extends @VisibleForTesting protected boolean shouldShowWifiCallingForSub(int subId) { if (SubscriptionManager.isValidSubscriptionId(subId) - && MobileNetworkUtils.isWifiCallingEnabled( - mContext, subId, queryImsState(subId), - getPhoneAccountHandleForSubscriptionId(subId)) - && isWifiCallingAvailableForCarrier(subId)) { + && MobileNetworkUtils.isWifiCallingEnabled(mContext, subId, queryImsState(subId), + null)) { return true; } return false; } - private boolean isWifiCallingAvailableForCarrier(int subId) { - boolean isWifiCallingAvailableForCarrier = false; - if (mCarrierConfigManager != null) { - final PersistableBundle carrierConfig = - mCarrierConfigManager.getConfigForSubId(subId); - if (carrierConfig != null) { - isWifiCallingAvailableForCarrier = carrierConfig.getBoolean( - CarrierConfigManager.KEY_CARRIER_WFC_IMS_AVAILABLE_BOOL); - } - } - Log.d(TAG, "isWifiCallingAvailableForCarrier:" + isWifiCallingAvailableForCarrier); - return isWifiCallingAvailableForCarrier; - } - @Override public String getPreferenceKey() { return KEY_PREFERENCE_WIFICALLING_GROUP; diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java index 2d7ba38a801..1bc2f908e3d 100644 --- a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java +++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java @@ -25,7 +25,6 @@ import android.provider.Settings; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; import android.telephony.CarrierConfigManager; -import android.telephony.PhoneStateListener; import android.telephony.SubscriptionManager; import android.telephony.TelephonyCallback; import android.telephony.TelephonyManager; diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettings.java b/src/com/android/settings/wifi/calling/WifiCallingSettings.java index 89266964ba7..42ce1b13bab 100644 --- a/src/com/android/settings/wifi/calling/WifiCallingSettings.java +++ b/src/com/android/settings/wifi/calling/WifiCallingSettings.java @@ -257,7 +257,8 @@ public class WifiCallingSettings extends SettingsPreferenceFragment for (SubscriptionInfo subInfo : subInfoList) { int subId = subInfo.getSubscriptionId(); try { - if (queryImsState(subId).isWifiCallingProvisioned()) { + if (MobileNetworkUtils.isWifiCallingEnabled(getContext(), subId, + queryImsState(subId), null)) { selectedList.add(subInfo); } } catch (Exception exception) {}