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

Commit 3ba31ba4 authored by Steve Elliott's avatar Steve Elliott Committed by Automerger Merge Worker
Browse files

Merge "Use PersonNotifIdentifier in NotifGroupMan" into rvc-dev am: 7a323827

Change-Id: I91dcacecfbd965a533279b5743b99db5767f77cb
parents 8c2ca379 7a323827
Loading
Loading
Loading
Loading
+11 −4
Original line number Original line Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.systemui.statusbar.phone;
package com.android.systemui.statusbar.phone;


import android.annotation.Nullable;
import android.annotation.Nullable;
import android.app.NotificationChannel;
import android.service.notification.StatusBarNotification;
import android.service.notification.StatusBarNotification;
import android.util.ArraySet;
import android.util.ArraySet;
import android.util.Log;
import android.util.Log;
@@ -28,6 +27,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
@@ -42,6 +42,8 @@ import java.util.Objects;
import javax.inject.Inject;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.inject.Singleton;


import dagger.Lazy;

/**
/**
 * A class to handle notifications and their corresponding groups.
 * A class to handle notifications and their corresponding groups.
 */
 */
@@ -51,6 +53,7 @@ public class NotificationGroupManager implements OnHeadsUpChangedListener, State
    private static final String TAG = "NotificationGroupManager";
    private static final String TAG = "NotificationGroupManager";
    private final HashMap<String, NotificationGroup> mGroupMap = new HashMap<>();
    private final HashMap<String, NotificationGroup> mGroupMap = new HashMap<>();
    private final ArraySet<OnGroupChangeListener> mListeners = new ArraySet<>();
    private final ArraySet<OnGroupChangeListener> mListeners = new ArraySet<>();
    private final Lazy<PeopleNotificationIdentifier> mPeopleNotificationIdentifier;
    private int mBarState = -1;
    private int mBarState = -1;
    private HashMap<String, StatusBarNotification> mIsolatedEntries = new HashMap<>();
    private HashMap<String, StatusBarNotification> mIsolatedEntries = new HashMap<>();
    private HeadsUpManager mHeadsUpManager;
    private HeadsUpManager mHeadsUpManager;
@@ -58,8 +61,11 @@ public class NotificationGroupManager implements OnHeadsUpChangedListener, State
    @Nullable private BubbleController mBubbleController = null;
    @Nullable private BubbleController mBubbleController = null;


    @Inject
    @Inject
    public NotificationGroupManager(StatusBarStateController statusBarStateController) {
    public NotificationGroupManager(
            StatusBarStateController statusBarStateController,
            Lazy<PeopleNotificationIdentifier> peopleNotificationIdentifier) {
        statusBarStateController.addCallback(this);
        statusBarStateController.addCallback(this);
        mPeopleNotificationIdentifier = peopleNotificationIdentifier;
    }
    }


    private BubbleController getBubbleController() {
    private BubbleController getBubbleController() {
@@ -536,8 +542,9 @@ public class NotificationGroupManager implements OnHeadsUpChangedListener, State
        if (!sbn.isGroup() || sbn.getNotification().isGroupSummary()) {
        if (!sbn.isGroup() || sbn.getNotification().isGroupSummary()) {
            return false;
            return false;
        }
        }
        NotificationChannel channel = entry.getChannel();
        int peopleNotificationType = mPeopleNotificationIdentifier.get().getPeopleNotificationType(
        if (channel != null && channel.isImportantConversation()) {
                entry.getSbn(), entry.getRanking());
        if (peopleNotificationType == PeopleNotificationIdentifier.TYPE_IMPORTANT_PERSON) {
            return true;
            return true;
        }
        }
        if (mHeadsUpManager != null && !mHeadsUpManager.isAlerting(entry.getKey())) {
        if (mHeadsUpManager != null && !mHeadsUpManager.isAlerting(entry.getKey())) {
+4 −1
Original line number Original line Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.notification.NotificationEntryManager.KeyguardEnvironment;
import com.android.systemui.statusbar.notification.NotificationEntryManager.KeyguardEnvironment;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
@@ -93,7 +94,9 @@ public class NotificationFilterTest extends SysuiTestCase {
                .thenReturn(PackageManager.PERMISSION_GRANTED);
                .thenReturn(PackageManager.PERMISSION_GRANTED);
        mDependency.injectTestDependency(ForegroundServiceController.class, mFsc);
        mDependency.injectTestDependency(ForegroundServiceController.class, mFsc);
        mDependency.injectTestDependency(NotificationGroupManager.class,
        mDependency.injectTestDependency(NotificationGroupManager.class,
                new NotificationGroupManager(mock(StatusBarStateController.class)));
                new NotificationGroupManager(
                        mock(StatusBarStateController.class),
                        () -> mock(PeopleNotificationIdentifier.class)));
        mDependency.injectMockDependency(ShadeController.class);
        mDependency.injectMockDependency(ShadeController.class);
        mDependency.injectMockDependency(NotificationLockscreenUserManager.class);
        mDependency.injectMockDependency(NotificationLockscreenUserManager.class);
        mDependency.injectTestDependency(KeyguardEnvironment.class, mEnvironment);
        mDependency.injectTestDependency(KeyguardEnvironment.class, mEnvironment);
+3 −1
Original line number Original line Diff line number Diff line
@@ -115,7 +115,9 @@ public class NotificationTestHelper {
        dependency.injectMockDependency(BubbleController.class);
        dependency.injectMockDependency(BubbleController.class);
        dependency.injectMockDependency(NotificationShadeWindowController.class);
        dependency.injectMockDependency(NotificationShadeWindowController.class);
        mStatusBarStateController = mock(StatusBarStateController.class);
        mStatusBarStateController = mock(StatusBarStateController.class);
        mGroupManager = new NotificationGroupManager(mStatusBarStateController);
        mGroupManager = new NotificationGroupManager(
                mStatusBarStateController,
                () -> mock(PeopleNotificationIdentifier.class));
        mHeadsUpManager = new HeadsUpManagerPhone(mContext, mStatusBarStateController,
        mHeadsUpManager = new HeadsUpManagerPhone(mContext, mStatusBarStateController,
                mock(KeyguardBypassController.class), mock(NotificationGroupManager.class),
                mock(KeyguardBypassController.class), mock(NotificationGroupManager.class),
                mock(ConfigurationControllerImpl.class));
                mock(ConfigurationControllerImpl.class));
+4 −1
Original line number Original line Diff line number Diff line
@@ -42,6 +42,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
import com.android.systemui.statusbar.notification.row.NotifBindPipeline.BindCallback;
import com.android.systemui.statusbar.notification.row.NotifBindPipeline.BindCallback;
import com.android.systemui.statusbar.notification.row.RowContentBindParams;
import com.android.systemui.statusbar.notification.row.RowContentBindParams;
import com.android.systemui.statusbar.notification.row.RowContentBindStage;
import com.android.systemui.statusbar.notification.row.RowContentBindStage;
@@ -87,7 +88,9 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
        when(mNotificationEntryManager.getPendingNotificationsIterator())
        when(mNotificationEntryManager.getPendingNotificationsIterator())
                .thenReturn(mPendingEntries.values());
                .thenReturn(mPendingEntries.values());


        mGroupManager = new NotificationGroupManager(mock(StatusBarStateController.class));
        mGroupManager = new NotificationGroupManager(
                mock(StatusBarStateController.class),
                () -> mock(PeopleNotificationIdentifier.class));
        mDependency.injectTestDependency(NotificationGroupManager.class, mGroupManager);
        mDependency.injectTestDependency(NotificationGroupManager.class, mGroupManager);
        mGroupManager.setHeadsUpManager(mHeadsUpManager);
        mGroupManager.setHeadsUpManager(mHeadsUpManager);


+4 −1
Original line number Original line Diff line number Diff line
@@ -33,6 +33,7 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.HeadsUpManager;


import org.junit.Before;
import org.junit.Before;
@@ -63,7 +64,9 @@ public class NotificationGroupManagerTest extends SysuiTestCase {
    }
    }


    private void initializeGroupManager() {
    private void initializeGroupManager() {
        mGroupManager = new NotificationGroupManager(mock(StatusBarStateController.class));
        mGroupManager = new NotificationGroupManager(
                mock(StatusBarStateController.class),
                () -> mock(PeopleNotificationIdentifier.class));
        mGroupManager.setHeadsUpManager(mHeadsUpManager);
        mGroupManager.setHeadsUpManager(mHeadsUpManager);
    }
    }