diff --git a/src/com/android/settings/network/ims/WifiCallingQueryImsState.java b/src/com/android/settings/network/ims/WifiCallingQueryImsState.java index 6ed0d606590..efa93e5abe5 100644 --- a/src/com/android/settings/network/ims/WifiCallingQueryImsState.java +++ b/src/com/android/settings/network/ims/WifiCallingQueryImsState.java @@ -27,10 +27,6 @@ import android.util.Log; import androidx.annotation.VisibleForTesting; -import com.android.ims.ImsManager; -import com.android.settings.network.SubscriptionUtil; -import com.android.settings.network.telephony.MobileNetworkUtils; - /** * Controller class for querying Wifi calling status */ @@ -66,12 +62,6 @@ public class WifiCallingQueryImsState extends ImsQueryController { return (new ImsQueryWfcUserSetting(subId)).query(); } - @VisibleForTesting - ImsManager getImsManager(int subId) { - return ImsManager.getInstance(mContext, - SubscriptionUtil.getPhoneId(mContext, subId)); - } - /** * Check whether Wifi Calling is a supported feature on this subscription * @@ -107,8 +97,15 @@ public class WifiCallingQueryImsState extends ImsQueryController { if (!SubscriptionManager.isValidSubscriptionId(mSubId)) { return false; } - return isWifiCallingProvisioned() - && MobileNetworkUtils.isImsServiceStateReady(getImsManager(mSubId)); + if (!isWifiCallingProvisioned()) { + return false; + } + try { + return isServiceStateReady(mSubId); + } catch (InterruptedException | IllegalArgumentException | ImsException exception) { + Log.w(LOG_TAG, "fail to get WFC service status. subId=" + mSubId, exception); + } + return false; } /** diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java index 6b279ed947d..735fecc9c9a 100644 --- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java +++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java @@ -54,9 +54,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.Utils; import com.android.settings.core.SubSettingLauncher; -import com.android.settings.network.SubscriptionUtil; import com.android.settings.network.ims.WifiCallingQueryImsState; -import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.widget.SwitchBar; /** @@ -100,7 +98,6 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment private boolean mUseWfcHomeModeForRoaming = false; private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; - private com.android.ims.ImsManager mImsManager; private ImsMmTelManager mImsMmTelManager; private ProvisioningManager mProvisioningManager; private TelephonyManager mTelephonyManager; @@ -270,12 +267,6 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment return ProvisioningManager.createForSubscriptionId(mSubId); } - @VisibleForTesting - com.android.ims.ImsManager getImsManager() { - return com.android.ims.ImsManager.getInstance(getActivity(), - SubscriptionUtil.getPhoneId(getActivity(), mSubId)); - } - @VisibleForTesting ImsMmTelManager getImsMmTelManager() { if (!SubscriptionManager.isValidSubscriptionId(mSubId)) { @@ -299,12 +290,9 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment FRAGMENT_BUNDLE_SUBID, SubscriptionManager.INVALID_SUBSCRIPTION_ID); } - mImsManager = getImsManager(); mProvisioningManager = getImsProvisioningManager(); mImsMmTelManager = getImsMmTelManager(); - mTelephonyManager = getActivity().getSystemService(TelephonyManager.class); - mButtonWfcMode = findPreference(BUTTON_WFC_MODE); mButtonWfcMode.setOnPreferenceChangeListener(this); @@ -341,7 +329,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment @VisibleForTesting boolean isWfcProvisionedOnDevice() { - return MobileNetworkUtils.isWfcProvisionedOnDevice(mSubId); + return queryImsState(mSubId).isWifiCallingProvisioned(); } private void updateBody() { diff --git a/src/com/android/settings/wifi/calling/WifiCallingSuggestionActivity.java b/src/com/android/settings/wifi/calling/WifiCallingSuggestionActivity.java index 0e3b8872d27..6b6eebfe3a0 100644 --- a/src/com/android/settings/wifi/calling/WifiCallingSuggestionActivity.java +++ b/src/com/android/settings/wifi/calling/WifiCallingSuggestionActivity.java @@ -19,10 +19,8 @@ package com.android.settings.wifi.calling; import android.content.Context; import android.telephony.SubscriptionManager; -import com.android.ims.ImsManager; import com.android.settings.SettingsActivity; import com.android.settings.network.ims.WifiCallingQueryImsState; -import com.android.settings.network.telephony.MobileNetworkUtils; public class WifiCallingSuggestionActivity extends SettingsActivity { @@ -30,11 +28,7 @@ public class WifiCallingSuggestionActivity extends SettingsActivity { final WifiCallingQueryImsState queryState = new WifiCallingQueryImsState(context, SubscriptionManager.getDefaultVoiceSubscriptionId()); - if (!ImsManager.isWfcEnabledByPlatform(context) || - !MobileNetworkUtils.isWfcProvisionedOnDevice( - SubscriptionManager.getDefaultVoiceSubscriptionId())) { - return true; - } - return queryState.isEnabledByUser() && queryState.isAllowUserControl(); + return (!queryState.isWifiCallingProvisioned()) + || (queryState.isEnabledByUser() && queryState.isAllowUserControl()); } } diff --git a/tests/robotests/src/com/android/settings/network/ims/MockWifiCallingQueryImsState.java b/tests/robotests/src/com/android/settings/network/ims/MockWifiCallingQueryImsState.java index af1031da07f..abea839791e 100644 --- a/tests/robotests/src/com/android/settings/network/ims/MockWifiCallingQueryImsState.java +++ b/tests/robotests/src/com/android/settings/network/ims/MockWifiCallingQueryImsState.java @@ -19,9 +19,6 @@ package com.android.settings.network.ims; import android.content.Context; import android.telephony.ims.ImsException; -import com.android.ims.ImsManager; - - /** * Controller class for mock Wifi calling status */ @@ -30,6 +27,7 @@ public class MockWifiCallingQueryImsState extends WifiCallingQueryImsState { private Boolean mIsTtyOnVolteEnabled; private Boolean mIsEnabledOnPlatform; private Boolean mIsProvisionedOnDevice; + private Boolean mIsServiceStateReady; private Boolean mIsEnabledByUser; /** @@ -42,10 +40,6 @@ public class MockWifiCallingQueryImsState extends WifiCallingQueryImsState { super(context, subId); } - public ImsManager getImsManager(int subId) { - return super.getImsManager(subId); - } - public void setIsTtyOnVolteEnabled(boolean enabled) { mIsTtyOnVolteEnabled = enabled; } @@ -84,6 +78,19 @@ public class MockWifiCallingQueryImsState extends WifiCallingQueryImsState { return super.isProvisionedOnDevice(subId); } + public void setServiceStateReady(boolean isReady) { + mIsServiceStateReady = isReady; + } + + @Override + boolean isServiceStateReady(int subId) throws InterruptedException, ImsException, + IllegalArgumentException { + if (mIsServiceStateReady != null) { + return mIsServiceStateReady; + } + return super.isServiceStateReady(subId); + } + public void setIsEnabledByUser(boolean enabled) { mIsEnabledByUser = enabled; } diff --git a/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java index b91f7188aef..dbfd3b24766 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java @@ -37,7 +37,6 @@ import android.telephony.ims.ImsMmTelManager; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; -import com.android.ims.ImsManager; import com.android.internal.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.network.ims.MockWifiCallingQueryImsState; @@ -60,8 +59,6 @@ public class WifiCallingPreferenceControllerTest { @Mock private TelephonyManager mTelephonyManager; @Mock - private ImsManager mImsManager; - @Mock private ImsMmTelManager mImsMmTelManager; @Mock private PreferenceScreen mPreferenceScreen; @@ -79,9 +76,8 @@ public class WifiCallingPreferenceControllerTest { mContext = spy(RuntimeEnvironment.application); - mQueryImsState = spy(new MockWifiCallingQueryImsState(mContext, SUB_ID)); - doReturn(true).when(mQueryImsState).isEnabledByUser(); - doReturn(mImsManager).when(mQueryImsState).getImsManager(anyInt()); + mQueryImsState = new MockWifiCallingQueryImsState(mContext, SUB_ID); + mQueryImsState.setIsEnabledByUser(true); mQueryImsState.setIsProvisionedOnDevice(true); mPreference = new Preference(mContext); @@ -109,7 +105,7 @@ public class WifiCallingPreferenceControllerTest { @Test public void updateState_noSimCallManager_setCorrectSummary() { mController.mSimCallManager = null; - doReturn(true).when(mQueryImsState).isEnabledByUser(); + mQueryImsState.setIsEnabledByUser(true); when(mImsMmTelManager.getVoWiFiRoamingModeSetting()).thenReturn( ImsMmTelManager.WIFI_MODE_WIFI_ONLY); when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn( @@ -149,7 +145,7 @@ public class WifiCallingPreferenceControllerTest { ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED); when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn( ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED); - doReturn(true).when(mQueryImsState).isEnabledByUser(); + mQueryImsState.setIsEnabledByUser(true); when(mTelephonyManager.isNetworkRoaming()).thenReturn(true); mController.updateState(mPreference); @@ -166,7 +162,7 @@ public class WifiCallingPreferenceControllerTest { ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED); when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn( ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED); - doReturn(true).when(mQueryImsState).isEnabledByUser(); + mQueryImsState.setIsEnabledByUser(true); when(mTelephonyManager.isNetworkRoaming()).thenReturn(true); mController.updateState(mPreference); diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java index a9df33d36c6..2e93faac27e 100644 --- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java +++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java @@ -50,16 +50,15 @@ import android.widget.TextView; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; -import com.android.ims.ImsConfig; -import com.android.ims.ImsManager; import com.android.settings.R; import com.android.settings.SettingsActivity; +import com.android.settings.network.ims.MockWifiCallingQueryImsState; +import com.android.settings.network.ims.WifiCallingQueryImsState; import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settings.widget.SwitchBar; import com.android.settings.widget.ToggleSwitch; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -73,6 +72,8 @@ import org.robolectric.util.ReflectionHelpers; @Config(shadows = ShadowFragment.class) @RunWith(RobolectricTestRunner.class) public class WifiCallingSettingsForSubTest { + private static final int SUB_ID = 2; + private static final String BUTTON_WFC_MODE = "wifi_calling_mode"; private static final String BUTTON_WFC_ROAMING_MODE = "wifi_calling_roaming_mode"; private static final String TEST_EMERGENCY_ADDRESS_CARRIER_APP = @@ -83,9 +84,10 @@ public class WifiCallingSettingsForSubTest { private TextView mEmptyView; private final PersistableBundle mBundle = new PersistableBundle(); + private MockWifiCallingQueryImsState mQueryImsState; + @Mock private static CarrierConfigManager sCarrierConfigManager; @Mock private CarrierConfigManager mMockConfigManager; - @Mock private ImsManager mImsManager; @Mock private ImsMmTelManager mImsMmTelManager; @Mock private TelephonyManager mTelephonyManager; @Mock private PreferenceScreen mPreferenceScreen; @@ -93,7 +95,6 @@ public class WifiCallingSettingsForSubTest { @Mock private SwitchBar mSwitchBar; @Mock private ToggleSwitch mToggleSwitch; @Mock private View mView; - @Mock private ImsConfig mImsConfig; @Mock private ListWithEntrySummaryPreference mButtonWfcMode; @Mock private ListWithEntrySummaryPreference mButtonWfcRoamingMode; @Mock private Preference mUpdateAddress; @@ -127,12 +128,13 @@ public class WifiCallingSettingsForSubTest { ReflectionHelpers.setField(mSwitchBar, "mSwitch", mToggleSwitch); doReturn(mSwitchBar).when(mView).findViewById(R.id.switch_bar); - doReturn(mImsManager).when(mFragment).getImsManager(); + mQueryImsState = new MockWifiCallingQueryImsState(mContext, SUB_ID); + doReturn(mImsMmTelManager).when(mFragment).getImsMmTelManager(); - doReturn(mImsConfig).when(mImsManager).getConfigInterface(); - doReturn(true).when(mFragment).isWfcProvisionedOnDevice(); - doReturn(true).when(mImsManager).isWfcEnabledByUser(); - doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled(); + mQueryImsState.setIsProvisionedOnDevice(true); + mQueryImsState.setIsEnabledByPlatform(true); + mQueryImsState.setIsEnabledByUser(true); + mQueryImsState.setIsTtyOnVolteEnabled(true); doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED) .when(mImsMmTelManager).getVoWiFiModeSetting(); doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED) @@ -178,7 +180,7 @@ public class WifiCallingSettingsForSubTest { @Test public void onResume_provisioningDisallowed_shouldFinish() { // Call onResume while provisioning is disallowed. - doReturn(false).when(mFragment).isWfcProvisionedOnDevice(); + mQueryImsState.setIsProvisionedOnDevice(false); mFragment.onResume(); // Verify that finish() is called @@ -197,7 +199,6 @@ public class WifiCallingSettingsForSubTest { } @Test - @Ignore public void onResume_useWfcHomeModeConfigFalseAndEditable_shouldShowWfcRoaming() { // Call onResume to update the WFC roaming preference. mFragment.onResume(); @@ -357,6 +358,11 @@ public class WifiCallingSettingsForSubTest { return mTelephonyManager; } + @Override + WifiCallingQueryImsState queryImsState(int subId) { + return mQueryImsState; + } + @Override void showAlert(Intent intent) {} } diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java index 90633cb8d6b..1ba8e7a44fa 100644 --- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java @@ -18,7 +18,6 @@ package com.android.settings.wifi.calling; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; @@ -72,12 +71,10 @@ public class WifiCallingSettingsTest { mContext = spy(RuntimeEnvironment.application); - mQueryImsState1 = spy(new MockWifiCallingQueryImsState(mContext, SUB_ID1)); - mQueryImsState2 = spy(new MockWifiCallingQueryImsState(mContext, SUB_ID2)); - doReturn(true).when(mQueryImsState1).isEnabledByUser(); - doReturn(true).when(mQueryImsState2).isEnabledByUser(); - doReturn(mImsManager).when(mQueryImsState1).getImsManager(anyInt()); - doReturn(mImsManager).when(mQueryImsState2).getImsManager(anyInt()); + mQueryImsState1 = new MockWifiCallingQueryImsState(mContext, SUB_ID1); + mQueryImsState2 = new MockWifiCallingQueryImsState(mContext, SUB_ID2); + mQueryImsState1.setIsEnabledByUser(true); + mQueryImsState2.setIsEnabledByUser(true); mQueryImsState1.setIsEnabledByPlatform(true); mQueryImsState2.setIsEnabledByPlatform(true); mQueryImsState1.setIsProvisionedOnDevice(true); diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java index f537be32c3e..0013234c950 100644 --- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java +++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java @@ -47,7 +47,7 @@ import androidx.slice.widget.SliceLiveData; import com.android.ims.ImsManager; import com.android.settings.R; -import com.android.settings.network.ims.WifiCallingQueryImsState; +import com.android.settings.network.ims.MockWifiCallingQueryImsState; import com.android.settings.slices.CustomSliceRegistry; import com.android.settings.slices.SettingsSliceProvider; import com.android.settings.slices.SliceBroadcastReceiver; @@ -81,7 +81,7 @@ public class WifiCallingSliceHelperTest { @Mock private ImsMmTelManager mMockImsMmTelManager; - private WifiCallingQueryImsState mQueryImsState; + private MockWifiCallingQueryImsState mQueryImsState; private FakeWifiCallingSliceHelper mWfcSliceHelper; private SettingsSliceProvider mProvider; @@ -105,9 +105,10 @@ public class WifiCallingSliceHelperTest { mFeatureFactory = FakeFeatureFactory.setupForTest(); mSlicesFeatureProvider = mFeatureFactory.getSlicesFeatureProvider(); - mQueryImsState = spy(new WifiCallingQueryImsState(mContext, SUB_ID)); - doReturn(true).when(mQueryImsState).isEnabledByUser(); - doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); + mQueryImsState = new MockWifiCallingQueryImsState(mContext, SUB_ID); + mQueryImsState.setIsEnabledByUser(true); + mQueryImsState.setIsEnabledByPlatform(true); + mQueryImsState.setIsProvisionedOnDevice(true); mWfcSliceHelper = spy(new FakeWifiCallingSliceHelper(mContext)); doReturn(mQueryImsState).when(mWfcSliceHelper).queryImsState(anyInt()); @@ -118,8 +119,8 @@ public class WifiCallingSliceHelperTest { @Test public void test_CreateWifiCallingSlice_invalidSubId() { - doReturn(true).when(mQueryImsState).isEnabledByUser(); - doReturn(false).when(mQueryImsState).isWifiCallingProvisioned(); + mQueryImsState.setIsEnabledByUser(true); + mQueryImsState.setIsProvisionedOnDevice(false); mWfcSliceHelper.setDefaultVoiceSubId(-1); final Slice slice = mWfcSliceHelper.createWifiCallingSlice( @@ -130,7 +131,7 @@ public class WifiCallingSliceHelperTest { @Test public void test_CreateWifiCallingSlice_wfcNotSupported() { - doReturn(false).when(mQueryImsState).isWifiCallingProvisioned(); + mQueryImsState.setIsProvisionedOnDevice(false); final Slice slice = mWfcSliceHelper.createWifiCallingSlice( CustomSliceRegistry.WIFI_CALLING_URI); @@ -146,9 +147,9 @@ public class WifiCallingSliceHelperTest { turned off) we need to guide the user to wifi calling settings activity so the user can perform the activation there.(PrimaryAction) */ - doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); - doReturn(false).when(mQueryImsState).isEnabledByUser(); - when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(false); + mQueryImsState.setIsProvisionedOnDevice(true); + mQueryImsState.setIsEnabledByUser(false); + mQueryImsState.setIsTtyOnVolteEnabled(false); when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null); mWfcSliceHelper.setActivationAppIntent(new Intent()); // dummy Intent @@ -163,9 +164,9 @@ public class WifiCallingSliceHelperTest { @Test public void test_CreateWifiCallingSlice_success() { - doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); - doReturn(true).when(mQueryImsState).isEnabledByUser(); - when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); + mQueryImsState.setIsProvisionedOnDevice(true); + mQueryImsState.setIsEnabledByUser(true); + mQueryImsState.setIsTtyOnVolteEnabled(true); when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null); final Slice slice = mWfcSliceHelper.createWifiCallingSlice( @@ -177,9 +178,9 @@ public class WifiCallingSliceHelperTest { @Test public void test_SettingSliceProvider_getsRightSliceWifiCalling() { - doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); - doReturn(true).when(mQueryImsState).isEnabledByUser(); - when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); + mQueryImsState.setIsProvisionedOnDevice(true); + mQueryImsState.setIsEnabledByUser(true); + mQueryImsState.setIsTtyOnVolteEnabled(true); when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null); when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext)) .thenReturn(mWfcSliceHelper); @@ -192,9 +193,9 @@ public class WifiCallingSliceHelperTest { @Test public void test_SliceBroadcastReceiver_toggleOnWifiCalling() { - doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); - doReturn(false).when(mQueryImsState).isEnabledByUser(); - when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); + mQueryImsState.setIsProvisionedOnDevice(true); + mQueryImsState.setIsEnabledByUser(false); + mQueryImsState.setIsTtyOnVolteEnabled(true); when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext)) .thenReturn(mWfcSliceHelper); mWfcSliceHelper.setActivationAppIntent(null); @@ -216,9 +217,9 @@ public class WifiCallingSliceHelperTest { @Test public void test_CreateWifiCallingPreferenceSlice_prefNotEditable() { - doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); - doReturn(true).when(mQueryImsState).isEnabledByUser(); - when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); + mQueryImsState.setIsProvisionedOnDevice(true); + mQueryImsState.setIsEnabledByUser(true); + mQueryImsState.setIsTtyOnVolteEnabled(true); mWfcSliceHelper.setIsWifiCallingPrefEditable(false); final Slice slice = mWfcSliceHelper.createWifiCallingPreferenceSlice( @@ -230,9 +231,9 @@ public class WifiCallingSliceHelperTest { @Test public void test_CreateWifiCallingPreferenceSlice_wfcOff() { - doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); - doReturn(false).when(mQueryImsState).isEnabledByUser(); - when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); + mQueryImsState.setIsProvisionedOnDevice(true); + mQueryImsState.setIsEnabledByUser(false); + mQueryImsState.setIsTtyOnVolteEnabled(true); mWfcSliceHelper.setIsWifiCallingPrefEditable(true); final Slice slice = mWfcSliceHelper.createWifiCallingPreferenceSlice( @@ -246,9 +247,9 @@ public class WifiCallingSliceHelperTest { @Test public void test_CreateWifiCallingPreferenceSlice_success() { - doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); - doReturn(true).when(mQueryImsState).isEnabledByUser(); - when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); + mQueryImsState.setIsProvisionedOnDevice(true); + mQueryImsState.setIsEnabledByUser(true); + mQueryImsState.setIsTtyOnVolteEnabled(true); when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn( ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED); mWfcSliceHelper.setIsWifiCallingPrefEditable(true); @@ -263,9 +264,9 @@ public class WifiCallingSliceHelperTest { @Test public void test_SettingsSliceProvider_getWfcPreferenceSlice() { - doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); - doReturn(true).when(mQueryImsState).isEnabledByUser(); - when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); + mQueryImsState.setIsProvisionedOnDevice(true); + mQueryImsState.setIsEnabledByUser(true); + mQueryImsState.setIsTtyOnVolteEnabled(true); when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn( ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED); when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext)) @@ -281,9 +282,9 @@ public class WifiCallingSliceHelperTest { } @Test public void test_SliceBroadcastReceiver_setWfcPrefCellularPref() { - doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); - doReturn(true).when(mQueryImsState).isEnabledByUser(); - when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); + mQueryImsState.setIsProvisionedOnDevice(true); + mQueryImsState.setIsEnabledByUser(true); + mQueryImsState.setIsTtyOnVolteEnabled(true); when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn( ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED); when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext)) @@ -447,14 +448,6 @@ public class WifiCallingSliceHelperTest { mSubId = id; } - boolean isWfcProvisionedOnDevice(int subId) { - return true; - } - - WifiCallingQueryImsState queryImsState(int subId) { - return super.queryImsState(subId); - } - @Override protected Intent getWifiCallingCarrierActivityIntent(int subId) { return mActivationAppIntent;