[Settings] Replace ImsManager#isVtEnabledByPlatform() am: fb7274a308
am: a6d6285b57
Change-Id: Iceb405d58331badd6ec62913287a5aa1f175bf15
This commit is contained in:
@@ -27,9 +27,6 @@ import android.util.Log;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import com.android.ims.ImsManager;
|
||||
import com.android.settings.network.SubscriptionUtil;
|
||||
|
||||
/**
|
||||
* Controller class for querying VT status
|
||||
*/
|
||||
@@ -65,12 +62,6 @@ public class VtQueryImsState extends ImsQueryController {
|
||||
return (new ImsQueryVtUserSetting(subId)).query();
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
ImsManager getImsManager(int subId) {
|
||||
return ImsManager.getInstance(mContext,
|
||||
SubscriptionUtil.getPhoneId(mContext, subId));
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether Video Call can be perform or not on this subscription
|
||||
*
|
||||
@@ -81,19 +72,10 @@ public class VtQueryImsState extends ImsQueryController {
|
||||
return false;
|
||||
}
|
||||
|
||||
final ImsManager imsManager = getImsManager(mSubId);
|
||||
if (imsManager == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!imsManager.isVtEnabledByPlatform()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
return isServiceStateReady(mSubId);
|
||||
return isEnabledByPlatform(mSubId) && isServiceStateReady(mSubId);
|
||||
} catch (InterruptedException | IllegalArgumentException | ImsException exception) {
|
||||
Log.w(LOG_TAG, "fail to get Vt service status. subId=" + mSubId, exception);
|
||||
Log.w(LOG_TAG, "fail to get Vt ready. subId=" + mSubId, exception);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@@ -19,15 +19,13 @@ package com.android.settings.network.ims;
|
||||
import android.content.Context;
|
||||
import android.telephony.ims.ImsException;
|
||||
|
||||
import com.android.ims.ImsManager;
|
||||
|
||||
|
||||
/**
|
||||
* Controller class for mock VT status
|
||||
*/
|
||||
public class MockVtQueryImsState extends VtQueryImsState {
|
||||
|
||||
private Boolean mIsTtyOnVolteEnabled;
|
||||
private Boolean mIsEnabledOnPlatform;
|
||||
private Boolean mIsProvisionedOnDevice;
|
||||
private Boolean mIsEnabledByUser;
|
||||
private Boolean mIsServiceStateReady;
|
||||
@@ -42,10 +40,6 @@ public class MockVtQueryImsState extends VtQueryImsState {
|
||||
super(context, subId);
|
||||
}
|
||||
|
||||
public ImsManager getImsManager(int subId) {
|
||||
return super.getImsManager(subId);
|
||||
}
|
||||
|
||||
public void setIsTtyOnVolteEnabled(boolean enabled) {
|
||||
mIsTtyOnVolteEnabled = enabled;
|
||||
}
|
||||
@@ -58,6 +52,19 @@ public class MockVtQueryImsState extends VtQueryImsState {
|
||||
return super.isTtyOnVolteEnabled(subId);
|
||||
}
|
||||
|
||||
public void setIsEnabledByPlatform(boolean isEnabled) {
|
||||
mIsEnabledOnPlatform = isEnabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean isEnabledByPlatform(int subId) throws InterruptedException, ImsException,
|
||||
IllegalArgumentException {
|
||||
if (mIsEnabledOnPlatform != null) {
|
||||
return mIsEnabledOnPlatform;
|
||||
}
|
||||
return super.isEnabledByPlatform(subId);
|
||||
}
|
||||
|
||||
public void setIsProvisionedOnDevice(boolean isProvisioned) {
|
||||
mIsProvisionedOnDevice = isProvisioned;
|
||||
}
|
||||
|
@@ -31,9 +31,8 @@ import android.telephony.ims.ProvisioningManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
import com.android.ims.ImsManager;
|
||||
import com.android.settings.network.ims.MockVolteQueryImsState;
|
||||
import com.android.settings.network.ims.MockVtQueryImsState;
|
||||
import com.android.settings.network.ims.VolteQueryImsState;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -50,8 +49,6 @@ public class VideoCallingPreferenceControllerTest {
|
||||
@Mock
|
||||
private TelephonyManager mTelephonyManager;
|
||||
@Mock
|
||||
private ImsManager mImsManager;
|
||||
@Mock
|
||||
private ProvisioningManager mProvisioningManager;
|
||||
@Mock
|
||||
private CarrierConfigManager mCarrierConfigManager;
|
||||
@@ -59,7 +56,7 @@ public class VideoCallingPreferenceControllerTest {
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
|
||||
private MockVtQueryImsState mQueryImsState;
|
||||
private VolteQueryImsState mQueryVoLteState;
|
||||
private MockVolteQueryImsState mQueryVoLteState;
|
||||
|
||||
private VideoCallingPreferenceController mController;
|
||||
private PersistableBundle mCarrierConfig;
|
||||
@@ -81,12 +78,11 @@ public class VideoCallingPreferenceControllerTest {
|
||||
CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS, true);
|
||||
doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
|
||||
|
||||
mQueryImsState = spy(new MockVtQueryImsState(mContext, SUB_ID));
|
||||
doReturn(true).when(mQueryImsState).isEnabledByUser();
|
||||
doReturn(mImsManager).when(mQueryImsState).getImsManager(anyInt());
|
||||
mQueryImsState = new MockVtQueryImsState(mContext, SUB_ID);
|
||||
mQueryImsState.setIsEnabledByUser(true);
|
||||
|
||||
mQueryVoLteState = spy(new VolteQueryImsState(mContext, SUB_ID));
|
||||
doReturn(true).when(mQueryVoLteState).isEnabledByUser();
|
||||
mQueryVoLteState = new MockVolteQueryImsState(mContext, SUB_ID);
|
||||
mQueryVoLteState.setIsEnabledByUser(true);
|
||||
|
||||
mPreference = new SwitchPreference(mContext);
|
||||
mController = spy(new VideoCallingPreferenceController(mContext, "wifi_calling"));
|
||||
@@ -95,7 +91,7 @@ public class VideoCallingPreferenceControllerTest {
|
||||
doReturn(mQueryVoLteState).when(mController).queryVoLteState(anyInt());
|
||||
mPreference.setKey(mController.getPreferenceKey());
|
||||
|
||||
doReturn(true).when(mImsManager).isVtEnabledByPlatform();
|
||||
mQueryImsState.setIsEnabledByPlatform(true);
|
||||
mQueryImsState.setIsProvisionedOnDevice(true);
|
||||
mQueryImsState.setServiceStateReady(true);
|
||||
doReturn(true).when(mTelephonyManager).isDataEnabled();
|
||||
@@ -111,7 +107,7 @@ public class VideoCallingPreferenceControllerTest {
|
||||
@Test
|
||||
public void isVideoCallEnabled_disabledByPlatform_returnFalse() {
|
||||
mQueryImsState.setIsProvisionedOnDevice(false);
|
||||
doReturn(false).when(mImsManager).isVtEnabledByPlatform();
|
||||
mQueryImsState.setIsEnabledByPlatform(false);
|
||||
|
||||
assertThat(mController.isVideoCallEnabled(SUB_ID)).isFalse();
|
||||
}
|
||||
@@ -127,8 +123,8 @@ public class VideoCallingPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void updateState_4gLteOff_disabled() {
|
||||
doReturn(false).when(mQueryImsState).isEnabledByUser();
|
||||
doReturn(false).when(mQueryVoLteState).isEnabledByUser();
|
||||
mQueryImsState.setIsEnabledByUser(false);
|
||||
mQueryVoLteState.setIsEnabledByUser(false);
|
||||
|
||||
mController.updateState(mPreference);
|
||||
|
||||
@@ -138,9 +134,9 @@ public class VideoCallingPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void updateState_4gLteOnWithoutCall_checked() {
|
||||
doReturn(true).when(mQueryImsState).isEnabledByUser();
|
||||
doReturn(true).when(mQueryVoLteState).isEnabledByUser();
|
||||
doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
|
||||
mQueryImsState.setIsEnabledByUser(true);
|
||||
mQueryVoLteState.setIsEnabledByUser(true);
|
||||
mQueryImsState.setIsTtyOnVolteEnabled(true);
|
||||
mController.mCallState = TelephonyManager.CALL_STATE_IDLE;
|
||||
|
||||
mController.updateState(mPreference);
|
||||
@@ -152,7 +148,7 @@ public class VideoCallingPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void displayPreference_notAvailable_setPreferenceInvisible() {
|
||||
doReturn(false).when(mImsManager).isVtEnabledByPlatform();
|
||||
mQueryImsState.setIsEnabledByPlatform(false);
|
||||
|
||||
mController.displayPreference(mPreferenceScreen);
|
||||
|
||||
|
Reference in New Issue
Block a user