Merge "Fix crash on rotation"

This commit is contained in:
Julia Reynolds
2020-09-16 13:21:31 +00:00
committed by Android (Google) Code Review
2 changed files with 10 additions and 8 deletions

View File

@@ -35,6 +35,7 @@ import com.google.common.annotations.VisibleForTesting;
import java.util.ArrayList; import java.util.ArrayList;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
public class ShowOnLockScreenNotificationPreferenceController extends AbstractPreferenceController public class ShowOnLockScreenNotificationPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener { implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
@@ -66,8 +67,9 @@ public class ShowOnLockScreenNotificationPreferenceController extends AbstractPr
} }
@Override @Override
public void updateState(Preference preference) { public void displayPreference(PreferenceScreen screen) {
RestrictedListPreference pref = (RestrictedListPreference) preference; super.displayPreference(screen);
RestrictedListPreference pref = screen.findPreference(mSettingKey);
pref.clearRestrictedItems(); pref.clearRestrictedItems();
ArrayList<CharSequence> entries = new ArrayList<>(); ArrayList<CharSequence> entries = new ArrayList<>();
ArrayList<CharSequence> values = new ArrayList<>(); ArrayList<CharSequence> values = new ArrayList<>();
@@ -104,7 +106,7 @@ public class ShowOnLockScreenNotificationPreferenceController extends AbstractPr
pref.setOnPreferenceChangeListener(this); pref.setOnPreferenceChangeListener(this);
refreshSummary(preference); refreshSummary(pref);
} }
@Override @Override

View File

@@ -89,7 +89,7 @@ public class ShowOnLockscreenNotificationPreferenceControllerTest {
LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS,
1); 1);
mController.updateState(mPreference); mController.displayPreference(mScreen);
assertThat(mPreference.getValue()).isEqualTo( assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(R.string.lock_screen_notifs_show_none)); String.valueOf(R.string.lock_screen_notifs_show_none));
@@ -107,7 +107,7 @@ public class ShowOnLockscreenNotificationPreferenceControllerTest {
LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS,
0); 0);
mController.updateState(mPreference); mController.displayPreference(mScreen);
assertThat(mPreference.getValue()).isEqualTo( assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(R.string.lock_screen_notifs_show_alerting)); String.valueOf(R.string.lock_screen_notifs_show_alerting));
@@ -124,7 +124,7 @@ public class ShowOnLockscreenNotificationPreferenceControllerTest {
LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS,
1); 1);
mController.updateState(mPreference); mController.displayPreference(mScreen);
assertThat(mPreference.getValue()).isEqualTo( assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(R.string.lock_screen_notifs_show_all)); String.valueOf(R.string.lock_screen_notifs_show_all));
@@ -136,7 +136,7 @@ public class ShowOnLockscreenNotificationPreferenceControllerTest {
public void updateState_allNotifsOnLockscreen_isDefault() { public void updateState_allNotifsOnLockscreen_isDefault() {
// settings don't exist // settings don't exist
mController.updateState(mPreference); mController.displayPreference(mScreen);
assertThat(mPreference.getValue()).isEqualTo( assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(R.string.lock_screen_notifs_show_all)); String.valueOf(R.string.lock_screen_notifs_show_all));
@@ -158,7 +158,7 @@ public class ShowOnLockscreenNotificationPreferenceControllerTest {
ShadowRestrictedLockUtilsInternal.setKeyguardDisabledFeatures( ShadowRestrictedLockUtilsInternal.setKeyguardDisabledFeatures(
KEYGUARD_DISABLE_SECURE_NOTIFICATIONS); KEYGUARD_DISABLE_SECURE_NOTIFICATIONS);
mController.updateState(mPreference); mController.displayPreference(mScreen);
assertThat(mPreference.getValue()).isEqualTo( assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(R.string.lock_screen_notifs_show_none)); String.valueOf(R.string.lock_screen_notifs_show_none));