Loading src/com/android/settings/network/telephony/DefaultSubscriptionController.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -121,6 +121,11 @@ public abstract class DefaultSubscriptionController extends BasePreferenceContro } } mPreference.setVisible(true); mPreference.setVisible(true); // TODO(b/135142209) - for now we need to manually ensure we're registered as a change // listener, because this might not have happened during displayPreference if // getAvailabilityStatus returned CONDITIONALLY_UNAVAILABLE at the time. mPreference.setOnPreferenceChangeListener(this); final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mManager); final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mManager); // We'll have one entry for each available subscription, plus one for a "ask me every // We'll have one entry for each available subscription, plus one for a "ask me every Loading tests/robotests/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java +22 −0 Original line number Original line Diff line number Diff line Loading @@ -203,6 +203,28 @@ public class DefaultSubscriptionControllerTest { eq(SubscriptionManager.INVALID_SUBSCRIPTION_ID)); eq(SubscriptionManager.INVALID_SUBSCRIPTION_ID)); } } @Test public void onPreferenceChange_prefBecomesAvailable_onPreferenceChangeCallbackNotNull() { final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub2 = createMockSub(222, "sub2"); // Start with only one sub active, so the pref is not available SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1)); doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId(); mController.displayPreference(mScreen); assertThat(mController.isAvailable()).isFalse(); // Now make two subs be active - the pref should become available, and the // onPreferenceChange callback should be properly wired up. SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2)); mController.onSubscriptionsChanged(); assertThat(mController.isAvailable()).isTrue(); assertThat(mListPreference.getOnPreferenceChangeListener()).isEqualTo(mController); mListPreference.callChangeListener("222"); verify(mController).setDefaultSubscription(eq(222)); } @Test @Test public void onSubscriptionsChanged_twoSubscriptionsDefaultChanges_selectedEntryGetsUpdated() { public void onSubscriptionsChanged_twoSubscriptionsDefaultChanges_selectedEntryGetsUpdated() { final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1"); Loading Loading
src/com/android/settings/network/telephony/DefaultSubscriptionController.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -121,6 +121,11 @@ public abstract class DefaultSubscriptionController extends BasePreferenceContro } } mPreference.setVisible(true); mPreference.setVisible(true); // TODO(b/135142209) - for now we need to manually ensure we're registered as a change // listener, because this might not have happened during displayPreference if // getAvailabilityStatus returned CONDITIONALLY_UNAVAILABLE at the time. mPreference.setOnPreferenceChangeListener(this); final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mManager); final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mManager); // We'll have one entry for each available subscription, plus one for a "ask me every // We'll have one entry for each available subscription, plus one for a "ask me every Loading
tests/robotests/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java +22 −0 Original line number Original line Diff line number Diff line Loading @@ -203,6 +203,28 @@ public class DefaultSubscriptionControllerTest { eq(SubscriptionManager.INVALID_SUBSCRIPTION_ID)); eq(SubscriptionManager.INVALID_SUBSCRIPTION_ID)); } } @Test public void onPreferenceChange_prefBecomesAvailable_onPreferenceChangeCallbackNotNull() { final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub2 = createMockSub(222, "sub2"); // Start with only one sub active, so the pref is not available SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1)); doReturn(sub1.getSubscriptionId()).when(mController).getDefaultSubscriptionId(); mController.displayPreference(mScreen); assertThat(mController.isAvailable()).isFalse(); // Now make two subs be active - the pref should become available, and the // onPreferenceChange callback should be properly wired up. SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2)); mController.onSubscriptionsChanged(); assertThat(mController.isAvailable()).isTrue(); assertThat(mListPreference.getOnPreferenceChangeListener()).isEqualTo(mController); mListPreference.callChangeListener("222"); verify(mController).setDefaultSubscription(eq(222)); } @Test @Test public void onSubscriptionsChanged_twoSubscriptionsDefaultChanges_selectedEntryGetsUpdated() { public void onSubscriptionsChanged_twoSubscriptionsDefaultChanges_selectedEntryGetsUpdated() { final SubscriptionInfo sub1 = createMockSub(111, "sub1"); final SubscriptionInfo sub1 = createMockSub(111, "sub1"); Loading