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

This commit is contained in:
TreeHugger Robot
2019-06-13 23:25:04 +00:00
committed by Android (Google) Code Review
2 changed files with 27 additions and 0 deletions

View File

@@ -121,6 +121,11 @@ public abstract class DefaultSubscriptionController extends BasePreferenceContro
}
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);
// We'll have one entry for each available subscription, plus one for a "ask me every

View File

@@ -203,6 +203,28 @@ public class DefaultSubscriptionControllerTest {
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
public void onSubscriptionsChanged_twoSubscriptionsDefaultChanges_selectedEntryGetsUpdated() {
final SubscriptionInfo sub1 = createMockSub(111, "sub1");