Merge "[Settings] Apply WifiCallingQueryImsState" into rvc-dev am: 54002ca154 am: d2fe2c9959 am: fa83a139ca

Change-Id: I876086adfe4c5ec756daac8c1bb58aa64af25ce7
This commit is contained in:
Bonian Chen
2020-03-31 16:50:57 +00:00
committed by Automerger Merge Worker
8 changed files with 89 additions and 111 deletions

View File

@@ -27,10 +27,6 @@ import android.util.Log;
import androidx.annotation.VisibleForTesting; 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 * Controller class for querying Wifi calling status
*/ */
@@ -66,12 +62,6 @@ public class WifiCallingQueryImsState extends ImsQueryController {
return (new ImsQueryWfcUserSetting(subId)).query(); 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 * Check whether Wifi Calling is a supported feature on this subscription
* *
@@ -107,8 +97,15 @@ public class WifiCallingQueryImsState extends ImsQueryController {
if (!SubscriptionManager.isValidSubscriptionId(mSubId)) { if (!SubscriptionManager.isValidSubscriptionId(mSubId)) {
return false; return false;
} }
return isWifiCallingProvisioned() if (!isWifiCallingProvisioned()) {
&& MobileNetworkUtils.isImsServiceStateReady(getImsManager(mSubId)); 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;
} }
/** /**

View File

@@ -54,9 +54,7 @@ import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.ims.WifiCallingQueryImsState; import com.android.settings.network.ims.WifiCallingQueryImsState;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.widget.SwitchBar; import com.android.settings.widget.SwitchBar;
/** /**
@@ -100,7 +98,6 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
private boolean mUseWfcHomeModeForRoaming = false; private boolean mUseWfcHomeModeForRoaming = false;
private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private com.android.ims.ImsManager mImsManager;
private ImsMmTelManager mImsMmTelManager; private ImsMmTelManager mImsMmTelManager;
private ProvisioningManager mProvisioningManager; private ProvisioningManager mProvisioningManager;
private TelephonyManager mTelephonyManager; private TelephonyManager mTelephonyManager;
@@ -270,12 +267,6 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
return ProvisioningManager.createForSubscriptionId(mSubId); return ProvisioningManager.createForSubscriptionId(mSubId);
} }
@VisibleForTesting
com.android.ims.ImsManager getImsManager() {
return com.android.ims.ImsManager.getInstance(getActivity(),
SubscriptionUtil.getPhoneId(getActivity(), mSubId));
}
@VisibleForTesting @VisibleForTesting
ImsMmTelManager getImsMmTelManager() { ImsMmTelManager getImsMmTelManager() {
if (!SubscriptionManager.isValidSubscriptionId(mSubId)) { if (!SubscriptionManager.isValidSubscriptionId(mSubId)) {
@@ -299,12 +290,9 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
FRAGMENT_BUNDLE_SUBID, SubscriptionManager.INVALID_SUBSCRIPTION_ID); FRAGMENT_BUNDLE_SUBID, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
} }
mImsManager = getImsManager();
mProvisioningManager = getImsProvisioningManager(); mProvisioningManager = getImsProvisioningManager();
mImsMmTelManager = getImsMmTelManager(); mImsMmTelManager = getImsMmTelManager();
mTelephonyManager = getActivity().getSystemService(TelephonyManager.class);
mButtonWfcMode = findPreference(BUTTON_WFC_MODE); mButtonWfcMode = findPreference(BUTTON_WFC_MODE);
mButtonWfcMode.setOnPreferenceChangeListener(this); mButtonWfcMode.setOnPreferenceChangeListener(this);
@@ -341,7 +329,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
@VisibleForTesting @VisibleForTesting
boolean isWfcProvisionedOnDevice() { boolean isWfcProvisionedOnDevice() {
return MobileNetworkUtils.isWfcProvisionedOnDevice(mSubId); return queryImsState(mSubId).isWifiCallingProvisioned();
} }
private void updateBody() { private void updateBody() {

View File

@@ -19,10 +19,8 @@ package com.android.settings.wifi.calling;
import android.content.Context; import android.content.Context;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import com.android.ims.ImsManager;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.network.ims.WifiCallingQueryImsState; import com.android.settings.network.ims.WifiCallingQueryImsState;
import com.android.settings.network.telephony.MobileNetworkUtils;
public class WifiCallingSuggestionActivity extends SettingsActivity { public class WifiCallingSuggestionActivity extends SettingsActivity {
@@ -30,11 +28,7 @@ public class WifiCallingSuggestionActivity extends SettingsActivity {
final WifiCallingQueryImsState queryState = final WifiCallingQueryImsState queryState =
new WifiCallingQueryImsState(context, new WifiCallingQueryImsState(context,
SubscriptionManager.getDefaultVoiceSubscriptionId()); SubscriptionManager.getDefaultVoiceSubscriptionId());
if (!ImsManager.isWfcEnabledByPlatform(context) || return (!queryState.isWifiCallingProvisioned())
!MobileNetworkUtils.isWfcProvisionedOnDevice( || (queryState.isEnabledByUser() && queryState.isAllowUserControl());
SubscriptionManager.getDefaultVoiceSubscriptionId())) {
return true;
}
return queryState.isEnabledByUser() && queryState.isAllowUserControl();
} }
} }

View File

@@ -19,9 +19,6 @@ package com.android.settings.network.ims;
import android.content.Context; import android.content.Context;
import android.telephony.ims.ImsException; import android.telephony.ims.ImsException;
import com.android.ims.ImsManager;
/** /**
* Controller class for mock Wifi calling status * Controller class for mock Wifi calling status
*/ */
@@ -30,6 +27,7 @@ public class MockWifiCallingQueryImsState extends WifiCallingQueryImsState {
private Boolean mIsTtyOnVolteEnabled; private Boolean mIsTtyOnVolteEnabled;
private Boolean mIsEnabledOnPlatform; private Boolean mIsEnabledOnPlatform;
private Boolean mIsProvisionedOnDevice; private Boolean mIsProvisionedOnDevice;
private Boolean mIsServiceStateReady;
private Boolean mIsEnabledByUser; private Boolean mIsEnabledByUser;
/** /**
@@ -42,10 +40,6 @@ public class MockWifiCallingQueryImsState extends WifiCallingQueryImsState {
super(context, subId); super(context, subId);
} }
public ImsManager getImsManager(int subId) {
return super.getImsManager(subId);
}
public void setIsTtyOnVolteEnabled(boolean enabled) { public void setIsTtyOnVolteEnabled(boolean enabled) {
mIsTtyOnVolteEnabled = enabled; mIsTtyOnVolteEnabled = enabled;
} }
@@ -84,6 +78,19 @@ public class MockWifiCallingQueryImsState extends WifiCallingQueryImsState {
return super.isProvisionedOnDevice(subId); 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) { public void setIsEnabledByUser(boolean enabled) {
mIsEnabledByUser = enabled; mIsEnabledByUser = enabled;
} }

View File

@@ -37,7 +37,6 @@ import android.telephony.ims.ImsMmTelManager;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.ims.ImsManager;
import com.android.internal.R; import com.android.internal.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.network.ims.MockWifiCallingQueryImsState; import com.android.settings.network.ims.MockWifiCallingQueryImsState;
@@ -60,8 +59,6 @@ public class WifiCallingPreferenceControllerTest {
@Mock @Mock
private TelephonyManager mTelephonyManager; private TelephonyManager mTelephonyManager;
@Mock @Mock
private ImsManager mImsManager;
@Mock
private ImsMmTelManager mImsMmTelManager; private ImsMmTelManager mImsMmTelManager;
@Mock @Mock
private PreferenceScreen mPreferenceScreen; private PreferenceScreen mPreferenceScreen;
@@ -79,9 +76,8 @@ public class WifiCallingPreferenceControllerTest {
mContext = spy(RuntimeEnvironment.application); mContext = spy(RuntimeEnvironment.application);
mQueryImsState = spy(new MockWifiCallingQueryImsState(mContext, SUB_ID)); mQueryImsState = new MockWifiCallingQueryImsState(mContext, SUB_ID);
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
doReturn(mImsManager).when(mQueryImsState).getImsManager(anyInt());
mQueryImsState.setIsProvisionedOnDevice(true); mQueryImsState.setIsProvisionedOnDevice(true);
mPreference = new Preference(mContext); mPreference = new Preference(mContext);
@@ -109,7 +105,7 @@ public class WifiCallingPreferenceControllerTest {
@Test @Test
public void updateState_noSimCallManager_setCorrectSummary() { public void updateState_noSimCallManager_setCorrectSummary() {
mController.mSimCallManager = null; mController.mSimCallManager = null;
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
when(mImsMmTelManager.getVoWiFiRoamingModeSetting()).thenReturn( when(mImsMmTelManager.getVoWiFiRoamingModeSetting()).thenReturn(
ImsMmTelManager.WIFI_MODE_WIFI_ONLY); ImsMmTelManager.WIFI_MODE_WIFI_ONLY);
when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn( when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
@@ -149,7 +145,7 @@ public class WifiCallingPreferenceControllerTest {
ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED); ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn( when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED); ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED);
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
when(mTelephonyManager.isNetworkRoaming()).thenReturn(true); when(mTelephonyManager.isNetworkRoaming()).thenReturn(true);
mController.updateState(mPreference); mController.updateState(mPreference);
@@ -166,7 +162,7 @@ public class WifiCallingPreferenceControllerTest {
ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED); ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn( when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED); ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED);
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
when(mTelephonyManager.isNetworkRoaming()).thenReturn(true); when(mTelephonyManager.isNetworkRoaming()).thenReturn(true);
mController.updateState(mPreference); mController.updateState(mPreference);

View File

@@ -50,16 +50,15 @@ import android.widget.TextView;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.ims.ImsConfig;
import com.android.ims.ImsManager;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsActivity; 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.testutils.shadow.ShadowFragment;
import com.android.settings.widget.SwitchBar; import com.android.settings.widget.SwitchBar;
import com.android.settings.widget.ToggleSwitch; import com.android.settings.widget.ToggleSwitch;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor; import org.mockito.ArgumentCaptor;
@@ -73,6 +72,8 @@ import org.robolectric.util.ReflectionHelpers;
@Config(shadows = ShadowFragment.class) @Config(shadows = ShadowFragment.class)
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class WifiCallingSettingsForSubTest { 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_MODE = "wifi_calling_mode";
private static final String BUTTON_WFC_ROAMING_MODE = "wifi_calling_roaming_mode"; private static final String BUTTON_WFC_ROAMING_MODE = "wifi_calling_roaming_mode";
private static final String TEST_EMERGENCY_ADDRESS_CARRIER_APP = private static final String TEST_EMERGENCY_ADDRESS_CARRIER_APP =
@@ -83,9 +84,10 @@ public class WifiCallingSettingsForSubTest {
private TextView mEmptyView; private TextView mEmptyView;
private final PersistableBundle mBundle = new PersistableBundle(); private final PersistableBundle mBundle = new PersistableBundle();
private MockWifiCallingQueryImsState mQueryImsState;
@Mock private static CarrierConfigManager sCarrierConfigManager; @Mock private static CarrierConfigManager sCarrierConfigManager;
@Mock private CarrierConfigManager mMockConfigManager; @Mock private CarrierConfigManager mMockConfigManager;
@Mock private ImsManager mImsManager;
@Mock private ImsMmTelManager mImsMmTelManager; @Mock private ImsMmTelManager mImsMmTelManager;
@Mock private TelephonyManager mTelephonyManager; @Mock private TelephonyManager mTelephonyManager;
@Mock private PreferenceScreen mPreferenceScreen; @Mock private PreferenceScreen mPreferenceScreen;
@@ -93,7 +95,6 @@ public class WifiCallingSettingsForSubTest {
@Mock private SwitchBar mSwitchBar; @Mock private SwitchBar mSwitchBar;
@Mock private ToggleSwitch mToggleSwitch; @Mock private ToggleSwitch mToggleSwitch;
@Mock private View mView; @Mock private View mView;
@Mock private ImsConfig mImsConfig;
@Mock private ListWithEntrySummaryPreference mButtonWfcMode; @Mock private ListWithEntrySummaryPreference mButtonWfcMode;
@Mock private ListWithEntrySummaryPreference mButtonWfcRoamingMode; @Mock private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
@Mock private Preference mUpdateAddress; @Mock private Preference mUpdateAddress;
@@ -127,12 +128,13 @@ public class WifiCallingSettingsForSubTest {
ReflectionHelpers.setField(mSwitchBar, "mSwitch", mToggleSwitch); ReflectionHelpers.setField(mSwitchBar, "mSwitch", mToggleSwitch);
doReturn(mSwitchBar).when(mView).findViewById(R.id.switch_bar); 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(mImsMmTelManager).when(mFragment).getImsMmTelManager();
doReturn(mImsConfig).when(mImsManager).getConfigInterface(); mQueryImsState.setIsProvisionedOnDevice(true);
doReturn(true).when(mFragment).isWfcProvisionedOnDevice(); mQueryImsState.setIsEnabledByPlatform(true);
doReturn(true).when(mImsManager).isWfcEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled(); mQueryImsState.setIsTtyOnVolteEnabled(true);
doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED) doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED)
.when(mImsMmTelManager).getVoWiFiModeSetting(); .when(mImsMmTelManager).getVoWiFiModeSetting();
doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED) doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED)
@@ -178,7 +180,7 @@ public class WifiCallingSettingsForSubTest {
@Test @Test
public void onResume_provisioningDisallowed_shouldFinish() { public void onResume_provisioningDisallowed_shouldFinish() {
// Call onResume while provisioning is disallowed. // Call onResume while provisioning is disallowed.
doReturn(false).when(mFragment).isWfcProvisionedOnDevice(); mQueryImsState.setIsProvisionedOnDevice(false);
mFragment.onResume(); mFragment.onResume();
// Verify that finish() is called // Verify that finish() is called
@@ -197,7 +199,6 @@ public class WifiCallingSettingsForSubTest {
} }
@Test @Test
@Ignore
public void onResume_useWfcHomeModeConfigFalseAndEditable_shouldShowWfcRoaming() { public void onResume_useWfcHomeModeConfigFalseAndEditable_shouldShowWfcRoaming() {
// Call onResume to update the WFC roaming preference. // Call onResume to update the WFC roaming preference.
mFragment.onResume(); mFragment.onResume();
@@ -357,6 +358,11 @@ public class WifiCallingSettingsForSubTest {
return mTelephonyManager; return mTelephonyManager;
} }
@Override
WifiCallingQueryImsState queryImsState(int subId) {
return mQueryImsState;
}
@Override @Override
void showAlert(Intent intent) {} void showAlert(Intent intent) {}
} }

View File

@@ -18,7 +18,6 @@ package com.android.settings.wifi.calling;
import static com.google.common.truth.Truth.assertThat; 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.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
@@ -72,12 +71,10 @@ public class WifiCallingSettingsTest {
mContext = spy(RuntimeEnvironment.application); mContext = spy(RuntimeEnvironment.application);
mQueryImsState1 = spy(new MockWifiCallingQueryImsState(mContext, SUB_ID1)); mQueryImsState1 = new MockWifiCallingQueryImsState(mContext, SUB_ID1);
mQueryImsState2 = spy(new MockWifiCallingQueryImsState(mContext, SUB_ID2)); mQueryImsState2 = new MockWifiCallingQueryImsState(mContext, SUB_ID2);
doReturn(true).when(mQueryImsState1).isEnabledByUser(); mQueryImsState1.setIsEnabledByUser(true);
doReturn(true).when(mQueryImsState2).isEnabledByUser(); mQueryImsState2.setIsEnabledByUser(true);
doReturn(mImsManager).when(mQueryImsState1).getImsManager(anyInt());
doReturn(mImsManager).when(mQueryImsState2).getImsManager(anyInt());
mQueryImsState1.setIsEnabledByPlatform(true); mQueryImsState1.setIsEnabledByPlatform(true);
mQueryImsState2.setIsEnabledByPlatform(true); mQueryImsState2.setIsEnabledByPlatform(true);
mQueryImsState1.setIsProvisionedOnDevice(true); mQueryImsState1.setIsProvisionedOnDevice(true);

View File

@@ -47,7 +47,7 @@ import androidx.slice.widget.SliceLiveData;
import com.android.ims.ImsManager; import com.android.ims.ImsManager;
import com.android.settings.R; 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.CustomSliceRegistry;
import com.android.settings.slices.SettingsSliceProvider; import com.android.settings.slices.SettingsSliceProvider;
import com.android.settings.slices.SliceBroadcastReceiver; import com.android.settings.slices.SliceBroadcastReceiver;
@@ -81,7 +81,7 @@ public class WifiCallingSliceHelperTest {
@Mock @Mock
private ImsMmTelManager mMockImsMmTelManager; private ImsMmTelManager mMockImsMmTelManager;
private WifiCallingQueryImsState mQueryImsState; private MockWifiCallingQueryImsState mQueryImsState;
private FakeWifiCallingSliceHelper mWfcSliceHelper; private FakeWifiCallingSliceHelper mWfcSliceHelper;
private SettingsSliceProvider mProvider; private SettingsSliceProvider mProvider;
@@ -105,9 +105,10 @@ public class WifiCallingSliceHelperTest {
mFeatureFactory = FakeFeatureFactory.setupForTest(); mFeatureFactory = FakeFeatureFactory.setupForTest();
mSlicesFeatureProvider = mFeatureFactory.getSlicesFeatureProvider(); mSlicesFeatureProvider = mFeatureFactory.getSlicesFeatureProvider();
mQueryImsState = spy(new WifiCallingQueryImsState(mContext, SUB_ID)); mQueryImsState = new MockWifiCallingQueryImsState(mContext, SUB_ID);
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsEnabledByPlatform(true);
mQueryImsState.setIsProvisionedOnDevice(true);
mWfcSliceHelper = spy(new FakeWifiCallingSliceHelper(mContext)); mWfcSliceHelper = spy(new FakeWifiCallingSliceHelper(mContext));
doReturn(mQueryImsState).when(mWfcSliceHelper).queryImsState(anyInt()); doReturn(mQueryImsState).when(mWfcSliceHelper).queryImsState(anyInt());
@@ -118,8 +119,8 @@ public class WifiCallingSliceHelperTest {
@Test @Test
public void test_CreateWifiCallingSlice_invalidSubId() { public void test_CreateWifiCallingSlice_invalidSubId() {
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
doReturn(false).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsProvisionedOnDevice(false);
mWfcSliceHelper.setDefaultVoiceSubId(-1); mWfcSliceHelper.setDefaultVoiceSubId(-1);
final Slice slice = mWfcSliceHelper.createWifiCallingSlice( final Slice slice = mWfcSliceHelper.createWifiCallingSlice(
@@ -130,7 +131,7 @@ public class WifiCallingSliceHelperTest {
@Test @Test
public void test_CreateWifiCallingSlice_wfcNotSupported() { public void test_CreateWifiCallingSlice_wfcNotSupported() {
doReturn(false).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsProvisionedOnDevice(false);
final Slice slice = mWfcSliceHelper.createWifiCallingSlice( final Slice slice = mWfcSliceHelper.createWifiCallingSlice(
CustomSliceRegistry.WIFI_CALLING_URI); CustomSliceRegistry.WIFI_CALLING_URI);
@@ -146,9 +147,9 @@ public class WifiCallingSliceHelperTest {
turned off) we need to guide the user to wifi calling settings turned off) we need to guide the user to wifi calling settings
activity so the user can perform the activation there.(PrimaryAction) activity so the user can perform the activation there.(PrimaryAction)
*/ */
doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsProvisionedOnDevice(true);
doReturn(false).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(false);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(false); mQueryImsState.setIsTtyOnVolteEnabled(false);
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null); when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
mWfcSliceHelper.setActivationAppIntent(new Intent()); // dummy Intent mWfcSliceHelper.setActivationAppIntent(new Intent()); // dummy Intent
@@ -163,9 +164,9 @@ public class WifiCallingSliceHelperTest {
@Test @Test
public void test_CreateWifiCallingSlice_success() { public void test_CreateWifiCallingSlice_success() {
doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsProvisionedOnDevice(true);
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); mQueryImsState.setIsTtyOnVolteEnabled(true);
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null); when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
final Slice slice = mWfcSliceHelper.createWifiCallingSlice( final Slice slice = mWfcSliceHelper.createWifiCallingSlice(
@@ -177,9 +178,9 @@ public class WifiCallingSliceHelperTest {
@Test @Test
public void test_SettingSliceProvider_getsRightSliceWifiCalling() { public void test_SettingSliceProvider_getsRightSliceWifiCalling() {
doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsProvisionedOnDevice(true);
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); mQueryImsState.setIsTtyOnVolteEnabled(true);
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null); when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext)) when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
.thenReturn(mWfcSliceHelper); .thenReturn(mWfcSliceHelper);
@@ -192,9 +193,9 @@ public class WifiCallingSliceHelperTest {
@Test @Test
public void test_SliceBroadcastReceiver_toggleOnWifiCalling() { public void test_SliceBroadcastReceiver_toggleOnWifiCalling() {
doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsProvisionedOnDevice(true);
doReturn(false).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(false);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); mQueryImsState.setIsTtyOnVolteEnabled(true);
when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext)) when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
.thenReturn(mWfcSliceHelper); .thenReturn(mWfcSliceHelper);
mWfcSliceHelper.setActivationAppIntent(null); mWfcSliceHelper.setActivationAppIntent(null);
@@ -216,9 +217,9 @@ public class WifiCallingSliceHelperTest {
@Test @Test
public void test_CreateWifiCallingPreferenceSlice_prefNotEditable() { public void test_CreateWifiCallingPreferenceSlice_prefNotEditable() {
doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsProvisionedOnDevice(true);
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); mQueryImsState.setIsTtyOnVolteEnabled(true);
mWfcSliceHelper.setIsWifiCallingPrefEditable(false); mWfcSliceHelper.setIsWifiCallingPrefEditable(false);
final Slice slice = mWfcSliceHelper.createWifiCallingPreferenceSlice( final Slice slice = mWfcSliceHelper.createWifiCallingPreferenceSlice(
@@ -230,9 +231,9 @@ public class WifiCallingSliceHelperTest {
@Test @Test
public void test_CreateWifiCallingPreferenceSlice_wfcOff() { public void test_CreateWifiCallingPreferenceSlice_wfcOff() {
doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsProvisionedOnDevice(true);
doReturn(false).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(false);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); mQueryImsState.setIsTtyOnVolteEnabled(true);
mWfcSliceHelper.setIsWifiCallingPrefEditable(true); mWfcSliceHelper.setIsWifiCallingPrefEditable(true);
final Slice slice = mWfcSliceHelper.createWifiCallingPreferenceSlice( final Slice slice = mWfcSliceHelper.createWifiCallingPreferenceSlice(
@@ -246,9 +247,9 @@ public class WifiCallingSliceHelperTest {
@Test @Test
public void test_CreateWifiCallingPreferenceSlice_success() { public void test_CreateWifiCallingPreferenceSlice_success() {
doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsProvisionedOnDevice(true);
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); mQueryImsState.setIsTtyOnVolteEnabled(true);
when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn( when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED); ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
mWfcSliceHelper.setIsWifiCallingPrefEditable(true); mWfcSliceHelper.setIsWifiCallingPrefEditable(true);
@@ -263,9 +264,9 @@ public class WifiCallingSliceHelperTest {
@Test @Test
public void test_SettingsSliceProvider_getWfcPreferenceSlice() { public void test_SettingsSliceProvider_getWfcPreferenceSlice() {
doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsProvisionedOnDevice(true);
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); mQueryImsState.setIsTtyOnVolteEnabled(true);
when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn( when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED); ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext)) when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
@@ -281,9 +282,9 @@ public class WifiCallingSliceHelperTest {
} }
@Test @Test
public void test_SliceBroadcastReceiver_setWfcPrefCellularPref() { public void test_SliceBroadcastReceiver_setWfcPrefCellularPref() {
doReturn(true).when(mQueryImsState).isWifiCallingProvisioned(); mQueryImsState.setIsProvisionedOnDevice(true);
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true); mQueryImsState.setIsTtyOnVolteEnabled(true);
when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn( when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED); ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext)) when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
@@ -447,14 +448,6 @@ public class WifiCallingSliceHelperTest {
mSubId = id; mSubId = id;
} }
boolean isWfcProvisionedOnDevice(int subId) {
return true;
}
WifiCallingQueryImsState queryImsState(int subId) {
return super.queryImsState(subId);
}
@Override @Override
protected Intent getWifiCallingCarrierActivityIntent(int subId) { protected Intent getWifiCallingCarrierActivityIntent(int subId) {
return mActivationAppIntent; return mActivationAppIntent;