From 21860761e84316b6c52c8082d0e5de1c7eb3740f Mon Sep 17 00:00:00 2001 From: tom hsu Date: Tue, 2 May 2023 15:06:40 +0800 Subject: [PATCH] [Settings] Remove WFC enabled state condition of querying Telecomm. - Query WFC enabled state by querying Telecomm may have problem. - Only use ImsMmTelManager API to check WFC enabled state. Bug: 278108377 Test: atest passed Change-Id: I6d1122bcf66ed5cd274e99b7b4f13558ab922162 --- .../network/telephony/MobileNetworkUtils.java | 25 +++---------------- .../NetworkProviderWifiCallingGroup.java | 4 +-- .../WifiCallingPreferenceController.java | 2 +- .../wifi/calling/WifiCallingSettings.java | 6 +++-- .../telephony/MobileNetworkUtilsTest.java | 24 +++--------------- 5 files changed, 14 insertions(+), 47 deletions(-) diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java index 02455a18c5f..38f659603fe 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java +++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java @@ -940,28 +940,11 @@ public class MobileNetworkUtils { * Copied from WifiCallingPreferenceController#isWifiCallingEnabled() */ public static boolean isWifiCallingEnabled(Context context, int subId, - @Nullable WifiCallingQueryImsState queryImsState, - @Nullable PhoneAccountHandle phoneAccountHandle) { - if (phoneAccountHandle == null){ - phoneAccountHandle = context.getSystemService(TelecomManager.class) - .getSimCallManagerForSubscription(subId); + @Nullable WifiCallingQueryImsState queryImsState) { + if (queryImsState == null) { + queryImsState = new WifiCallingQueryImsState(context, subId); } - boolean isWifiCallingEnabled; - if (phoneAccountHandle != null) { - final Intent intent = buildPhoneAccountConfigureIntent(context, phoneAccountHandle); - 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); - } - isWifiCallingEnabled = queryImsState.isReadyToWifiCalling(); - } - return isWifiCallingEnabled; + return queryImsState.isReadyToWifiCalling(); } /** diff --git a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java index 7ad9e03a1a8..ebfb283a05d 100644 --- a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java +++ b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java @@ -22,7 +22,6 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; -import android.os.PersistableBundle; import android.provider.Settings; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; @@ -314,8 +313,7 @@ public class NetworkProviderWifiCallingGroup extends @VisibleForTesting protected boolean shouldShowWifiCallingForSub(int subId) { if (SubscriptionManager.isValidSubscriptionId(subId) - && MobileNetworkUtils.isWifiCallingEnabled(mContext, subId, queryImsState(subId), - null)) { + && MobileNetworkUtils.isWifiCallingEnabled(mContext, subId, queryImsState(subId))) { return true; } return false; diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java index 1bc2f908e3d..03cc23f606f 100644 --- a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java +++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java @@ -71,7 +71,7 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont @Override public int getAvailabilityStatus(int subId) { return SubscriptionManager.isValidSubscriptionId(subId) - && MobileNetworkUtils.isWifiCallingEnabled(mContext, subId, null, null) + && MobileNetworkUtils.isWifiCallingEnabled(mContext, subId, null) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettings.java b/src/com/android/settings/wifi/calling/WifiCallingSettings.java index 42ce1b13bab..0c3457ca77f 100644 --- a/src/com/android/settings/wifi/calling/WifiCallingSettings.java +++ b/src/com/android/settings/wifi/calling/WifiCallingSettings.java @@ -257,8 +257,10 @@ public class WifiCallingSettings extends SettingsPreferenceFragment for (SubscriptionInfo subInfo : subInfoList) { int subId = subInfo.getSubscriptionId(); try { - if (MobileNetworkUtils.isWifiCallingEnabled(getContext(), subId, - queryImsState(subId), null)) { + if (MobileNetworkUtils.isWifiCallingEnabled( + getContext(), + subId, + queryImsState(subId))) { selectedList.add(subInfo); } } catch (Exception exception) {} diff --git a/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java b/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java index f954ea4f5cd..1043fdfcd59 100644 --- a/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java @@ -385,35 +385,19 @@ public class MobileNetworkUtilsTest { } @Test - public void isWifiCallingEnabled_hasPhoneAccountHandleAndHasActivityHandleIntent_returnTrue() { - buildPhoneAccountConfigureIntent(true); - - assertTrue(MobileNetworkUtils.isWifiCallingEnabled(mContext, SUB_ID_1, - null, mPhoneAccountHandle)); - } - - @Test - public void isWifiCallingEnabled_hasPhoneAccountHandleAndNoActivityHandleIntent_returnFalse() { - buildPhoneAccountConfigureIntent(false); - - assertFalse(MobileNetworkUtils.isWifiCallingEnabled(mContext, SUB_ID_1, - null, mPhoneAccountHandle)); - } - - @Test - public void isWifiCallingEnabled_noPhoneAccountHandleAndWifiCallingIsReady_returnTrue() { + public void isWifiCallingEnabled_wifiCallingIsReady_returnTrue() { setWifiCallingEnabled(true); assertTrue(MobileNetworkUtils.isWifiCallingEnabled(mContext, SUB_ID_1, - mMockQueryWfcState, null)); + mMockQueryWfcState)); } @Test - public void isWifiCallingEnabled_noPhoneAccountHandleAndWifiCallingNotReady_returnFalse() { + public void isWifiCallingEnabled_wifiCallingNotReady_returnFalse() { setWifiCallingEnabled(false); assertFalse(MobileNetworkUtils.isWifiCallingEnabled(mContext, SUB_ID_1, - mMockQueryWfcState, null)); + mMockQueryWfcState)); } private void setWifiCallingEnabled(boolean enabled){