[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 androidx.annotation.VisibleForTesting;
import com.android.ims.ImsManager;
import com.android.settings.network.SubscriptionUtil;
/** /**
* Controller class for querying VT status * Controller class for querying VT status
*/ */
@@ -65,12 +62,6 @@ public class VtQueryImsState extends ImsQueryController {
return (new ImsQueryVtUserSetting(subId)).query(); 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 * Check whether Video Call can be perform or not on this subscription
* *
@@ -81,19 +72,10 @@ public class VtQueryImsState extends ImsQueryController {
return false; return false;
} }
final ImsManager imsManager = getImsManager(mSubId);
if (imsManager == null) {
return false;
}
if (!imsManager.isVtEnabledByPlatform()) {
return false;
}
try { try {
return isServiceStateReady(mSubId); return isEnabledByPlatform(mSubId) && isServiceStateReady(mSubId);
} catch (InterruptedException | IllegalArgumentException | ImsException exception) { } 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; return false;
} }

View File

@@ -19,15 +19,13 @@ 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 VT status * Controller class for mock VT status
*/ */
public class MockVtQueryImsState extends VtQueryImsState { public class MockVtQueryImsState extends VtQueryImsState {
private Boolean mIsTtyOnVolteEnabled; private Boolean mIsTtyOnVolteEnabled;
private Boolean mIsEnabledOnPlatform;
private Boolean mIsProvisionedOnDevice; private Boolean mIsProvisionedOnDevice;
private Boolean mIsEnabledByUser; private Boolean mIsEnabledByUser;
private Boolean mIsServiceStateReady; private Boolean mIsServiceStateReady;
@@ -42,10 +40,6 @@ public class MockVtQueryImsState extends VtQueryImsState {
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;
} }
@@ -58,6 +52,19 @@ public class MockVtQueryImsState extends VtQueryImsState {
return super.isTtyOnVolteEnabled(subId); 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) { public void setIsProvisionedOnDevice(boolean isProvisioned) {
mIsProvisionedOnDevice = isProvisioned; mIsProvisionedOnDevice = isProvisioned;
} }

View File

@@ -31,9 +31,8 @@ import android.telephony.ims.ProvisioningManager;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference; 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.MockVtQueryImsState;
import com.android.settings.network.ims.VolteQueryImsState;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -50,8 +49,6 @@ public class VideoCallingPreferenceControllerTest {
@Mock @Mock
private TelephonyManager mTelephonyManager; private TelephonyManager mTelephonyManager;
@Mock @Mock
private ImsManager mImsManager;
@Mock
private ProvisioningManager mProvisioningManager; private ProvisioningManager mProvisioningManager;
@Mock @Mock
private CarrierConfigManager mCarrierConfigManager; private CarrierConfigManager mCarrierConfigManager;
@@ -59,7 +56,7 @@ public class VideoCallingPreferenceControllerTest {
private PreferenceScreen mPreferenceScreen; private PreferenceScreen mPreferenceScreen;
private MockVtQueryImsState mQueryImsState; private MockVtQueryImsState mQueryImsState;
private VolteQueryImsState mQueryVoLteState; private MockVolteQueryImsState mQueryVoLteState;
private VideoCallingPreferenceController mController; private VideoCallingPreferenceController mController;
private PersistableBundle mCarrierConfig; private PersistableBundle mCarrierConfig;
@@ -81,12 +78,11 @@ public class VideoCallingPreferenceControllerTest {
CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS, true); CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS, true);
doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID); doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
mQueryImsState = spy(new MockVtQueryImsState(mContext, SUB_ID)); mQueryImsState = new MockVtQueryImsState(mContext, SUB_ID);
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
doReturn(mImsManager).when(mQueryImsState).getImsManager(anyInt());
mQueryVoLteState = spy(new VolteQueryImsState(mContext, SUB_ID)); mQueryVoLteState = new MockVolteQueryImsState(mContext, SUB_ID);
doReturn(true).when(mQueryVoLteState).isEnabledByUser(); mQueryVoLteState.setIsEnabledByUser(true);
mPreference = new SwitchPreference(mContext); mPreference = new SwitchPreference(mContext);
mController = spy(new VideoCallingPreferenceController(mContext, "wifi_calling")); mController = spy(new VideoCallingPreferenceController(mContext, "wifi_calling"));
@@ -95,7 +91,7 @@ public class VideoCallingPreferenceControllerTest {
doReturn(mQueryVoLteState).when(mController).queryVoLteState(anyInt()); doReturn(mQueryVoLteState).when(mController).queryVoLteState(anyInt());
mPreference.setKey(mController.getPreferenceKey()); mPreference.setKey(mController.getPreferenceKey());
doReturn(true).when(mImsManager).isVtEnabledByPlatform(); mQueryImsState.setIsEnabledByPlatform(true);
mQueryImsState.setIsProvisionedOnDevice(true); mQueryImsState.setIsProvisionedOnDevice(true);
mQueryImsState.setServiceStateReady(true); mQueryImsState.setServiceStateReady(true);
doReturn(true).when(mTelephonyManager).isDataEnabled(); doReturn(true).when(mTelephonyManager).isDataEnabled();
@@ -111,7 +107,7 @@ public class VideoCallingPreferenceControllerTest {
@Test @Test
public void isVideoCallEnabled_disabledByPlatform_returnFalse() { public void isVideoCallEnabled_disabledByPlatform_returnFalse() {
mQueryImsState.setIsProvisionedOnDevice(false); mQueryImsState.setIsProvisionedOnDevice(false);
doReturn(false).when(mImsManager).isVtEnabledByPlatform(); mQueryImsState.setIsEnabledByPlatform(false);
assertThat(mController.isVideoCallEnabled(SUB_ID)).isFalse(); assertThat(mController.isVideoCallEnabled(SUB_ID)).isFalse();
} }
@@ -127,8 +123,8 @@ public class VideoCallingPreferenceControllerTest {
@Test @Test
public void updateState_4gLteOff_disabled() { public void updateState_4gLteOff_disabled() {
doReturn(false).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(false);
doReturn(false).when(mQueryVoLteState).isEnabledByUser(); mQueryVoLteState.setIsEnabledByUser(false);
mController.updateState(mPreference); mController.updateState(mPreference);
@@ -138,9 +134,9 @@ public class VideoCallingPreferenceControllerTest {
@Test @Test
public void updateState_4gLteOnWithoutCall_checked() { public void updateState_4gLteOnWithoutCall_checked() {
doReturn(true).when(mQueryImsState).isEnabledByUser(); mQueryImsState.setIsEnabledByUser(true);
doReturn(true).when(mQueryVoLteState).isEnabledByUser(); mQueryVoLteState.setIsEnabledByUser(true);
doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled(); mQueryImsState.setIsTtyOnVolteEnabled(true);
mController.mCallState = TelephonyManager.CALL_STATE_IDLE; mController.mCallState = TelephonyManager.CALL_STATE_IDLE;
mController.updateState(mPreference); mController.updateState(mPreference);
@@ -152,7 +148,7 @@ public class VideoCallingPreferenceControllerTest {
@Test @Test
public void displayPreference_notAvailable_setPreferenceInvisible() { public void displayPreference_notAvailable_setPreferenceInvisible() {
doReturn(false).when(mImsManager).isVtEnabledByPlatform(); mQueryImsState.setIsEnabledByPlatform(false);
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);