Merge "[Settings] Replace VT and VOLTE provisioning API"
This commit is contained in:
@@ -26,6 +26,9 @@ import android.os.PersistableBundle;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.telephony.ims.ProvisioningManager;
|
||||
import android.telephony.ims.feature.MmTelFeature;
|
||||
import android.telephony.ims.stub.ImsRegistrationImplBase;
|
||||
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
@@ -55,6 +58,8 @@ public class Enhanced4gBasePreferenceControllerTest {
|
||||
private CarrierConfigManager mCarrierConfigManager;
|
||||
@Mock
|
||||
private ImsManager mImsManager;
|
||||
@Mock
|
||||
private ProvisioningManager mProvisioningManager;
|
||||
|
||||
private Enhanced4gLtePreferenceController mController;
|
||||
private SwitchPreference mPreference;
|
||||
@@ -77,7 +82,12 @@ public class Enhanced4gBasePreferenceControllerTest {
|
||||
doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
|
||||
|
||||
mPreference = new RestrictedSwitchPreference(mContext);
|
||||
mController = new Enhanced4gLtePreferenceController(mContext, "roaming");
|
||||
mController = new Enhanced4gLtePreferenceController(mContext, "roaming") {
|
||||
@Override
|
||||
ProvisioningManager getProvisioningManager(int subId) {
|
||||
return mProvisioningManager;
|
||||
}
|
||||
};
|
||||
mController.init(SUB_ID);
|
||||
mController.mImsManager = mImsManager;
|
||||
mPreference.setKey(mController.getPreferenceKey());
|
||||
@@ -94,7 +104,9 @@ public class Enhanced4gBasePreferenceControllerTest {
|
||||
@Test
|
||||
public void getAvailabilityStatus_volteDisabled_returnUnavailable() {
|
||||
doReturn(false).when(mImsManager).isVolteEnabledByPlatform();
|
||||
doReturn(true).when(mImsManager).isVolteProvisionedOnDevice();
|
||||
doReturn(true).when(mProvisioningManager).getProvisioningStatusForCapability(
|
||||
MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
|
||||
ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
|
||||
@@ -104,7 +116,7 @@ public class Enhanced4gBasePreferenceControllerTest {
|
||||
public void updateState_configEnabled_prefEnabled() {
|
||||
mPreference.setEnabled(false);
|
||||
mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 1);
|
||||
doReturn(TelephonyManager.CALL_STATE_IDLE).when(mTelephonyManager).getCallState(SUB_ID);
|
||||
mController.mCallState = TelephonyManager.CALL_STATE_IDLE;
|
||||
doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
|
||||
mCarrierConfig.putBoolean(CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL, true);
|
||||
|
||||
|
@@ -31,6 +31,9 @@ import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.ims.ProvisioningManager;
|
||||
import android.telephony.ims.feature.MmTelFeature;
|
||||
import android.telephony.ims.stub.ImsRegistrationImplBase;
|
||||
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.SliceItem;
|
||||
@@ -67,6 +70,8 @@ public class Enhanced4gLteSliceHelperTest {
|
||||
|
||||
@Mock
|
||||
private ImsManager mMockImsManager;
|
||||
@Mock
|
||||
private ProvisioningManager mProvisioningManager;
|
||||
|
||||
private Context mContext;
|
||||
private FakeEnhanced4gLteSliceHelper mEnhanced4gLteSliceHelper;
|
||||
@@ -121,7 +126,9 @@ public class Enhanced4gLteSliceHelperTest {
|
||||
@Test
|
||||
public void test_CreateEnhanced4gLteSlice_success() {
|
||||
when(mMockImsManager.isVolteEnabledByPlatform()).thenReturn(true);
|
||||
when(mMockImsManager.isVolteProvisionedOnDevice()).thenReturn(true);
|
||||
when(mProvisioningManager.getProvisioningStatusForCapability(
|
||||
MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
|
||||
ImsRegistrationImplBase.REGISTRATION_TECH_LTE)).thenReturn(true);
|
||||
when(mMockImsManager.isEnhanced4gLteModeSettingEnabledByUser()).thenReturn(true);
|
||||
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
|
||||
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
|
||||
@@ -136,7 +143,9 @@ public class Enhanced4gLteSliceHelperTest {
|
||||
@Test
|
||||
public void test_SettingSliceProvider_getsRightSliceEnhanced4gLte() {
|
||||
when(mMockImsManager.isVolteEnabledByPlatform()).thenReturn(true);
|
||||
when(mMockImsManager.isVolteProvisionedOnDevice()).thenReturn(true);
|
||||
when(mProvisioningManager.getProvisioningStatusForCapability(
|
||||
MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
|
||||
ImsRegistrationImplBase.REGISTRATION_TECH_LTE)).thenReturn(true);
|
||||
when(mMockImsManager.isEnhanced4gLteModeSettingEnabledByUser()).thenReturn(true);
|
||||
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
|
||||
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
|
||||
@@ -152,17 +161,19 @@ public class Enhanced4gLteSliceHelperTest {
|
||||
@Test
|
||||
public void test_SliceBroadcastReceiver_toggleOffEnhanced4gLte() {
|
||||
when(mMockImsManager.isVolteEnabledByPlatform()).thenReturn(true);
|
||||
when(mMockImsManager.isVolteProvisionedOnDevice()).thenReturn(true);
|
||||
when(mProvisioningManager.getProvisioningStatusForCapability(
|
||||
MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
|
||||
ImsRegistrationImplBase.REGISTRATION_TECH_LTE)).thenReturn(true);
|
||||
when(mMockImsManager.isEnhanced4gLteModeSettingEnabledByUser()).thenReturn(false);
|
||||
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
|
||||
when(mSlicesFeatureProvider.getNewEnhanced4gLteSliceHelper(mContext))
|
||||
.thenReturn(mEnhanced4gLteSliceHelper);
|
||||
|
||||
ArgumentCaptor<Boolean> mEnhanced4gLteSettingCaptor = ArgumentCaptor.forClass(
|
||||
final ArgumentCaptor<Boolean> mEnhanced4gLteSettingCaptor = ArgumentCaptor.forClass(
|
||||
Boolean.class);
|
||||
|
||||
// turn on Enhanced4gLte setting
|
||||
Intent intent = new Intent(Enhanced4gLteSliceHelper.ACTION_ENHANCED_4G_LTE_CHANGED);
|
||||
final Intent intent = new Intent(Enhanced4gLteSliceHelper.ACTION_ENHANCED_4G_LTE_CHANGED);
|
||||
intent.putExtra(EXTRA_TOGGLE_STATE, true);
|
||||
|
||||
// change the setting
|
||||
@@ -234,7 +245,7 @@ public class Enhanced4gLteSliceHelperTest {
|
||||
private void assertTitle(List<SliceItem> sliceItems, String title) {
|
||||
boolean hasTitle = false;
|
||||
for (SliceItem item : sliceItems) {
|
||||
List<SliceItem> titleItems = SliceQuery.findAll(item, FORMAT_TEXT, HINT_TITLE,
|
||||
final List<SliceItem> titleItems = SliceQuery.findAll(item, FORMAT_TEXT, HINT_TITLE,
|
||||
null /* non-hints */);
|
||||
if (titleItems == null) {
|
||||
continue;
|
||||
@@ -265,6 +276,11 @@ public class Enhanced4gLteSliceHelperTest {
|
||||
return mMockImsManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
ProvisioningManager getProvisioningManager(int subId) {
|
||||
return mProvisioningManager;
|
||||
}
|
||||
|
||||
protected int getDefaultVoiceSubId() {
|
||||
return mSubId;
|
||||
}
|
||||
|
@@ -18,14 +18,18 @@ package com.android.settings.network.telephony;
|
||||
|
||||
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.eq;
|
||||
import static org.mockito.Mockito.spy;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.PersistableBundle;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.telephony.ims.ProvisioningManager;
|
||||
import android.telephony.ims.feature.ImsFeature;
|
||||
import android.telephony.ims.feature.MmTelFeature;
|
||||
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.preference.SwitchPreference;
|
||||
@@ -49,6 +53,8 @@ public class VideoCallingPreferenceControllerTest {
|
||||
@Mock
|
||||
private ImsManager mImsManager;
|
||||
@Mock
|
||||
private ProvisioningManager mProvisioningManager;
|
||||
@Mock
|
||||
private CarrierConfigManager mCarrierConfigManager;
|
||||
@Mock
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
@@ -65,7 +71,8 @@ public class VideoCallingPreferenceControllerTest {
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
|
||||
doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class);
|
||||
doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
|
||||
doReturn(mCarrierConfigManager).when(mContext)
|
||||
.getSystemService(CarrierConfigManager.class);
|
||||
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
|
||||
|
||||
mCarrierConfig = new PersistableBundle();
|
||||
@@ -74,13 +81,20 @@ public class VideoCallingPreferenceControllerTest {
|
||||
doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
|
||||
|
||||
mPreference = new SwitchPreference(mContext);
|
||||
mController = new VideoCallingPreferenceController(mContext, "wifi_calling");
|
||||
mController = new VideoCallingPreferenceController(mContext, "wifi_calling") {
|
||||
@Override
|
||||
ProvisioningManager getProvisioningManager(int subId) {
|
||||
return mProvisioningManager;
|
||||
}
|
||||
};
|
||||
mController.init(SUB_ID);
|
||||
mController.mImsManager = mImsManager;
|
||||
mPreference.setKey(mController.getPreferenceKey());
|
||||
|
||||
doReturn(true).when(mImsManager).isVtEnabledByPlatform();
|
||||
doReturn(true).when(mImsManager).isVtProvisionedOnDevice();
|
||||
doReturn(true).when(mProvisioningManager)
|
||||
.getProvisioningStatusForCapability(
|
||||
eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO), anyInt());
|
||||
doReturn(ImsFeature.STATE_READY).when(mImsManager).getImsServiceState();
|
||||
doReturn(true).when(mTelephonyManager).isDataEnabled();
|
||||
|
||||
@@ -123,7 +137,7 @@ public class VideoCallingPreferenceControllerTest {
|
||||
doReturn(true).when(mImsManager).isVtEnabledByUser();
|
||||
doReturn(true).when(mImsManager).isEnhanced4gLteModeSettingEnabledByUser();
|
||||
doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
|
||||
doReturn(TelephonyManager.CALL_STATE_IDLE).when(mTelephonyManager).getCallState(SUB_ID);
|
||||
mController.mCallState = TelephonyManager.CALL_STATE_IDLE;
|
||||
|
||||
mController.updateState(mPreference);
|
||||
|
||||
|
Reference in New Issue
Block a user