Merge "Use PersonNotifIdentifier in NotifGroupMan" into rvc-dev

This commit is contained in:
Steve Elliott
2020-05-12 16:06:08 +00:00
committed by Android (Google) Code Review
5 changed files with 26 additions and 8 deletions

View File

@@ -17,7 +17,6 @@
package com.android.systemui.statusbar.phone;
import android.annotation.Nullable;
import android.app.NotificationChannel;
import android.service.notification.StatusBarNotification;
import android.util.ArraySet;
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.statusbar.StatusBarState;
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.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
@@ -42,6 +42,8 @@ import java.util.Objects;
import javax.inject.Inject;
import javax.inject.Singleton;
import dagger.Lazy;
/**
* 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 final HashMap<String, NotificationGroup> mGroupMap = new HashMap<>();
private final ArraySet<OnGroupChangeListener> mListeners = new ArraySet<>();
private final Lazy<PeopleNotificationIdentifier> mPeopleNotificationIdentifier;
private int mBarState = -1;
private HashMap<String, StatusBarNotification> mIsolatedEntries = new HashMap<>();
private HeadsUpManager mHeadsUpManager;
@@ -58,8 +61,11 @@ public class NotificationGroupManager implements OnHeadsUpChangedListener, State
@Nullable private BubbleController mBubbleController = null;
@Inject
public NotificationGroupManager(StatusBarStateController statusBarStateController) {
public NotificationGroupManager(
StatusBarStateController statusBarStateController,
Lazy<PeopleNotificationIdentifier> peopleNotificationIdentifier) {
statusBarStateController.addCallback(this);
mPeopleNotificationIdentifier = peopleNotificationIdentifier;
}
private BubbleController getBubbleController() {
@@ -536,8 +542,9 @@ public class NotificationGroupManager implements OnHeadsUpChangedListener, State
if (!sbn.isGroup() || sbn.getNotification().isGroupSummary()) {
return false;
}
NotificationChannel channel = entry.getChannel();
if (channel != null && channel.isImportantConversation()) {
int peopleNotificationType = mPeopleNotificationIdentifier.get().getPeopleNotificationType(
entry.getSbn(), entry.getRanking());
if (peopleNotificationType == PeopleNotificationIdentifier.TYPE_IMPORTANT_PERSON) {
return true;
}
if (mHeadsUpManager != null && !mHeadsUpManager.isAlerting(entry.getKey())) {

View File

@@ -45,6 +45,7 @@ import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.notification.NotificationEntryManager.KeyguardEnvironment;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
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.NotificationTestHelper;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
@@ -93,7 +94,9 @@ public class NotificationFilterTest extends SysuiTestCase {
.thenReturn(PackageManager.PERMISSION_GRANTED);
mDependency.injectTestDependency(ForegroundServiceController.class, mFsc);
mDependency.injectTestDependency(NotificationGroupManager.class,
new NotificationGroupManager(mock(StatusBarStateController.class)));
new NotificationGroupManager(
mock(StatusBarStateController.class),
() -> mock(PeopleNotificationIdentifier.class)));
mDependency.injectMockDependency(ShadeController.class);
mDependency.injectMockDependency(NotificationLockscreenUserManager.class);
mDependency.injectTestDependency(KeyguardEnvironment.class, mEnvironment);

View File

@@ -115,7 +115,9 @@ public class NotificationTestHelper {
dependency.injectMockDependency(BubbleController.class);
dependency.injectMockDependency(NotificationShadeWindowController.class);
mStatusBarStateController = mock(StatusBarStateController.class);
mGroupManager = new NotificationGroupManager(mStatusBarStateController);
mGroupManager = new NotificationGroupManager(
mStatusBarStateController,
() -> mock(PeopleNotificationIdentifier.class));
mHeadsUpManager = new HeadsUpManagerPhone(mContext, mStatusBarStateController,
mock(KeyguardBypassController.class), mock(NotificationGroupManager.class),
mock(ConfigurationControllerImpl.class));

View File

@@ -42,6 +42,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
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.RowContentBindParams;
import com.android.systemui.statusbar.notification.row.RowContentBindStage;
@@ -87,7 +88,9 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
when(mNotificationEntryManager.getPendingNotificationsIterator())
.thenReturn(mPendingEntries.values());
mGroupManager = new NotificationGroupManager(mock(StatusBarStateController.class));
mGroupManager = new NotificationGroupManager(
mock(StatusBarStateController.class),
() -> mock(PeopleNotificationIdentifier.class));
mDependency.injectTestDependency(NotificationGroupManager.class, mGroupManager);
mGroupManager.setHeadsUpManager(mHeadsUpManager);

View File

@@ -33,6 +33,7 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import org.junit.Before;
@@ -63,7 +64,9 @@ public class NotificationGroupManagerTest extends SysuiTestCase {
}
private void initializeGroupManager() {
mGroupManager = new NotificationGroupManager(mock(StatusBarStateController.class));
mGroupManager = new NotificationGroupManager(
mock(StatusBarStateController.class),
() -> mock(PeopleNotificationIdentifier.class));
mGroupManager.setHeadsUpManager(mHeadsUpManager);
}