Merge "Use PersonNotifIdentifier in NotifGroupMan" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
7a323827ac
@@ -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())) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user