[Settings] Replace ImsManager#isVtEnabledByPlatform() am: fb7274a308

Change-Id: I3e2196c85d029d9ad67edf589e18df1ba2e4456b
This commit is contained in:
Bonian Chen
2020-03-30 08:31:03 +00:00
committed by Automerger Merge Worker
3 changed files with 30 additions and 45 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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);