Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7af299c6 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix Calls/SMS default SIM selector" into qt-dev

parents 78ef02eb 22b827db
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -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
+22 −0
Original line number Original line Diff line number Diff line
@@ -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");