Fix ViLTE is not available when WiFi Calling is disabled

Bug: 141831293
Test: 1. Set carrier config carrier_wfc_ims_available_bool to false,
then verify Wi-Fi calling option is not shown.
      2. Set carrier config carrier_vt_available_bool to false, then
      verify video calling option is not shown.
      3. Set both carrier_wfc_ims_available_bool and
      carrier_vt_available_bool to false, then verify calling category
      is not shown.

Change-Id: Ibec13fbeb5acf1d62342286687b2ba969beb4e14
This commit is contained in:
Josh Hou
2019-10-22 16:16:35 +08:00
parent 8eda6847f4
commit c101faeb2b
7 changed files with 56 additions and 21 deletions

View File

@@ -27,6 +27,7 @@ import android.telephony.CarrierConfigManager;
import android.telephony.TelephonyManager;
import android.telephony.ims.feature.ImsFeature;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import com.android.ims.ImsManager;
@@ -49,6 +50,8 @@ public class VideoCallingPreferenceControllerTest {
private ImsManager mImsManager;
@Mock
private CarrierConfigManager mCarrierConfigManager;
@Mock
private PreferenceScreen mPreferenceScreen;
private VideoCallingPreferenceController mController;
private PersistableBundle mCarrierConfig;
@@ -125,4 +128,15 @@ public class VideoCallingPreferenceControllerTest {
assertThat(mPreference.isEnabled()).isTrue();
assertThat(mPreference.isChecked()).isTrue();
}
@Test
public void displayPreference_notAvailable_setPreferenceInvisible() {
doReturn(false).when(mImsManager).isVtEnabledByPlatform();
mController.displayPreference(mPreferenceScreen);
assertThat(mPreferenceScreen.isVisible()).isFalse();
}
}

View File

@@ -64,7 +64,6 @@ public class WifiCallingPreferenceControllerTest {
private WifiCallingPreferenceController mController;
private Preference mPreference;
private PreferenceCategory mPreferenceCategory;
private Context mContext;
private PersistableBundle mCarrierConfig;
@@ -87,10 +86,6 @@ public class WifiCallingPreferenceControllerTest {
mCarrierConfig = new PersistableBundle();
when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
mPreferenceCategory = new PreferenceCategory(mContext);
when(mPreferenceScreen.findPreference(
WifiCallingPreferenceController.KEY_PREFERENCE_CATEGORY)).thenReturn(
mPreferenceCategory);
when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
mPreference);
}
@@ -164,12 +159,12 @@ public class WifiCallingPreferenceControllerTest {
}
@Test
public void displayPreference_notAvailable_setCategoryInvisible() {
public void displayPreference_notAvailable_setPreferenceInvisible() {
mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
mController.displayPreference(mPreferenceScreen);
assertThat(mPreferenceCategory.isVisible()).isFalse();
assertThat(mPreferenceScreen.isVisible()).isFalse();
}
@Test