From 2304e4ab29469971c108509084c8b1e609cbaea8 Mon Sep 17 00:00:00 2001 From: Steve Elliott Date: Wed, 1 Apr 2020 17:03:41 -0400 Subject: [PATCH] Show conversation guts when HUNing Fixes: 150213758 Test: manual, atest Change-Id: I37285b126e312b038c4816749ad0a2cd35fc10d7 --- .../row/ExpandableNotificationRow.java | 14 +++-- .../ExpandableNotificationRowController.java | 9 ++- .../notification/row/NotificationMenuRow.java | 14 ++++- ...NotificationEntryManagerInflationTest.java | 4 +- .../row/NotificationGutsManagerTest.java | 5 +- .../row/NotificationMenuRowTest.java | 57 ++++++++++++------- .../row/NotificationTestHelper.java | 6 +- 7 files changed, 78 insertions(+), 31 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java index 7deabf79a6dd2..1aaf8e267dd3e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java @@ -89,6 +89,7 @@ import com.android.systemui.statusbar.notification.NotificationUtils; import com.android.systemui.statusbar.notification.VisualStabilityManager; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.logging.NotificationCounters; +import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier; import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag; import com.android.systemui.statusbar.notification.row.wrapper.NotificationViewWrapper; import com.android.systemui.statusbar.notification.stack.AmbientState; @@ -143,6 +144,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView private KeyguardBypassController mBypassController; private LayoutListener mLayoutListener; private RowContentBindStage mRowContentBindStage; + private PeopleNotificationIdentifier mPeopleNotificationIdentifier; private int mIconTransformContentShift; private int mMaxHeadsUpHeightBeforeN; private int mMaxHeadsUpHeightBeforeP; @@ -1135,7 +1137,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView @Override public void onPluginDisconnected(NotificationMenuRowPlugin plugin) { boolean existed = mMenuRow.getMenuView() != null; - mMenuRow = new NotificationMenuRow(mContext); + mMenuRow = new NotificationMenuRow(mContext, mPeopleNotificationIdentifier); if (existed) { createMenu(); } @@ -1572,7 +1574,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView public ExpandableNotificationRow(Context context, AttributeSet attrs) { super(context, attrs); - mMenuRow = new NotificationMenuRow(mContext); mImageResolver = new NotificationInlineImageResolver(context, new NotificationInlineImageCache()); initDimens(); @@ -1593,9 +1594,13 @@ public class ExpandableNotificationRow extends ActivatableNotificationView NotificationMediaManager notificationMediaManager, OnAppOpsClickListener onAppOpsClickListener, FalsingManager falsingManager, - StatusBarStateController statusBarStateController) { + StatusBarStateController statusBarStateController, + PeopleNotificationIdentifier peopleNotificationIdentifier) { mAppName = appName; - if (mMenuRow != null && mMenuRow.getMenuView() != null) { + if (mMenuRow == null) { + mMenuRow = new NotificationMenuRow(mContext, peopleNotificationIdentifier); + } + if (mMenuRow.getMenuView() != null) { mMenuRow.setAppName(mAppName); } mLogger = logger; @@ -1610,6 +1615,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView setAppOpsOnClickListener(onAppOpsClickListener); mFalsingManager = falsingManager; mStatusbarStateController = statusBarStateController; + mPeopleNotificationIdentifier = peopleNotificationIdentifier; } private void initDimens() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java index 39fab439ad071..8b3d06b97882c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java @@ -28,6 +28,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.statusbar.NotificationMediaManager; import com.android.systemui.statusbar.notification.logging.NotificationLogger; +import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier; import com.android.systemui.statusbar.notification.row.dagger.AppName; import com.android.systemui.statusbar.notification.row.dagger.DismissRunnable; import com.android.systemui.statusbar.notification.row.dagger.NotificationKey; @@ -68,6 +69,7 @@ public class ExpandableNotificationRowController { private Runnable mOnDismissRunnable; private final FalsingManager mFalsingManager; private final boolean mAllowLongPress; + private final PeopleNotificationIdentifier mPeopleNotificationIdentifier; @Inject public ExpandableNotificationRowController(ExpandableNotificationRow view, @@ -83,7 +85,8 @@ public class ExpandableNotificationRowController { NotificationRowContentBinder.InflationCallback inflationCallback, NotificationGutsManager notificationGutsManager, @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) boolean allowLongPress, - @DismissRunnable Runnable onDismissRunnable, FalsingManager falsingManager) { + @DismissRunnable Runnable onDismissRunnable, FalsingManager falsingManager, + PeopleNotificationIdentifier peopleNotificationIdentifier) { mView = view; mActivatableNotificationViewController = activatableNotificationViewController; mMediaManager = mediaManager; @@ -104,6 +107,7 @@ public class ExpandableNotificationRowController { mOnAppOpsClickListener = mNotificationGutsManager::openGuts; mAllowLongPress = allowLongPress; mFalsingManager = falsingManager; + mPeopleNotificationIdentifier = peopleNotificationIdentifier; } /** @@ -123,7 +127,8 @@ public class ExpandableNotificationRowController { mMediaManager, mOnAppOpsClickListener, mFalsingManager, - mStatusBarStateController + mStatusBarStateController, + mPeopleNotificationIdentifier ); mView.setOnDismissRunnable(mOnDismissRunnable); mView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java index 212cba6a95e50..83a6eb297ab3a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java @@ -45,8 +45,9 @@ import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; import com.android.systemui.statusbar.AlphaOptimizedImageView; +import com.android.systemui.statusbar.notification.collection.NotificationEntry; +import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier; import com.android.systemui.statusbar.notification.row.NotificationGuts.GutsContent; -import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager; import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout; import java.util.ArrayList; @@ -114,12 +115,16 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl private boolean mIsUserTouching; - public NotificationMenuRow(Context context) { + private final PeopleNotificationIdentifier mPeopleNotificationIdentifier; + + public NotificationMenuRow(Context context, + PeopleNotificationIdentifier peopleNotificationIdentifier) { mContext = context; mShouldShowMenu = context.getResources().getBoolean(R.bool.config_showNotificationGear); mHandler = new Handler(Looper.getMainLooper()); mLeftMenuItems = new ArrayList<>(); mRightMenuItems = new ArrayList<>(); + mPeopleNotificationIdentifier = peopleNotificationIdentifier; } @Override @@ -260,7 +265,10 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl mSnoozeItem = createSnoozeItem(mContext); } mAppOpsItem = createAppOpsItem(mContext); - if (mParent.getEntry().getBucket() == NotificationSectionsManager.BUCKET_PEOPLE) { + NotificationEntry entry = mParent.getEntry(); + int personNotifType = mPeopleNotificationIdentifier + .getPeopleNotificationType(entry.getSbn(), entry.getRanking()); + if (personNotifType != PeopleNotificationIdentifier.TYPE_NON_PERSON) { mInfoItem = createConversationItem(mContext); } else { mInfoItem = createInfoItem(mContext); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java index bdd7a2e064287..a5d8a84e3e088 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java @@ -131,6 +131,7 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase { @Mock private ActivatableNotificationViewController mActivatableNotificationViewController; @Mock private NotificationRowComponent.Builder mNotificationRowComponentBuilder; + @Mock private PeopleNotificationIdentifier mPeopleNotificationIdentifier; private StatusBarNotification mSbn; private NotificationListenerService.RankingMap mRankingMap; @@ -239,7 +240,8 @@ public class NotificationEntryManagerInflationTest extends SysuiTestCase { mGutsManager, true, null, - mFalsingManager + mFalsingManager, + mPeopleNotificationIdentifier )); when(mNotificationRowComponentBuilder.activatableNotificationView(any())) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java index 5ad88c941600e..462da935e0c30 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java @@ -72,6 +72,7 @@ import com.android.systemui.statusbar.notification.NotificationActivityStarter; import com.android.systemui.statusbar.notification.VisualStabilityManager; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider; +import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier; import com.android.systemui.statusbar.notification.row.NotificationGutsManager.OnSettingsClickListener; import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout; import com.android.systemui.statusbar.phone.StatusBar; @@ -118,6 +119,7 @@ public class NotificationGutsManagerTest extends SysuiTestCase { @Mock private INotificationManager mINotificationManager; @Mock private LauncherApps mLauncherApps; @Mock private ShortcutManager mShortcutManager; + @Mock private PeopleNotificationIdentifier mPeopleNotificationIdentifier; @Before public void setUp() { @@ -465,7 +467,8 @@ public class NotificationGutsManagerTest extends SysuiTestCase { } private NotificationMenuRowPlugin.MenuItem createTestMenuItem(ExpandableNotificationRow row) { - NotificationMenuRowPlugin menuRow = new NotificationMenuRow(mContext); + NotificationMenuRowPlugin menuRow = + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier); menuRow.createMenu(row, row.getEntry().getSbn()); NotificationMenuRowPlugin.MenuItem menuItem = menuRow.getLongpressMenuItem(mContext); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationMenuRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationMenuRowTest.java index b33d26f3f07bd..99e8c7e2df76b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationMenuRowTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationMenuRowTest.java @@ -40,6 +40,7 @@ import androidx.test.filters.SmallTest; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; 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.utils.leaks.LeakCheckedTest; import org.junit.After; @@ -54,11 +55,13 @@ import org.mockito.Mockito; public class NotificationMenuRowTest extends LeakCheckedTest { private ExpandableNotificationRow mRow; + private PeopleNotificationIdentifier mPeopleNotificationIdentifier; @Before public void setup() { injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES); mRow = mock(ExpandableNotificationRow.class); + mPeopleNotificationIdentifier = mock(PeopleNotificationIdentifier.class); NotificationEntry entry = new NotificationEntryBuilder().build(); when(mRow.getEntry()).thenReturn(entry); } @@ -71,7 +74,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testAttachDetach() { - NotificationMenuRowPlugin row = new NotificationMenuRow(mContext); + NotificationMenuRowPlugin row = + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier); row.createMenu(mRow, null); ViewUtils.attachView(row.getMenuView()); TestableLooper.get(this).processAllMessages(); @@ -81,7 +85,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testRecreateMenu() { - NotificationMenuRowPlugin row = new NotificationMenuRow(mContext); + NotificationMenuRowPlugin row = + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier); row.createMenu(mRow, null); assertTrue(row.getMenuView() != null); row.createMenu(mRow, null); @@ -90,7 +95,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testResetUncreatedMenu() { - NotificationMenuRowPlugin row = new NotificationMenuRow(mContext); + NotificationMenuRowPlugin row = + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier); row.resetMenu(); } @@ -99,7 +105,7 @@ public class NotificationMenuRowTest extends LeakCheckedTest { public void testNoAppOpsInSlowSwipe() { Settings.Secure.putInt(mContext.getContentResolver(), SHOW_NOTIFICATION_SNOOZE, 0); - NotificationMenuRow row = new NotificationMenuRow(mContext); + NotificationMenuRow row = new NotificationMenuRow(mContext, mPeopleNotificationIdentifier); row.createMenu(mRow, null); ViewGroup container = (ViewGroup) row.getMenuView(); @@ -111,7 +117,7 @@ public class NotificationMenuRowTest extends LeakCheckedTest { public void testNoSnoozeInSlowSwipe() { Settings.Secure.putInt(mContext.getContentResolver(), SHOW_NOTIFICATION_SNOOZE, 0); - NotificationMenuRow row = new NotificationMenuRow(mContext); + NotificationMenuRow row = new NotificationMenuRow(mContext, mPeopleNotificationIdentifier); row.createMenu(mRow, null); ViewGroup container = (ViewGroup) row.getMenuView(); @@ -123,7 +129,7 @@ public class NotificationMenuRowTest extends LeakCheckedTest { public void testSnoozeInSlowSwipe() { Settings.Secure.putInt(mContext.getContentResolver(), SHOW_NOTIFICATION_SNOOZE, 1); - NotificationMenuRow row = new NotificationMenuRow(mContext); + NotificationMenuRow row = new NotificationMenuRow(mContext, mPeopleNotificationIdentifier); row.createMenu(mRow, null); ViewGroup container = (ViewGroup) row.getMenuView(); @@ -133,7 +139,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testIsSnappedAndOnSameSide() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); when(row.isMenuVisible()).thenReturn(true); when(row.isMenuSnapped()).thenReturn(true); @@ -165,7 +172,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testGetMenuSnapTarget() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); when(row.isMenuOnLeft()).thenReturn(true); doReturn(30).when(row).getSpaceForMenu(); @@ -179,7 +187,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testIsSwipedEnoughToShowMenu() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); when(row.isMenuVisible()).thenReturn(true); when(row.isMenuOnLeft()).thenReturn(true); doReturn(40f).when(row).getMinimumSwipeDistance(); @@ -205,7 +214,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testIsWithinSnapMenuThreshold() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); doReturn(30f).when(row).getSnapBackThreshold(); doReturn(50f).when(row).getDismissThreshold(); @@ -238,7 +248,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testShouldSnapBack() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); doReturn(40f).when(row).getSnapBackThreshold(); when(row.isMenuVisible()).thenReturn(false); when(row.isMenuOnLeft()).thenReturn(true); @@ -259,7 +270,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testCanBeDismissed() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); ExpandableNotificationRow parent = mock(ExpandableNotificationRow.class); when(row.getParent()).thenReturn(parent); @@ -274,7 +286,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testIsTowardsMenu() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); when(row.isMenuVisible()).thenReturn(true); when(row.isMenuOnLeft()).thenReturn(true); @@ -294,7 +307,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void onSnapBack() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); NotificationMenuRowPlugin.OnMenuEventListener listener = mock(NotificationMenuRowPlugin .OnMenuEventListener.class); row.setMenuClickListener(listener); @@ -315,7 +329,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testOnSnap() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); when(row.isMenuOnLeft()).thenReturn(true); NotificationMenuRowPlugin.OnMenuEventListener listener = mock(NotificationMenuRowPlugin .OnMenuEventListener.class); @@ -335,7 +350,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testOnDismiss() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); doNothing().when(row).cancelDrag(); row.onSnapOpen(); @@ -351,7 +367,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testOnDown() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); doNothing().when(row).beginDrag(); row.onTouchStart(); @@ -361,7 +378,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testOnUp() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); row.onTouchStart(); assertTrue("before onTouchEnd, isUserTouching is true", row.isUserTouching()); @@ -373,7 +391,8 @@ public class NotificationMenuRowTest extends LeakCheckedTest { @Test public void testIsMenuVisible() { - NotificationMenuRow row = Mockito.spy(new NotificationMenuRow((mContext))); + NotificationMenuRow row = Mockito.spy( + new NotificationMenuRow(mContext, mPeopleNotificationIdentifier)); row.setMenuAlpha(0); assertFalse("when alpha is 0, menu is not visible", row.isMenuVisible()); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java index 2134a3d5af921..0e67feb1d4ee3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java @@ -57,6 +57,7 @@ import com.android.systemui.statusbar.notification.collection.notifcollection.Co import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener; import com.android.systemui.statusbar.notification.icon.IconBuilder; import com.android.systemui.statusbar.notification.icon.IconManager; +import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow.ExpansionLogger; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow.OnExpandClickListener; import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag; @@ -100,6 +101,7 @@ public class NotificationTestHelper { private final RowContentBindStage mBindStage; private final IconManager mIconManager; private StatusBarStateController mStatusBarStateController; + private final PeopleNotificationIdentifier mPeopleNotificationIdentifier; public NotificationTestHelper(Context context, TestableDependency dependency) { mContext = context; @@ -138,6 +140,7 @@ public class NotificationTestHelper { ArgumentCaptor.forClass(NotifCollectionListener.class); verify(collection).addCollectionListener(collectionListenerCaptor.capture()); mBindPipelineEntryListener = collectionListenerCaptor.getValue(); + mPeopleNotificationIdentifier = mock(PeopleNotificationIdentifier.class); } /** @@ -407,7 +410,8 @@ public class NotificationTestHelper { mock(NotificationMediaManager.class), mock(ExpandableNotificationRow.OnAppOpsClickListener.class), mock(FalsingManager.class), - mStatusBarStateController); + mStatusBarStateController, + mPeopleNotificationIdentifier); row.setAboveShelfChangedListener(aboveShelf -> { }); mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags); inflateAndWait(entry, mBindStage);