[Settings] Replace ImsManager#isVtEnabledByPlatform() am: fb7274a308
Change-Id: I3e2196c85d029d9ad67edf589e18df1ba2e4456b
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user