OSDN Git Service

Set click listeners on displayPreference
authorBeverly <beverlyt@google.com>
Fri, 18 May 2018 18:33:36 +0000 (14:33 -0400)
committerBeverly <beverlyt@google.com>
Mon, 21 May 2018 15:19:13 +0000 (11:19 -0400)
Cherry-picked from pi-dev
Test: manual (tap options multiple times with talkback on)
Test: ZenModeVisEffectsCustomPreferenceControllerTest, robotests
Change-Id: Iffa701fb486bd9eeda7d2c4c46cb30392a09a5df
Fixes: 79728671

src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceController.java
src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceController.java
src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceController.java
tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java

index 757fde7..d7de0d9 100644 (file)
@@ -28,6 +28,8 @@ public class ZenModeVisEffectsAllPreferenceController
         extends AbstractZenModePreferenceController
         implements ZenCustomRadioButtonPreference.OnRadioButtonClickListener {
 
+    private ZenCustomRadioButtonPreference mPreference;
+
     protected static final int EFFECTS = Policy.SUPPRESSED_EFFECT_SCREEN_OFF
             | Policy.SUPPRESSED_EFFECT_SCREEN_ON
             | Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT
@@ -44,6 +46,13 @@ public class ZenModeVisEffectsAllPreferenceController
     }
 
     @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = (ZenCustomRadioButtonPreference) screen.findPreference(getPreferenceKey());
+        mPreference.setOnRadioButtonClickListener(this);
+    }
+
+    @Override
     public boolean isAvailable() {
         return true;
     }
@@ -54,17 +63,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
index 5dd99f6..2285308 100644 (file)
@@ -16,9 +16,8 @@
 
 package com.android.settings.notification;
 
-import android.app.NotificationManager.Policy;
+import android.app.NotificationManager;
 import android.content.Context;
-
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
@@ -30,10 +29,13 @@ import com.android.settingslib.core.lifecycle.Lifecycle;
 public class ZenModeVisEffectsCustomPreferenceController
         extends AbstractZenModePreferenceController {
 
-    protected static final int INTERRUPTIVE_EFFECTS = Policy.SUPPRESSED_EFFECT_AMBIENT
-            | Policy.SUPPRESSED_EFFECT_PEEK
-            | Policy.SUPPRESSED_EFFECT_LIGHTS
-            | Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT;
+    private ZenCustomRadioButtonPreference mPreference;
+
+    protected static final int INTERRUPTIVE_EFFECTS =
+            NotificationManager.Policy.SUPPRESSED_EFFECT_AMBIENT
+            | NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK
+            | NotificationManager.Policy.SUPPRESSED_EFFECT_LIGHTS
+            | NotificationManager.Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT;
 
     public ZenModeVisEffectsCustomPreferenceController(Context context, Lifecycle lifecycle,
             String key) {
@@ -46,25 +48,31 @@ public class ZenModeVisEffectsCustomPreferenceController
     }
 
     @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-
-        ZenCustomRadioButtonPreference pref = (ZenCustomRadioButtonPreference) preference;
-        pref.setChecked(areCustomOptionsSelected());
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = (ZenCustomRadioButtonPreference) screen.findPreference(getPreferenceKey());
 
-        pref.setOnGearClickListener(p -> {
+        mPreference.setOnGearClickListener(p -> {
             launchCustomSettings();
 
         });
 
-        pref.setOnRadioButtonClickListener(p -> {
+        mPreference.setOnRadioButtonClickListener(p -> {
             launchCustomSettings();
         });
     }
 
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+
+        mPreference.setChecked(areCustomOptionsSelected());
+    }
+
     protected boolean areCustomOptionsSelected() {
         boolean allEffectsSuppressed =
-                Policy.areAllVisualEffectsSuppressed(mBackend.mPolicy.suppressedVisualEffects);
+                NotificationManager.Policy.areAllVisualEffectsSuppressed(
+                        mBackend.mPolicy.suppressedVisualEffects);
         boolean noEffectsSuppressed = mBackend.mPolicy.suppressedVisualEffects == 0;
 
         return !(allEffectsSuppressed || noEffectsSuppressed);
index abfbd01..580fb5d 100644 (file)
@@ -28,6 +28,8 @@ public class ZenModeVisEffectsNonePreferenceController
         extends AbstractZenModePreferenceController
         implements ZenCustomRadioButtonPreference.OnRadioButtonClickListener {
 
+    private ZenCustomRadioButtonPreference mPreference;
+
     protected static final int EFFECTS = Policy.SUPPRESSED_EFFECT_SCREEN_OFF
             | Policy.SUPPRESSED_EFFECT_SCREEN_ON
             | Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT
@@ -44,6 +46,13 @@ public class ZenModeVisEffectsNonePreferenceController
     }
 
     @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = (ZenCustomRadioButtonPreference) screen.findPreference(getPreferenceKey());
+        mPreference.setOnRadioButtonClickListener(this);
+    }
+
+    @Override
     public boolean isAvailable() {
         return true;
     }
@@ -53,9 +62,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 +71,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);
-        }
-    }
 }
index 4544622..9f8e91a 100644 (file)
@@ -85,6 +85,7 @@ public class ZenModeVisEffectsCustomPreferenceControllerTest {
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
 
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mockPref);
+        mController.displayPreference(mScreen);
     }
 
     @Test