Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4c3a6b68 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Respect ambient HUN setting"

parents aa76bd5e 2c3992b5
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -22,10 +22,12 @@ import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.database.ContentObserver;
import android.hardware.display.AmbientDisplayConfiguration;
import android.os.Bundle;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.provider.Settings;
import android.service.dreams.DreamService;
import android.service.dreams.IDreamManager;
@@ -54,6 +56,7 @@ public class NotificationInterruptionStateProvider {
    private final StatusBarStateController mStatusBarStateController =
            Dependency.get(StatusBarStateController.class);
    private final NotificationFilter mNotificationFilter = Dependency.get(NotificationFilter.class);
    private final AmbientDisplayConfiguration mAmbientDisplayConfiguration;

    private final Context mContext;
    private final PowerManager mPowerManager;
@@ -73,17 +76,20 @@ public class NotificationInterruptionStateProvider {
        this(context,
                (PowerManager) context.getSystemService(Context.POWER_SERVICE),
                IDreamManager.Stub.asInterface(
                        ServiceManager.checkService(DreamService.DREAM_SERVICE)));
                        ServiceManager.checkService(DreamService.DREAM_SERVICE)),
                new AmbientDisplayConfiguration(context));
    }

    @VisibleForTesting
    protected NotificationInterruptionStateProvider(
            Context context,
            PowerManager powerManager,
            IDreamManager dreamManager) {
            IDreamManager dreamManager,
            AmbientDisplayConfiguration ambientDisplayConfiguration) {
        mContext = context;
        mPowerManager = powerManager;
        mDreamManager = dreamManager;
        mAmbientDisplayConfiguration = ambientDisplayConfiguration;
    }

    /** Sets up late-binding dependencies for this component. */
@@ -232,6 +238,13 @@ public class NotificationInterruptionStateProvider {
    public boolean shouldPulse(NotificationEntry entry) {
        StatusBarNotification sbn = entry.notification;

        if (!mAmbientDisplayConfiguration.pulseOnNotificationEnabled(UserHandle.USER_CURRENT)) {
            if (DEBUG) {
                Log.d(TAG, "No pulsing: disabled by setting: " + sbn.getKey());
            }
            return false;
        }

        if (!getShadeController().isDozing()) {
            if (DEBUG) {
                Log.d(TAG, "No pulsing: not dozing: " + sbn.getKey());
+7 −3
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import android.app.Notification;
import android.app.StatusBarManager;
import android.app.trust.TrustManager;
import android.content.Context;
import android.hardware.display.AmbientDisplayConfiguration;
import android.hardware.fingerprint.FingerprintManager;
import android.metrics.LogMaker;
import android.os.Binder;
@@ -169,6 +170,8 @@ public class StatusBarTest extends SysuiTestCase {
    private NotificationLogger.ExpansionStateLogger mExpansionStateLogger;
    @Mock
    private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    @Mock
    private AmbientDisplayConfiguration mAmbientDisplayConfiguration;

    private TestableStatusBar mStatusBar;
    private FakeMetricsLogger mMetricsLogger;
@@ -205,7 +208,7 @@ public class StatusBarTest extends SysuiTestCase {

        mNotificationInterruptionStateProvider =
                new TestableNotificationInterruptionStateProvider(mContext, mPowerManager,
                        mDreamManager);
                        mDreamManager, mAmbientDisplayConfiguration);
        mDependency.injectTestDependency(NotificationInterruptionStateProvider.class,
                mNotificationInterruptionStateProvider);
        mDependency.injectMockDependency(NavigationBarController.class);
@@ -832,8 +835,9 @@ public class StatusBarTest extends SysuiTestCase {
        public TestableNotificationInterruptionStateProvider(
                Context context,
                PowerManager powerManager,
                IDreamManager dreamManager) {
            super(context, powerManager, dreamManager);
                IDreamManager dreamManager,
                AmbientDisplayConfiguration ambientDisplayConfiguration) {
            super(context, powerManager, dreamManager, ambientDisplayConfiguration);
            mUseHeadsUp = true;
        }
    }