Merge "[Settings] Apply WifiCallingQueryImsState" into rvc-dev am: 54002ca154
am: d2fe2c9959
am: fa83a139ca
Change-Id: I876086adfe4c5ec756daac8c1bb58aa64af25ce7
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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() {
|
||||||
|
@@ -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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
@@ -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) {}
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user