Merge "Dnd 'blink light' option only if phone has LED" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
efa1cde042
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.settings.notification;
|
package com.android.settings.notification;
|
||||||
|
|
||||||
|
import android.app.NotificationManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.v7.preference.CheckBoxPreference;
|
import android.support.v7.preference.CheckBoxPreference;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
@@ -51,6 +52,10 @@ public class ZenModeVisEffectPreferenceController
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAvailable() {
|
public boolean isAvailable() {
|
||||||
|
if (mEffect == NotificationManager.Policy.SUPPRESSED_EFFECT_LIGHTS) {
|
||||||
|
return mContext.getResources()
|
||||||
|
.getBoolean(com.android.internal.R.bool.config_intrusiveNotificationLed);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -17,9 +17,14 @@
|
|||||||
package com.android.settings.notification;
|
package com.android.settings.notification;
|
||||||
|
|
||||||
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_BADGE;
|
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_BADGE;
|
||||||
|
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_LIGHTS;
|
||||||
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_NOTIFICATION_LIST;
|
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_NOTIFICATION_LIST;
|
||||||
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK;
|
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.ArgumentMatchers.nullable;
|
import static org.mockito.ArgumentMatchers.nullable;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
@@ -30,6 +35,7 @@ import static org.mockito.Mockito.when;
|
|||||||
|
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.support.v7.preference.CheckBoxPreference;
|
import android.support.v7.preference.CheckBoxPreference;
|
||||||
import android.support.v7.preference.PreferenceScreen;
|
import android.support.v7.preference.PreferenceScreen;
|
||||||
|
|
||||||
@@ -81,6 +87,27 @@ public class ZenModeVisEffectPreferenceControllerTest {
|
|||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isAvailable() {
|
||||||
|
// SUPPRESSED_EFFECT_PEEK is always available:
|
||||||
|
assertTrue(mController.isAvailable());
|
||||||
|
|
||||||
|
// SUPPRESSED_EFFECT_LIGHTS is only available if the device has an LED:
|
||||||
|
Context mockContext = mock(Context.class);
|
||||||
|
mController = new ZenModeVisEffectPreferenceController(mockContext, mock(Lifecycle.class),
|
||||||
|
PREF_KEY, SUPPRESSED_EFFECT_LIGHTS, PREF_METRICS, null);
|
||||||
|
Resources mockResources = mock(Resources.class);
|
||||||
|
when(mockContext.getResources()).thenReturn(mockResources);
|
||||||
|
|
||||||
|
when(mockResources.getBoolean(com.android.internal.R.bool.config_intrusiveNotificationLed))
|
||||||
|
.thenReturn(false); // no light
|
||||||
|
assertFalse(mController.isAvailable());
|
||||||
|
|
||||||
|
when(mockResources.getBoolean(com.android.internal.R.bool.config_intrusiveNotificationLed))
|
||||||
|
.thenReturn(true); // has light
|
||||||
|
assertTrue(mController.isAvailable());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateState_notChecked() {
|
public void updateState_notChecked() {
|
||||||
when(mBackend.isVisualEffectSuppressed(SUPPRESSED_EFFECT_PEEK)).thenReturn(false);
|
when(mBackend.isVisualEffectSuppressed(SUPPRESSED_EFFECT_PEEK)).thenReturn(false);
|
||||||
|
Reference in New Issue
Block a user