[Settings] Replace VT and VOLTE provisioning API
Replace isVtProvisionedOnDevice() and isVolteProvisionedOnDevice() by android.telephony.ims.ProvisioningManager. Bug: 140542283 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=Enhanced4gBasePreferenceControllerTest make RunSettingsRoboTests -j ROBOTEST_FILTER=Enhanced4gLteSliceHelper make RunSettingsRoboTests -j ROBOTEST_FILTER=VideoCallingPreferenceController Change-Id: Ie92794b794a6b9f2d9e161ca5f328cd9fa01064a
This commit is contained in:
@@ -23,6 +23,9 @@ import android.telephony.CarrierConfigManager;
|
|||||||
import android.telephony.PhoneStateListener;
|
import android.telephony.PhoneStateListener;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
|
import android.telephony.ims.ProvisioningManager;
|
||||||
|
import android.telephony.ims.feature.MmTelFeature;
|
||||||
|
import android.telephony.ims.stub.ImsRegistrationImplBase;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
@@ -50,6 +53,8 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
ImsManager mImsManager;
|
ImsManager mImsManager;
|
||||||
private PhoneCallStateListener mPhoneStateListener;
|
private PhoneCallStateListener mPhoneStateListener;
|
||||||
|
@VisibleForTesting
|
||||||
|
Integer mCallState;
|
||||||
private final List<On4gLteUpdateListener> m4gLteListeners;
|
private final List<On4gLteUpdateListener> m4gLteListeners;
|
||||||
|
|
||||||
protected static final int MODE_NONE = -1;
|
protected static final int MODE_NONE = -1;
|
||||||
@@ -70,7 +75,8 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
mSubId = subId;
|
mSubId = subId;
|
||||||
mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
|
mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
|
||||||
|
.createForSubscriptionId(mSubId);
|
||||||
mCarrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
|
mCarrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
|
||||||
if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||||
mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
|
mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
|
||||||
@@ -86,6 +92,11 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
ProvisioningManager getProvisioningManager(int subId) {
|
||||||
|
return ProvisioningManager.createForSubscriptionId(subId);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus(int subId) {
|
public int getAvailabilityStatus(int subId) {
|
||||||
init(subId);
|
init(subId);
|
||||||
@@ -96,7 +107,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
|
|||||||
final boolean isVisible = subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
|
final boolean isVisible = subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
|
||||||
&& mImsManager != null && carrierConfig != null
|
&& mImsManager != null && carrierConfig != null
|
||||||
&& mImsManager.isVolteEnabledByPlatform()
|
&& mImsManager.isVolteEnabledByPlatform()
|
||||||
&& mImsManager.isVolteProvisionedOnDevice()
|
&& isVolteProvisionedOnDevice(mSubId)
|
||||||
&& MobileNetworkUtils.isImsServiceStateReady(mImsManager)
|
&& MobileNetworkUtils.isImsServiceStateReady(mImsManager)
|
||||||
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL);
|
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL);
|
||||||
return isVisible
|
return isVisible
|
||||||
@@ -159,13 +170,26 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
|
|||||||
|
|
||||||
private boolean isPrefEnabled() {
|
private boolean isPrefEnabled() {
|
||||||
return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
|
return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
|
||||||
&& mTelephonyManager.getCallState(mSubId) == TelephonyManager.CALL_STATE_IDLE
|
&& (mCallState != null) && (mCallState == TelephonyManager.CALL_STATE_IDLE)
|
||||||
&& mImsManager != null
|
&& mImsManager != null
|
||||||
&& mImsManager.isNonTtyOrTtyOnVolteEnabled()
|
&& mImsManager.isNonTtyOrTtyOnVolteEnabled()
|
||||||
&& mCarrierConfig.getBoolean(
|
&& mCarrierConfig.getBoolean(
|
||||||
CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
|
CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isVolteProvisionedOnDevice(int subId) {
|
||||||
|
if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
final ProvisioningManager provisioningMgr = getProvisioningManager(subId);
|
||||||
|
if (provisioningMgr == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return provisioningMgr.getProvisioningStatusForCapability(
|
||||||
|
MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
|
||||||
|
ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
|
||||||
|
}
|
||||||
|
|
||||||
private class PhoneCallStateListener extends PhoneStateListener {
|
private class PhoneCallStateListener extends PhoneStateListener {
|
||||||
|
|
||||||
public PhoneCallStateListener(Looper looper) {
|
public PhoneCallStateListener(Looper looper) {
|
||||||
@@ -174,15 +198,17 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallStateChanged(int state, String incomingNumber) {
|
public void onCallStateChanged(int state, String incomingNumber) {
|
||||||
|
mCallState = state;
|
||||||
updateState(mPreference);
|
updateState(mPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void register(int subId) {
|
public void register(int subId) {
|
||||||
mSubId = subId;
|
Enhanced4gBasePreferenceController.this.mSubId = subId;
|
||||||
mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
|
mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void unregister() {
|
public void unregister() {
|
||||||
|
mCallState = null;
|
||||||
mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
|
mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -27,6 +27,9 @@ import android.net.Uri;
|
|||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
import android.telephony.CarrierConfigManager;
|
import android.telephony.CarrierConfigManager;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
|
import android.telephony.ims.ProvisioningManager;
|
||||||
|
import android.telephony.ims.feature.MmTelFeature;
|
||||||
|
import android.telephony.ims.stub.ImsRegistrationImplBase;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
@@ -122,7 +125,7 @@ public class Enhanced4gLteSliceHelper {
|
|||||||
final ImsManager imsManager = getImsManager(subId);
|
final ImsManager imsManager = getImsManager(subId);
|
||||||
|
|
||||||
if (!imsManager.isVolteEnabledByPlatform()
|
if (!imsManager.isVolteEnabledByPlatform()
|
||||||
|| !imsManager.isVolteProvisionedOnDevice()) {
|
|| !isVolteProvisionedOnDevice(subId)) {
|
||||||
Log.d(TAG, "Setting is either not provisioned or not enabled by Platform");
|
Log.d(TAG, "Setting is either not provisioned or not enabled by Platform");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -188,6 +191,11 @@ public class Enhanced4gLteSliceHelper {
|
|||||||
return ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(subId));
|
return ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(subId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
ProvisioningManager getProvisioningManager(int subId) {
|
||||||
|
return ProvisioningManager.createForSubscriptionId(subId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles Enhanced 4G LTE mode setting change from Enhanced 4G LTE slice and posts
|
* Handles Enhanced 4G LTE mode setting change from Enhanced 4G LTE slice and posts
|
||||||
* notification. Should be called when intent action is ACTION_ENHANCED_4G_LTE_CHANGED
|
* notification. Should be called when intent action is ACTION_ENHANCED_4G_LTE_CHANGED
|
||||||
@@ -199,8 +207,7 @@ public class Enhanced4gLteSliceHelper {
|
|||||||
|
|
||||||
if (subId > SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
if (subId > SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||||
final ImsManager imsManager = getImsManager(subId);
|
final ImsManager imsManager = getImsManager(subId);
|
||||||
if (imsManager.isVolteEnabledByPlatform()
|
if (imsManager.isVolteEnabledByPlatform() && isVolteProvisionedOnDevice(subId)) {
|
||||||
&& imsManager.isVolteProvisionedOnDevice()) {
|
|
||||||
final boolean currentValue = imsManager.isEnhanced4gLteModeSettingEnabledByUser()
|
final boolean currentValue = imsManager.isEnhanced4gLteModeSettingEnabledByUser()
|
||||||
&& imsManager.isNonTtyOrTtyOnVolteEnabled();
|
&& imsManager.isNonTtyOrTtyOnVolteEnabled();
|
||||||
final boolean newValue = intent.getBooleanExtra(EXTRA_TOGGLE_STATE,
|
final boolean newValue = intent.getBooleanExtra(EXTRA_TOGGLE_STATE,
|
||||||
@@ -278,5 +285,15 @@ public class Enhanced4gLteSliceHelper {
|
|||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, 0 /* flags */);
|
return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, 0 /* flags */);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isVolteProvisionedOnDevice(int subId) {
|
||||||
|
final ProvisioningManager provisioningMgr = getProvisioningManager(subId);
|
||||||
|
if (provisioningMgr == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return provisioningMgr.getProvisioningStatusForCapability(
|
||||||
|
MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
|
||||||
|
ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -23,6 +23,9 @@ import android.telephony.CarrierConfigManager;
|
|||||||
import android.telephony.PhoneStateListener;
|
import android.telephony.PhoneStateListener;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
|
import android.telephony.ims.ProvisioningManager;
|
||||||
|
import android.telephony.ims.feature.MmTelFeature;
|
||||||
|
import android.telephony.ims.stub.ImsRegistrationImplBase;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
@@ -133,6 +136,24 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
|
|||||||
return isVideoCallEnabled(subId, imsManager);
|
return isVideoCallEnabled(subId, imsManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
ProvisioningManager getProvisioningManager(int subId) {
|
||||||
|
return ProvisioningManager.createForSubscriptionId(subId);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isVtProvisionedOnDevice(int subId) {
|
||||||
|
if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
final ProvisioningManager provisioningMgr = getProvisioningManager(subId);
|
||||||
|
if (provisioningMgr == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return provisioningMgr.getProvisioningStatusForCapability(
|
||||||
|
MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO,
|
||||||
|
ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
|
||||||
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
boolean isVideoCallEnabled(int subId, ImsManager imsManager) {
|
boolean isVideoCallEnabled(int subId, ImsManager imsManager) {
|
||||||
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
|
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
|
||||||
@@ -142,7 +163,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
|
|||||||
}
|
}
|
||||||
return carrierConfig != null && imsManager != null
|
return carrierConfig != null && imsManager != null
|
||||||
&& imsManager.isVtEnabledByPlatform()
|
&& imsManager.isVtEnabledByPlatform()
|
||||||
&& imsManager.isVtProvisionedOnDevice()
|
&& isVtProvisionedOnDevice(subId)
|
||||||
&& MobileNetworkUtils.isImsServiceStateReady(imsManager)
|
&& MobileNetworkUtils.isImsServiceStateReady(imsManager)
|
||||||
&& (carrierConfig.getBoolean(
|
&& (carrierConfig.getBoolean(
|
||||||
CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
|
CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
|
||||||
@@ -167,7 +188,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void register(int subId) {
|
public void register(int subId) {
|
||||||
mSubId = subId;
|
VideoCallingPreferenceController.this.mSubId = subId;
|
||||||
mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
|
mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -26,6 +26,9 @@ import android.os.PersistableBundle;
|
|||||||
import android.telephony.CarrierConfigManager;
|
import android.telephony.CarrierConfigManager;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
import android.telephony.TelephonyManager;
|
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;
|
import androidx.preference.SwitchPreference;
|
||||||
|
|
||||||
@@ -55,6 +58,8 @@ public class Enhanced4gBasePreferenceControllerTest {
|
|||||||
private CarrierConfigManager mCarrierConfigManager;
|
private CarrierConfigManager mCarrierConfigManager;
|
||||||
@Mock
|
@Mock
|
||||||
private ImsManager mImsManager;
|
private ImsManager mImsManager;
|
||||||
|
@Mock
|
||||||
|
private ProvisioningManager mProvisioningManager;
|
||||||
|
|
||||||
private Enhanced4gLtePreferenceController mController;
|
private Enhanced4gLtePreferenceController mController;
|
||||||
private SwitchPreference mPreference;
|
private SwitchPreference mPreference;
|
||||||
@@ -77,7 +82,12 @@ public class Enhanced4gBasePreferenceControllerTest {
|
|||||||
doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
|
doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
|
||||||
|
|
||||||
mPreference = new RestrictedSwitchPreference(mContext);
|
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.init(SUB_ID);
|
||||||
mController.mImsManager = mImsManager;
|
mController.mImsManager = mImsManager;
|
||||||
mPreference.setKey(mController.getPreferenceKey());
|
mPreference.setKey(mController.getPreferenceKey());
|
||||||
@@ -94,7 +104,9 @@ public class Enhanced4gBasePreferenceControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void getAvailabilityStatus_volteDisabled_returnUnavailable() {
|
public void getAvailabilityStatus_volteDisabled_returnUnavailable() {
|
||||||
doReturn(false).when(mImsManager).isVolteEnabledByPlatform();
|
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(
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(
|
||||||
BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
|
BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
|
||||||
@@ -104,7 +116,7 @@ public class Enhanced4gBasePreferenceControllerTest {
|
|||||||
public void updateState_configEnabled_prefEnabled() {
|
public void updateState_configEnabled_prefEnabled() {
|
||||||
mPreference.setEnabled(false);
|
mPreference.setEnabled(false);
|
||||||
mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 1);
|
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();
|
doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
|
||||||
mCarrierConfig.putBoolean(CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL, true);
|
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.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.telephony.CarrierConfigManager;
|
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.Slice;
|
||||||
import androidx.slice.SliceItem;
|
import androidx.slice.SliceItem;
|
||||||
@@ -67,6 +70,8 @@ public class Enhanced4gLteSliceHelperTest {
|
|||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private ImsManager mMockImsManager;
|
private ImsManager mMockImsManager;
|
||||||
|
@Mock
|
||||||
|
private ProvisioningManager mProvisioningManager;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private FakeEnhanced4gLteSliceHelper mEnhanced4gLteSliceHelper;
|
private FakeEnhanced4gLteSliceHelper mEnhanced4gLteSliceHelper;
|
||||||
@@ -121,7 +126,9 @@ public class Enhanced4gLteSliceHelperTest {
|
|||||||
@Test
|
@Test
|
||||||
public void test_CreateEnhanced4gLteSlice_success() {
|
public void test_CreateEnhanced4gLteSlice_success() {
|
||||||
when(mMockImsManager.isVolteEnabledByPlatform()).thenReturn(true);
|
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.isEnhanced4gLteModeSettingEnabledByUser()).thenReturn(true);
|
||||||
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
|
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
|
||||||
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
|
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
|
||||||
@@ -136,7 +143,9 @@ public class Enhanced4gLteSliceHelperTest {
|
|||||||
@Test
|
@Test
|
||||||
public void test_SettingSliceProvider_getsRightSliceEnhanced4gLte() {
|
public void test_SettingSliceProvider_getsRightSliceEnhanced4gLte() {
|
||||||
when(mMockImsManager.isVolteEnabledByPlatform()).thenReturn(true);
|
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.isEnhanced4gLteModeSettingEnabledByUser()).thenReturn(true);
|
||||||
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
|
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
|
||||||
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
|
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
|
||||||
@@ -152,17 +161,19 @@ public class Enhanced4gLteSliceHelperTest {
|
|||||||
@Test
|
@Test
|
||||||
public void test_SliceBroadcastReceiver_toggleOffEnhanced4gLte() {
|
public void test_SliceBroadcastReceiver_toggleOffEnhanced4gLte() {
|
||||||
when(mMockImsManager.isVolteEnabledByPlatform()).thenReturn(true);
|
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.isEnhanced4gLteModeSettingEnabledByUser()).thenReturn(false);
|
||||||
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
|
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
|
||||||
when(mSlicesFeatureProvider.getNewEnhanced4gLteSliceHelper(mContext))
|
when(mSlicesFeatureProvider.getNewEnhanced4gLteSliceHelper(mContext))
|
||||||
.thenReturn(mEnhanced4gLteSliceHelper);
|
.thenReturn(mEnhanced4gLteSliceHelper);
|
||||||
|
|
||||||
ArgumentCaptor<Boolean> mEnhanced4gLteSettingCaptor = ArgumentCaptor.forClass(
|
final ArgumentCaptor<Boolean> mEnhanced4gLteSettingCaptor = ArgumentCaptor.forClass(
|
||||||
Boolean.class);
|
Boolean.class);
|
||||||
|
|
||||||
// turn on Enhanced4gLte setting
|
// 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);
|
intent.putExtra(EXTRA_TOGGLE_STATE, true);
|
||||||
|
|
||||||
// change the setting
|
// change the setting
|
||||||
@@ -234,7 +245,7 @@ public class Enhanced4gLteSliceHelperTest {
|
|||||||
private void assertTitle(List<SliceItem> sliceItems, String title) {
|
private void assertTitle(List<SliceItem> sliceItems, String title) {
|
||||||
boolean hasTitle = false;
|
boolean hasTitle = false;
|
||||||
for (SliceItem item : sliceItems) {
|
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 */);
|
null /* non-hints */);
|
||||||
if (titleItems == null) {
|
if (titleItems == null) {
|
||||||
continue;
|
continue;
|
||||||
@@ -265,6 +276,11 @@ public class Enhanced4gLteSliceHelperTest {
|
|||||||
return mMockImsManager;
|
return mMockImsManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
ProvisioningManager getProvisioningManager(int subId) {
|
||||||
|
return mProvisioningManager;
|
||||||
|
}
|
||||||
|
|
||||||
protected int getDefaultVoiceSubId() {
|
protected int getDefaultVoiceSubId() {
|
||||||
return mSubId;
|
return mSubId;
|
||||||
}
|
}
|
||||||
|
@@ -18,14 +18,18 @@ package com.android.settings.network.telephony;
|
|||||||
|
|
||||||
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.eq;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
import android.telephony.CarrierConfigManager;
|
import android.telephony.CarrierConfigManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
|
import android.telephony.ims.ProvisioningManager;
|
||||||
import android.telephony.ims.feature.ImsFeature;
|
import android.telephony.ims.feature.ImsFeature;
|
||||||
|
import android.telephony.ims.feature.MmTelFeature;
|
||||||
|
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
import androidx.preference.SwitchPreference;
|
import androidx.preference.SwitchPreference;
|
||||||
@@ -49,6 +53,8 @@ public class VideoCallingPreferenceControllerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private ImsManager mImsManager;
|
private ImsManager mImsManager;
|
||||||
@Mock
|
@Mock
|
||||||
|
private ProvisioningManager mProvisioningManager;
|
||||||
|
@Mock
|
||||||
private CarrierConfigManager mCarrierConfigManager;
|
private CarrierConfigManager mCarrierConfigManager;
|
||||||
@Mock
|
@Mock
|
||||||
private PreferenceScreen mPreferenceScreen;
|
private PreferenceScreen mPreferenceScreen;
|
||||||
@@ -65,7 +71,8 @@ public class VideoCallingPreferenceControllerTest {
|
|||||||
mContext = spy(RuntimeEnvironment.application);
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
|
doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
|
||||||
doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class);
|
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);
|
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
|
||||||
|
|
||||||
mCarrierConfig = new PersistableBundle();
|
mCarrierConfig = new PersistableBundle();
|
||||||
@@ -74,13 +81,20 @@ public class VideoCallingPreferenceControllerTest {
|
|||||||
doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
|
doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
|
||||||
|
|
||||||
mPreference = new SwitchPreference(mContext);
|
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.init(SUB_ID);
|
||||||
mController.mImsManager = mImsManager;
|
mController.mImsManager = mImsManager;
|
||||||
mPreference.setKey(mController.getPreferenceKey());
|
mPreference.setKey(mController.getPreferenceKey());
|
||||||
|
|
||||||
doReturn(true).when(mImsManager).isVtEnabledByPlatform();
|
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(ImsFeature.STATE_READY).when(mImsManager).getImsServiceState();
|
||||||
doReturn(true).when(mTelephonyManager).isDataEnabled();
|
doReturn(true).when(mTelephonyManager).isDataEnabled();
|
||||||
|
|
||||||
@@ -123,7 +137,7 @@ public class VideoCallingPreferenceControllerTest {
|
|||||||
doReturn(true).when(mImsManager).isVtEnabledByUser();
|
doReturn(true).when(mImsManager).isVtEnabledByUser();
|
||||||
doReturn(true).when(mImsManager).isEnhanced4gLteModeSettingEnabledByUser();
|
doReturn(true).when(mImsManager).isEnhanced4gLteModeSettingEnabledByUser();
|
||||||
doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
|
doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
|
||||||
doReturn(TelephonyManager.CALL_STATE_IDLE).when(mTelephonyManager).getCallState(SUB_ID);
|
mController.mCallState = TelephonyManager.CALL_STATE_IDLE;
|
||||||
|
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user