diff options
5 files changed, 33 insertions, 6 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml index c7bb7b53d4..6e92a3d661 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5108,7 +5108,7 @@ <!-- Title for a warning about security implications of enabling an accessibility service. [CHAR LIMIT=NONE] --> <string name="enable_service_title">Allow - <xliff:g id="service" example="TalkBack">%1$s</xliff:g> to have full contol of your + <xliff:g id="service" example="TalkBack">%1$s</xliff:g> to have full control of your device?</string> <!-- Title for the list of capabilities of an accessibility service. --> <string name="capabilities_list_title"><xliff:g id="service" example="TalkBack">%1$s</xliff:g> @@ -5165,7 +5165,7 @@ </string> <!-- Title for the action perform in accessibility dialog. [CHAR LIMIT=NONE] --> - <string name="accessibility_service_action_perform_title">View and platform actions</string> + <string name="accessibility_service_action_perform_title">View and perform actions</string> <!-- Description for the action perform in accessibility dialog. [CHAR LIMIT=NONE] --> <string name="accessibility_service_action_perform_description">It can track your interactions diff --git a/src/com/android/settings/network/telephony/DefaultSubscriptionController.java b/src/com/android/settings/network/telephony/DefaultSubscriptionController.java index 02a2d58c00..9eb5f8c495 100644 --- a/src/com/android/settings/network/telephony/DefaultSubscriptionController.java +++ b/src/com/android/settings/network/telephony/DefaultSubscriptionController.java @@ -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 diff --git a/src/com/android/settings/notification/ZenModeAutomaticRulesPreferenceController.java b/src/com/android/settings/notification/ZenModeAutomaticRulesPreferenceController.java index 499bfbc2fe..2f62f4539b 100644 --- a/src/com/android/settings/notification/ZenModeAutomaticRulesPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeAutomaticRulesPreferenceController.java @@ -69,7 +69,7 @@ public class ZenModeAutomaticRulesPreferenceController extends for (int i = 0; i < sortedRules.length; i++) { ZenRulePreference pref = (ZenRulePreference) mPreferenceCategory.getPreference(i); // we are either: - // 1. updating the enabled state or name of the rule + // 1. updating everything about the rule // 2. rule was added or deleted, so reload the entire list if (Objects.equals(pref.mId, sortedRules[i].getKey())) { AutomaticZenRule rule = sortedRules[i].getValue(); diff --git a/src/com/android/settings/notification/ZenRulePreference.java b/src/com/android/settings/notification/ZenRulePreference.java index 8bc602a9c9..fb6e92a634 100644 --- a/src/com/android/settings/notification/ZenRulePreference.java +++ b/src/com/android/settings/notification/ZenRulePreference.java @@ -49,7 +49,7 @@ public class ZenRulePreference extends TwoTargetPreference { final ZenServiceListing mServiceListing; final PackageManager mPm; final MetricsFeatureProvider mMetricsFeatureProvider; - final AutomaticZenRule mRule; + AutomaticZenRule mRule; CharSequence mName; private Intent mIntent; @@ -122,14 +122,14 @@ public class ZenRulePreference extends TwoTargetPreference { if (!mRule.getName().equals(rule.getName())) { mName = rule.getName(); setTitle(mName); - mRule.setName(mName.toString()); } if (mRule.isEnabled() != rule.isEnabled()) { - mRule.setEnabled(rule.isEnabled()); setChecked(mRule.isEnabled()); setSummary(computeRuleSummary(mRule)); } + + mRule = rule; } @Override diff --git a/tests/robotests/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java index 7dd636a4ab..dbdad505d3 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java @@ -204,6 +204,28 @@ public class DefaultSubscriptionControllerTest { } @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"); final SubscriptionInfo sub2 = createMockSub(222, "sub2"); |