Merge "Check isWfcProvisionedOnDevice in WifiCallingSettings" into qt-dev

am: 3288037bd2

Change-Id: I0edcbba1f4c19052daeb2e69c2dc36e839641d9f
This commit is contained in:
Antony Sargent
2019-06-25 23:02:14 -07:00
committed by android-build-merger
2 changed files with 35 additions and 1 deletions

View File

@@ -199,6 +199,12 @@ public class WifiCallingSettings extends InstrumentedFragment implements HelpRes
return imsManager.isWfcEnabledByPlatform();
}
@VisibleForTesting
boolean isWfcProvisionedOnDevice(SubscriptionInfo info) {
ImsManager imsManager = ImsManager.getInstance(getActivity(), info.getSimSlotIndex());
return imsManager.isWfcProvisionedOnDevice();
}
private void updateSubList() {
mSil = SubscriptionUtil.getActiveSubscriptions(
getContext().getSystemService(SubscriptionManager.class));
@@ -208,7 +214,8 @@ public class WifiCallingSettings extends InstrumentedFragment implements HelpRes
return;
}
for (int i = 0; i < mSil.size(); ) {
if (!isWfcEnabledByPlatform(mSil.get(i))) {
final SubscriptionInfo info = mSil.get(i);
if (!isWfcEnabledByPlatform(info) || !isWfcProvisionedOnDevice(info)) {
mSil.remove(i);
} else {
i++;

View File

@@ -19,6 +19,7 @@ package com.android.settings.wifi.calling;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
@@ -106,4 +107,30 @@ public class WifiCallingSettingsTest {
(WifiCallingSettings.WifiCallingViewPagerAdapter) pager.getAdapter();
assertThat(adapter.getCount()).isEqualTo(2);
}
@Test
public void setupFragment_twoSubscriptionsOneNotProvisionedOnDevice_oneResult() {
SubscriptionInfo info1 = mock(SubscriptionInfo.class);
SubscriptionInfo info2 = mock(SubscriptionInfo.class);
when(info1.getSubscriptionId()).thenReturn(111);
when(info2.getSubscriptionId()).thenReturn(222);
SubscriptionUtil.setActiveSubscriptionsForTesting(new ArrayList<>(
Arrays.asList(info1, info2)));
doReturn(true).when(mFragment).isWfcEnabledByPlatform(any(SubscriptionInfo.class));
doReturn(false).when(mFragment).isWfcProvisionedOnDevice(eq(info2));
Intent intent = new Intent();
intent.putExtra(Settings.EXTRA_SUB_ID, info1.getSubscriptionId());
FragmentController.of(mFragment, intent).create(0 /* containerViewId*/,
null /* bundle */).start().resume().visible().get();
View view = mFragment.getView();
RtlCompatibleViewPager pager = view.findViewById(R.id.view_pager);
assertThat(pager.getCurrentItem()).isEqualTo(0);
WifiCallingSettings.WifiCallingViewPagerAdapter adapter =
(WifiCallingSettings.WifiCallingViewPagerAdapter) pager.getAdapter();
assertThat(adapter.getCount()).isEqualTo(1);
}
}