diff --git a/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceController.java b/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceController.java index 70618aac88d..5d6a81c05bb 100644 --- a/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceController.java @@ -28,6 +28,9 @@ public class ZenModeVisEffectsAllPreferenceController extends AbstractZenModePreferenceController implements ZenCustomRadioButtonPreference.OnRadioButtonClickListener { + private final String KEY; + private ZenCustomRadioButtonPreference mPreference; + protected static final int EFFECTS = Policy.SUPPRESSED_EFFECT_SCREEN_OFF | Policy.SUPPRESSED_EFFECT_SCREEN_ON | Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT @@ -41,6 +44,14 @@ public class ZenModeVisEffectsAllPreferenceController public ZenModeVisEffectsAllPreferenceController(Context context, Lifecycle lifecycle, String key) { super(context, key, lifecycle); + KEY = key; + } + + @Override + public void displayPreference(PreferenceScreen screen) { + super.displayPreference(screen); + mPreference = (ZenCustomRadioButtonPreference) screen.findPreference(KEY); + mPreference.setOnRadioButtonClickListener(this); } @Override @@ -54,17 +65,7 @@ public class ZenModeVisEffectsAllPreferenceController boolean everythingBlocked = Policy.areAllVisualEffectsSuppressed( mBackend.mPolicy.suppressedVisualEffects); - ZenCustomRadioButtonPreference pref = (ZenCustomRadioButtonPreference) preference; - pref.setOnRadioButtonClickListener(this); - pref.setChecked(everythingBlocked); - } - - protected void deselect(PreferenceScreen screen) { - ZenCustomRadioButtonPreference preference = - (ZenCustomRadioButtonPreference) screen.findPreference(getPreferenceKey()); - if (preference != null) { - preference.setChecked(false); - } + mPreference.setChecked(everythingBlocked); } @Override diff --git a/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceController.java b/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceController.java index 0a7f7269ca7..552a545fb71 100644 --- a/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceController.java @@ -19,6 +19,7 @@ package com.android.settings.notification; import android.app.NotificationManager.Policy; import android.content.Context; import android.support.v7.preference.Preference; +import android.support.v7.preference.PreferenceScreen; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; @@ -28,6 +29,9 @@ import com.android.settingslib.core.lifecycle.Lifecycle; public class ZenModeVisEffectsCustomPreferenceController extends AbstractZenModePreferenceController { + private final String KEY; + private ZenCustomRadioButtonPreference mPreference; + protected static final int INTERRUPTIVE_EFFECTS = Policy.SUPPRESSED_EFFECT_AMBIENT | Policy.SUPPRESSED_EFFECT_PEEK | Policy.SUPPRESSED_EFFECT_LIGHTS @@ -36,6 +40,7 @@ public class ZenModeVisEffectsCustomPreferenceController public ZenModeVisEffectsCustomPreferenceController(Context context, Lifecycle lifecycle, String key) { super(context, key, lifecycle); + KEY = key; } @Override @@ -43,20 +48,25 @@ public class ZenModeVisEffectsCustomPreferenceController return true; } + @Override + public void displayPreference(PreferenceScreen screen) { + super.displayPreference(screen); + mPreference = (ZenCustomRadioButtonPreference) screen.findPreference(KEY); + + mPreference.setOnGearClickListener(p -> { + launchCustomSettings(); + }); + + mPreference.setOnRadioButtonClickListener(p -> { + launchCustomSettings(); + }); + } + @Override public void updateState(Preference preference) { super.updateState(preference); - ZenCustomRadioButtonPreference pref = (ZenCustomRadioButtonPreference) preference; - pref.setChecked(areCustomOptionsSelected()); - - pref.setOnGearClickListener(p -> { - launchCustomSettings(); - }); - - pref.setOnRadioButtonClickListener(p -> { - launchCustomSettings(); - }); + mPreference.setChecked(areCustomOptionsSelected()); } protected boolean areCustomOptionsSelected() { diff --git a/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceController.java b/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceController.java index 8958d081a05..b8a0a190ad3 100644 --- a/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceController.java +++ b/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceController.java @@ -28,6 +28,9 @@ public class ZenModeVisEffectsNonePreferenceController extends AbstractZenModePreferenceController implements ZenCustomRadioButtonPreference.OnRadioButtonClickListener { + private final String KEY; + private ZenCustomRadioButtonPreference mPreference; + protected static final int EFFECTS = Policy.SUPPRESSED_EFFECT_SCREEN_OFF | Policy.SUPPRESSED_EFFECT_SCREEN_ON | Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT @@ -41,6 +44,14 @@ public class ZenModeVisEffectsNonePreferenceController public ZenModeVisEffectsNonePreferenceController(Context context, Lifecycle lifecycle, String key) { super(context, key, lifecycle); + KEY = key; + } + + @Override + public void displayPreference(PreferenceScreen screen) { + super.displayPreference(screen); + mPreference = (ZenCustomRadioButtonPreference) screen.findPreference(KEY); + mPreference.setOnRadioButtonClickListener(this); } @Override @@ -53,9 +64,7 @@ public class ZenModeVisEffectsNonePreferenceController super.updateState(preference); boolean nothingBlocked = mBackend.mPolicy.suppressedVisualEffects == 0; - ZenCustomRadioButtonPreference pref = (ZenCustomRadioButtonPreference) preference; - pref.setOnRadioButtonClickListener(this); - pref.setChecked(nothingBlocked); + mPreference.setChecked(nothingBlocked); } @Override @@ -64,12 +73,4 @@ public class ZenModeVisEffectsNonePreferenceController MetricsProto.MetricsEvent.ACTION_ZEN_SOUND_ONLY, true); mBackend.saveVisualEffectsPolicy(EFFECTS, false); } - - protected void deselect(PreferenceScreen screen) { - ZenCustomRadioButtonPreference preference = - (ZenCustomRadioButtonPreference) screen.findPreference(getPreferenceKey()); - if (preference != null) { - preference.setChecked(false); - } - } } diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java index b1692bc7629..64042a834ef 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java @@ -85,6 +85,7 @@ public class ZenModeVisEffectsCustomPreferenceControllerTest { ReflectionHelpers.setField(mController, "mBackend", mBackend); when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mockPref); + mController.displayPreference(mScreen); } @Test