Loading src/com/android/settings/wifi/calling/WifiCallingSettings.java +8 −1 Original line number Diff line number Diff line Loading @@ -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)); Loading @@ -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++; Loading tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } Loading
src/com/android/settings/wifi/calling/WifiCallingSettings.java +8 −1 Original line number Diff line number Diff line Loading @@ -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)); Loading @@ -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++; Loading
tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } }