Loading packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt +53 −39 Original line number Original line Diff line number Diff line Loading @@ -35,7 +35,9 @@ import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FakeFeatureFlagsClassic import com.android.systemui.flags.FakeFeatureFlagsClassic import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.flags.Flags import com.android.systemui.media.controls.util.MediaFeatureFlag import com.android.systemui.media.dialog.MediaOutputDialogManager import com.android.systemui.media.dialog.MediaOutputDialogManager import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.shared.system.ActivityManagerWrapper import com.android.systemui.shared.system.ActivityManagerWrapper import com.android.systemui.shared.system.DevicePolicyManagerWrapper import com.android.systemui.shared.system.DevicePolicyManagerWrapper Loading @@ -46,6 +48,7 @@ import com.android.systemui.statusbar.NotificationShadeWindowController import com.android.systemui.statusbar.RankingBuilder import com.android.systemui.statusbar.RankingBuilder import com.android.systemui.statusbar.SmartReplyController import com.android.systemui.statusbar.SmartReplyController import com.android.systemui.statusbar.notification.ColorUpdateLogger import com.android.systemui.statusbar.notification.ColorUpdateLogger import com.android.systemui.statusbar.notification.ConversationNotificationManager import com.android.systemui.statusbar.notification.ConversationNotificationProcessor import com.android.systemui.statusbar.notification.ConversationNotificationProcessor 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 Loading @@ -69,6 +72,7 @@ import com.android.systemui.statusbar.notification.row.NotificationRowContentBin import com.android.systemui.statusbar.notification.row.shared.NotificationRowContentBinderRefactor import com.android.systemui.statusbar.notification.row.shared.NotificationRowContentBinderRefactor import com.android.systemui.statusbar.notification.stack.NotificationChildrenContainerLogger import com.android.systemui.statusbar.notification.stack.NotificationChildrenContainerLogger import com.android.systemui.statusbar.phone.KeyguardBypassController import com.android.systemui.statusbar.phone.KeyguardBypassController import com.android.systemui.statusbar.phone.KeyguardDismissUtil import com.android.systemui.statusbar.policy.HeadsUpManager import com.android.systemui.statusbar.policy.HeadsUpManager import com.android.systemui.statusbar.policy.SmartActionInflaterImpl import com.android.systemui.statusbar.policy.SmartActionInflaterImpl import com.android.systemui.statusbar.policy.SmartReplyConstants import com.android.systemui.statusbar.policy.SmartReplyConstants Loading @@ -84,6 +88,7 @@ import com.android.systemui.util.time.FakeSystemClock import com.android.systemui.wmshell.BubblesManager import com.android.systemui.wmshell.BubblesManager import java.util.Optional import java.util.Optional import java.util.concurrent.CountDownLatch import java.util.concurrent.CountDownLatch import java.util.concurrent.Executor import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.TestScope import org.junit.Assert.assertTrue import org.junit.Assert.assertTrue Loading Loading @@ -128,19 +133,19 @@ class ExpandableNotificationRowBuilder( dependency.injectMockDependency(NotificationShadeWindowController::class.java) dependency.injectMockDependency(NotificationShadeWindowController::class.java) dependency.injectMockDependency(MediaOutputDialogManager::class.java) dependency.injectMockDependency(MediaOutputDialogManager::class.java) mMockLogger = Mockito.mock(ExpandableNotificationRowLogger::class.java) mMockLogger = Mockito.mock(ExpandableNotificationRowLogger::class.java, STUB_ONLY) mStatusBarStateController = Mockito.mock(StatusBarStateController::class.java) mStatusBarStateController = Mockito.mock(StatusBarStateController::class.java, STUB_ONLY) mKeyguardBypassController = Mockito.mock(KeyguardBypassController::class.java) mKeyguardBypassController = Mockito.mock(KeyguardBypassController::class.java, STUB_ONLY) mGroupMembershipManager = GroupMembershipManagerImpl() mGroupMembershipManager = GroupMembershipManagerImpl() mSmartReplyController = Mockito.mock(SmartReplyController::class.java) mSmartReplyController = Mockito.mock(SmartReplyController::class.java, STUB_ONLY) val dumpManager = DumpManager() val dumpManager = DumpManager() mGroupExpansionManager = GroupExpansionManagerImpl(dumpManager, mGroupMembershipManager) mGroupExpansionManager = GroupExpansionManagerImpl(dumpManager, mGroupMembershipManager) mHeadsUpManager = Mockito.mock(HeadsUpManager::class.java) mHeadsUpManager = Mockito.mock(HeadsUpManager::class.java, STUB_ONLY) mIconManager = mIconManager = IconManager( IconManager( Mockito.mock(CommonNotifCollection::class.java), Mockito.mock(CommonNotifCollection::class.java, STUB_ONLY), Mockito.mock(LauncherApps::class.java), Mockito.mock(LauncherApps::class.java, STUB_ONLY), IconBuilder(context), IconBuilder(context), mTestScope, mTestScope, mBgCoroutineContext, mBgCoroutineContext, Loading Loading @@ -173,7 +178,7 @@ class ExpandableNotificationRowBuilder( } } ) ) val remoteViewsFactories = getNotifRemoteViewsFactoryContainer(featureFlags) val remoteViewsFactories = getNotifRemoteViewsFactoryContainer(featureFlags) val remoteInputManager = Mockito.mock(NotificationRemoteInputManager::class.java) val remoteInputManager = Mockito.mock(NotificationRemoteInputManager::class.java, STUB_ONLY) val smartReplyStateInflater = val smartReplyStateInflater = SmartReplyStateInflaterImpl( SmartReplyStateInflaterImpl( constants = mSmartReplyConstants, constants = mSmartReplyConstants, Loading @@ -183,7 +188,8 @@ class ExpandableNotificationRowBuilder( smartRepliesInflater = smartRepliesInflater = SmartReplyInflaterImpl( SmartReplyInflaterImpl( constants = mSmartReplyConstants, constants = mSmartReplyConstants, keyguardDismissUtil = mock(), keyguardDismissUtil = Mockito.mock(KeyguardDismissUtil::class.java, STUB_ONLY), remoteInputManager = remoteInputManager, remoteInputManager = remoteInputManager, smartReplyController = mSmartReplyController, smartReplyController = mSmartReplyController, context = context context = context Loading @@ -191,7 +197,7 @@ class ExpandableNotificationRowBuilder( smartActionsInflater = smartActionsInflater = SmartActionInflaterImpl( SmartActionInflaterImpl( constants = mSmartReplyConstants, constants = mSmartReplyConstants, activityStarter = mock(), activityStarter = Mockito.mock(ActivityStarter::class.java, STUB_ONLY), smartReplyController = mSmartReplyController, smartReplyController = mSmartReplyController, headsUpManager = mHeadsUpManager headsUpManager = mHeadsUpManager ) ) Loading @@ -206,41 +212,42 @@ class ExpandableNotificationRowBuilder( } } val conversationProcessor = val conversationProcessor = ConversationNotificationProcessor( ConversationNotificationProcessor( mock(), Mockito.mock(LauncherApps::class.java, STUB_ONLY), mock(), Mockito.mock(ConversationNotificationManager::class.java, STUB_ONLY), ) ) mContentBinder = mContentBinder = if (NotificationRowContentBinderRefactor.isEnabled) if (NotificationRowContentBinderRefactor.isEnabled) NotificationRowContentBinderImpl( NotificationRowContentBinderImpl( mock(), Mockito.mock(NotifRemoteViewCache::class.java, STUB_ONLY), remoteInputManager, remoteInputManager, conversationProcessor, conversationProcessor, mock(), Mockito.mock(RichOngoingNotificationContentExtractor::class.java, STUB_ONLY), mock(), Mockito.mock(RichOngoingNotificationViewInflater::class.java, STUB_ONLY), mock(), Mockito.mock(Executor::class.java, STUB_ONLY), smartReplyStateInflater, smartReplyStateInflater, notifLayoutInflaterFactoryProvider, notifLayoutInflaterFactoryProvider, mock(), Mockito.mock(HeadsUpStyleProvider::class.java, STUB_ONLY), mock(), Mockito.mock(NotificationRowContentBinderLogger::class.java, STUB_ONLY), ) ) else else NotificationContentInflater( NotificationContentInflater( mock(), Mockito.mock(NotifRemoteViewCache::class.java, STUB_ONLY), remoteInputManager, remoteInputManager, conversationProcessor, conversationProcessor, mock(), Mockito.mock(MediaFeatureFlag::class.java, STUB_ONLY), mock(), Mockito.mock(Executor::class.java, STUB_ONLY), smartReplyStateInflater, smartReplyStateInflater, notifLayoutInflaterFactoryProvider, notifLayoutInflaterFactoryProvider, mock(), Mockito.mock(HeadsUpStyleProvider::class.java, STUB_ONLY), mock(), Mockito.mock(NotificationRowContentBinderLogger::class.java, STUB_ONLY), ) ) mContentBinder.setInflateSynchronously(true) mContentBinder.setInflateSynchronously(true) mBindStage = mBindStage = RowContentBindStage( RowContentBindStage( mContentBinder, mContentBinder, mock(), Mockito.mock(NotifInflationErrorManager::class.java, STUB_ONLY), mock(), Mockito.mock(RowContentBindStageLogger::class.java, STUB_ONLY), ) ) val collection = Mockito.mock(CommonNotifCollection::class.java) val collection = Mockito.mock(CommonNotifCollection::class.java) Loading @@ -248,7 +255,7 @@ class ExpandableNotificationRowBuilder( mBindPipeline = mBindPipeline = NotifBindPipeline( NotifBindPipeline( collection, collection, Mockito.mock(NotifBindPipelineLogger::class.java), Mockito.mock(NotifBindPipelineLogger::class.java, STUB_ONLY), NotificationEntryProcessorFactoryExecutorImpl(mMainExecutor), NotificationEntryProcessorFactoryExecutorImpl(mMainExecutor), ) ) mBindPipeline.setStage(mBindStage) mBindPipeline.setStage(mBindStage) Loading @@ -256,9 +263,11 @@ class ExpandableNotificationRowBuilder( val collectionListenerCaptor = ArgumentCaptor.forClass(NotifCollectionListener::class.java) val collectionListenerCaptor = ArgumentCaptor.forClass(NotifCollectionListener::class.java) Mockito.verify(collection).addCollectionListener(collectionListenerCaptor.capture()) Mockito.verify(collection).addCollectionListener(collectionListenerCaptor.capture()) mBindPipelineEntryListener = collectionListenerCaptor.value mBindPipelineEntryListener = collectionListenerCaptor.value mPeopleNotificationIdentifier = Mockito.mock(PeopleNotificationIdentifier::class.java) mPeopleNotificationIdentifier = Mockito.mock(PeopleNotificationIdentifier::class.java, STUB_ONLY) mOnUserInteractionCallback = Mockito.mock(OnUserInteractionCallback::class.java) mOnUserInteractionCallback = Mockito.mock(OnUserInteractionCallback::class.java) mDismissibilityProvider = Mockito.mock(NotificationDismissibilityProvider::class.java) mDismissibilityProvider = Mockito.mock(NotificationDismissibilityProvider::class.java, STUB_ONLY) val mFutureDismissalRunnable = Mockito.mock(Runnable::class.java) val mFutureDismissalRunnable = Mockito.mock(Runnable::class.java) whenever( whenever( mOnUserInteractionCallback.registerFutureDismissal( mOnUserInteractionCallback.registerFutureDismissal( Loading Loading @@ -320,7 +329,10 @@ class ExpandableNotificationRowBuilder( // set, but we do not want to override an existing value that is needed by a specific test. // set, but we do not want to override an existing value that is needed by a specific test. val rowInflaterTask = val rowInflaterTask = RowInflaterTask(mFakeSystemClock, Mockito.mock(RowInflaterTaskLogger::class.java)) RowInflaterTask( mFakeSystemClock, Mockito.mock(RowInflaterTaskLogger::class.java, STUB_ONLY) ) val row = rowInflaterTask.inflateSynchronously(context, null, entry) val row = rowInflaterTask.inflateSynchronously(context, null, entry) entry.row = row entry.row = row Loading @@ -329,7 +341,7 @@ class ExpandableNotificationRowBuilder( mBindPipeline.manageRow(entry, row) mBindPipeline.manageRow(entry, row) row.initialize( row.initialize( entry, entry, Mockito.mock(RemoteInputViewSubcomponent.Factory::class.java), Mockito.mock(RemoteInputViewSubcomponent.Factory::class.java, STUB_ONLY), APP_NAME, APP_NAME, entry.key, entry.key, mMockLogger, mMockLogger, Loading @@ -338,23 +350,23 @@ class ExpandableNotificationRowBuilder( mGroupExpansionManager, mGroupExpansionManager, mHeadsUpManager, mHeadsUpManager, mBindStage, mBindStage, Mockito.mock(OnExpandClickListener::class.java), Mockito.mock(OnExpandClickListener::class.java, STUB_ONLY), Mockito.mock(CoordinateOnClickListener::class.java), Mockito.mock(CoordinateOnClickListener::class.java, STUB_ONLY), FalsingManagerFake(), FalsingManagerFake(), mStatusBarStateController, mStatusBarStateController, mPeopleNotificationIdentifier, mPeopleNotificationIdentifier, mOnUserInteractionCallback, mOnUserInteractionCallback, Optional.of(Mockito.mock(BubblesManager::class.java)), Optional.of(Mockito.mock(BubblesManager::class.java, STUB_ONLY)), Mockito.mock(NotificationGutsManager::class.java), Mockito.mock(NotificationGutsManager::class.java, STUB_ONLY), mDismissibilityProvider, mDismissibilityProvider, Mockito.mock(MetricsLogger::class.java), Mockito.mock(MetricsLogger::class.java, STUB_ONLY), Mockito.mock(NotificationChildrenContainerLogger::class.java), Mockito.mock(NotificationChildrenContainerLogger::class.java, STUB_ONLY), Mockito.mock(ColorUpdateLogger::class.java), Mockito.mock(ColorUpdateLogger::class.java, STUB_ONLY), mSmartReplyConstants, mSmartReplyConstants, mSmartReplyController, mSmartReplyController, featureFlags, featureFlags, Mockito.mock(IStatusBarService::class.java), Mockito.mock(IStatusBarService::class.java, STUB_ONLY), Mockito.mock(UiEventLogger::class.java) Mockito.mock(UiEventLogger::class.java, STUB_ONLY) ) ) row.setAboveShelfChangedListener { aboveShelf: Boolean -> } row.setAboveShelfChangedListener { aboveShelf: Boolean -> } mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags) mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags) Loading @@ -381,6 +393,8 @@ class ExpandableNotificationRowBuilder( private val Notification.isConversationStyleNotification private val Notification.isConversationStyleNotification get() = extras.getBoolean(IS_CONVERSATION_FLAG, false) get() = extras.getBoolean(IS_CONVERSATION_FLAG, false) private val STUB_ONLY = Mockito.withSettings().stubOnly() fun markAsConversation(builder: Notification.Builder) { fun markAsConversation(builder: Notification.Builder) { builder.addExtras(bundleOf(IS_CONVERSATION_FLAG to true)) builder.addExtras(bundleOf(IS_CONVERSATION_FLAG to true)) } } Loading Loading
packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt +53 −39 Original line number Original line Diff line number Diff line Loading @@ -35,7 +35,9 @@ import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FakeFeatureFlagsClassic import com.android.systemui.flags.FakeFeatureFlagsClassic import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.flags.Flags import com.android.systemui.media.controls.util.MediaFeatureFlag import com.android.systemui.media.dialog.MediaOutputDialogManager import com.android.systemui.media.dialog.MediaOutputDialogManager import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.shared.system.ActivityManagerWrapper import com.android.systemui.shared.system.ActivityManagerWrapper import com.android.systemui.shared.system.DevicePolicyManagerWrapper import com.android.systemui.shared.system.DevicePolicyManagerWrapper Loading @@ -46,6 +48,7 @@ import com.android.systemui.statusbar.NotificationShadeWindowController import com.android.systemui.statusbar.RankingBuilder import com.android.systemui.statusbar.RankingBuilder import com.android.systemui.statusbar.SmartReplyController import com.android.systemui.statusbar.SmartReplyController import com.android.systemui.statusbar.notification.ColorUpdateLogger import com.android.systemui.statusbar.notification.ColorUpdateLogger import com.android.systemui.statusbar.notification.ConversationNotificationManager import com.android.systemui.statusbar.notification.ConversationNotificationProcessor import com.android.systemui.statusbar.notification.ConversationNotificationProcessor 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 Loading @@ -69,6 +72,7 @@ import com.android.systemui.statusbar.notification.row.NotificationRowContentBin import com.android.systemui.statusbar.notification.row.shared.NotificationRowContentBinderRefactor import com.android.systemui.statusbar.notification.row.shared.NotificationRowContentBinderRefactor import com.android.systemui.statusbar.notification.stack.NotificationChildrenContainerLogger import com.android.systemui.statusbar.notification.stack.NotificationChildrenContainerLogger import com.android.systemui.statusbar.phone.KeyguardBypassController import com.android.systemui.statusbar.phone.KeyguardBypassController import com.android.systemui.statusbar.phone.KeyguardDismissUtil import com.android.systemui.statusbar.policy.HeadsUpManager import com.android.systemui.statusbar.policy.HeadsUpManager import com.android.systemui.statusbar.policy.SmartActionInflaterImpl import com.android.systemui.statusbar.policy.SmartActionInflaterImpl import com.android.systemui.statusbar.policy.SmartReplyConstants import com.android.systemui.statusbar.policy.SmartReplyConstants Loading @@ -84,6 +88,7 @@ import com.android.systemui.util.time.FakeSystemClock import com.android.systemui.wmshell.BubblesManager import com.android.systemui.wmshell.BubblesManager import java.util.Optional import java.util.Optional import java.util.concurrent.CountDownLatch import java.util.concurrent.CountDownLatch import java.util.concurrent.Executor import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.TestScope import org.junit.Assert.assertTrue import org.junit.Assert.assertTrue Loading Loading @@ -128,19 +133,19 @@ class ExpandableNotificationRowBuilder( dependency.injectMockDependency(NotificationShadeWindowController::class.java) dependency.injectMockDependency(NotificationShadeWindowController::class.java) dependency.injectMockDependency(MediaOutputDialogManager::class.java) dependency.injectMockDependency(MediaOutputDialogManager::class.java) mMockLogger = Mockito.mock(ExpandableNotificationRowLogger::class.java) mMockLogger = Mockito.mock(ExpandableNotificationRowLogger::class.java, STUB_ONLY) mStatusBarStateController = Mockito.mock(StatusBarStateController::class.java) mStatusBarStateController = Mockito.mock(StatusBarStateController::class.java, STUB_ONLY) mKeyguardBypassController = Mockito.mock(KeyguardBypassController::class.java) mKeyguardBypassController = Mockito.mock(KeyguardBypassController::class.java, STUB_ONLY) mGroupMembershipManager = GroupMembershipManagerImpl() mGroupMembershipManager = GroupMembershipManagerImpl() mSmartReplyController = Mockito.mock(SmartReplyController::class.java) mSmartReplyController = Mockito.mock(SmartReplyController::class.java, STUB_ONLY) val dumpManager = DumpManager() val dumpManager = DumpManager() mGroupExpansionManager = GroupExpansionManagerImpl(dumpManager, mGroupMembershipManager) mGroupExpansionManager = GroupExpansionManagerImpl(dumpManager, mGroupMembershipManager) mHeadsUpManager = Mockito.mock(HeadsUpManager::class.java) mHeadsUpManager = Mockito.mock(HeadsUpManager::class.java, STUB_ONLY) mIconManager = mIconManager = IconManager( IconManager( Mockito.mock(CommonNotifCollection::class.java), Mockito.mock(CommonNotifCollection::class.java, STUB_ONLY), Mockito.mock(LauncherApps::class.java), Mockito.mock(LauncherApps::class.java, STUB_ONLY), IconBuilder(context), IconBuilder(context), mTestScope, mTestScope, mBgCoroutineContext, mBgCoroutineContext, Loading Loading @@ -173,7 +178,7 @@ class ExpandableNotificationRowBuilder( } } ) ) val remoteViewsFactories = getNotifRemoteViewsFactoryContainer(featureFlags) val remoteViewsFactories = getNotifRemoteViewsFactoryContainer(featureFlags) val remoteInputManager = Mockito.mock(NotificationRemoteInputManager::class.java) val remoteInputManager = Mockito.mock(NotificationRemoteInputManager::class.java, STUB_ONLY) val smartReplyStateInflater = val smartReplyStateInflater = SmartReplyStateInflaterImpl( SmartReplyStateInflaterImpl( constants = mSmartReplyConstants, constants = mSmartReplyConstants, Loading @@ -183,7 +188,8 @@ class ExpandableNotificationRowBuilder( smartRepliesInflater = smartRepliesInflater = SmartReplyInflaterImpl( SmartReplyInflaterImpl( constants = mSmartReplyConstants, constants = mSmartReplyConstants, keyguardDismissUtil = mock(), keyguardDismissUtil = Mockito.mock(KeyguardDismissUtil::class.java, STUB_ONLY), remoteInputManager = remoteInputManager, remoteInputManager = remoteInputManager, smartReplyController = mSmartReplyController, smartReplyController = mSmartReplyController, context = context context = context Loading @@ -191,7 +197,7 @@ class ExpandableNotificationRowBuilder( smartActionsInflater = smartActionsInflater = SmartActionInflaterImpl( SmartActionInflaterImpl( constants = mSmartReplyConstants, constants = mSmartReplyConstants, activityStarter = mock(), activityStarter = Mockito.mock(ActivityStarter::class.java, STUB_ONLY), smartReplyController = mSmartReplyController, smartReplyController = mSmartReplyController, headsUpManager = mHeadsUpManager headsUpManager = mHeadsUpManager ) ) Loading @@ -206,41 +212,42 @@ class ExpandableNotificationRowBuilder( } } val conversationProcessor = val conversationProcessor = ConversationNotificationProcessor( ConversationNotificationProcessor( mock(), Mockito.mock(LauncherApps::class.java, STUB_ONLY), mock(), Mockito.mock(ConversationNotificationManager::class.java, STUB_ONLY), ) ) mContentBinder = mContentBinder = if (NotificationRowContentBinderRefactor.isEnabled) if (NotificationRowContentBinderRefactor.isEnabled) NotificationRowContentBinderImpl( NotificationRowContentBinderImpl( mock(), Mockito.mock(NotifRemoteViewCache::class.java, STUB_ONLY), remoteInputManager, remoteInputManager, conversationProcessor, conversationProcessor, mock(), Mockito.mock(RichOngoingNotificationContentExtractor::class.java, STUB_ONLY), mock(), Mockito.mock(RichOngoingNotificationViewInflater::class.java, STUB_ONLY), mock(), Mockito.mock(Executor::class.java, STUB_ONLY), smartReplyStateInflater, smartReplyStateInflater, notifLayoutInflaterFactoryProvider, notifLayoutInflaterFactoryProvider, mock(), Mockito.mock(HeadsUpStyleProvider::class.java, STUB_ONLY), mock(), Mockito.mock(NotificationRowContentBinderLogger::class.java, STUB_ONLY), ) ) else else NotificationContentInflater( NotificationContentInflater( mock(), Mockito.mock(NotifRemoteViewCache::class.java, STUB_ONLY), remoteInputManager, remoteInputManager, conversationProcessor, conversationProcessor, mock(), Mockito.mock(MediaFeatureFlag::class.java, STUB_ONLY), mock(), Mockito.mock(Executor::class.java, STUB_ONLY), smartReplyStateInflater, smartReplyStateInflater, notifLayoutInflaterFactoryProvider, notifLayoutInflaterFactoryProvider, mock(), Mockito.mock(HeadsUpStyleProvider::class.java, STUB_ONLY), mock(), Mockito.mock(NotificationRowContentBinderLogger::class.java, STUB_ONLY), ) ) mContentBinder.setInflateSynchronously(true) mContentBinder.setInflateSynchronously(true) mBindStage = mBindStage = RowContentBindStage( RowContentBindStage( mContentBinder, mContentBinder, mock(), Mockito.mock(NotifInflationErrorManager::class.java, STUB_ONLY), mock(), Mockito.mock(RowContentBindStageLogger::class.java, STUB_ONLY), ) ) val collection = Mockito.mock(CommonNotifCollection::class.java) val collection = Mockito.mock(CommonNotifCollection::class.java) Loading @@ -248,7 +255,7 @@ class ExpandableNotificationRowBuilder( mBindPipeline = mBindPipeline = NotifBindPipeline( NotifBindPipeline( collection, collection, Mockito.mock(NotifBindPipelineLogger::class.java), Mockito.mock(NotifBindPipelineLogger::class.java, STUB_ONLY), NotificationEntryProcessorFactoryExecutorImpl(mMainExecutor), NotificationEntryProcessorFactoryExecutorImpl(mMainExecutor), ) ) mBindPipeline.setStage(mBindStage) mBindPipeline.setStage(mBindStage) Loading @@ -256,9 +263,11 @@ class ExpandableNotificationRowBuilder( val collectionListenerCaptor = ArgumentCaptor.forClass(NotifCollectionListener::class.java) val collectionListenerCaptor = ArgumentCaptor.forClass(NotifCollectionListener::class.java) Mockito.verify(collection).addCollectionListener(collectionListenerCaptor.capture()) Mockito.verify(collection).addCollectionListener(collectionListenerCaptor.capture()) mBindPipelineEntryListener = collectionListenerCaptor.value mBindPipelineEntryListener = collectionListenerCaptor.value mPeopleNotificationIdentifier = Mockito.mock(PeopleNotificationIdentifier::class.java) mPeopleNotificationIdentifier = Mockito.mock(PeopleNotificationIdentifier::class.java, STUB_ONLY) mOnUserInteractionCallback = Mockito.mock(OnUserInteractionCallback::class.java) mOnUserInteractionCallback = Mockito.mock(OnUserInteractionCallback::class.java) mDismissibilityProvider = Mockito.mock(NotificationDismissibilityProvider::class.java) mDismissibilityProvider = Mockito.mock(NotificationDismissibilityProvider::class.java, STUB_ONLY) val mFutureDismissalRunnable = Mockito.mock(Runnable::class.java) val mFutureDismissalRunnable = Mockito.mock(Runnable::class.java) whenever( whenever( mOnUserInteractionCallback.registerFutureDismissal( mOnUserInteractionCallback.registerFutureDismissal( Loading Loading @@ -320,7 +329,10 @@ class ExpandableNotificationRowBuilder( // set, but we do not want to override an existing value that is needed by a specific test. // set, but we do not want to override an existing value that is needed by a specific test. val rowInflaterTask = val rowInflaterTask = RowInflaterTask(mFakeSystemClock, Mockito.mock(RowInflaterTaskLogger::class.java)) RowInflaterTask( mFakeSystemClock, Mockito.mock(RowInflaterTaskLogger::class.java, STUB_ONLY) ) val row = rowInflaterTask.inflateSynchronously(context, null, entry) val row = rowInflaterTask.inflateSynchronously(context, null, entry) entry.row = row entry.row = row Loading @@ -329,7 +341,7 @@ class ExpandableNotificationRowBuilder( mBindPipeline.manageRow(entry, row) mBindPipeline.manageRow(entry, row) row.initialize( row.initialize( entry, entry, Mockito.mock(RemoteInputViewSubcomponent.Factory::class.java), Mockito.mock(RemoteInputViewSubcomponent.Factory::class.java, STUB_ONLY), APP_NAME, APP_NAME, entry.key, entry.key, mMockLogger, mMockLogger, Loading @@ -338,23 +350,23 @@ class ExpandableNotificationRowBuilder( mGroupExpansionManager, mGroupExpansionManager, mHeadsUpManager, mHeadsUpManager, mBindStage, mBindStage, Mockito.mock(OnExpandClickListener::class.java), Mockito.mock(OnExpandClickListener::class.java, STUB_ONLY), Mockito.mock(CoordinateOnClickListener::class.java), Mockito.mock(CoordinateOnClickListener::class.java, STUB_ONLY), FalsingManagerFake(), FalsingManagerFake(), mStatusBarStateController, mStatusBarStateController, mPeopleNotificationIdentifier, mPeopleNotificationIdentifier, mOnUserInteractionCallback, mOnUserInteractionCallback, Optional.of(Mockito.mock(BubblesManager::class.java)), Optional.of(Mockito.mock(BubblesManager::class.java, STUB_ONLY)), Mockito.mock(NotificationGutsManager::class.java), Mockito.mock(NotificationGutsManager::class.java, STUB_ONLY), mDismissibilityProvider, mDismissibilityProvider, Mockito.mock(MetricsLogger::class.java), Mockito.mock(MetricsLogger::class.java, STUB_ONLY), Mockito.mock(NotificationChildrenContainerLogger::class.java), Mockito.mock(NotificationChildrenContainerLogger::class.java, STUB_ONLY), Mockito.mock(ColorUpdateLogger::class.java), Mockito.mock(ColorUpdateLogger::class.java, STUB_ONLY), mSmartReplyConstants, mSmartReplyConstants, mSmartReplyController, mSmartReplyController, featureFlags, featureFlags, Mockito.mock(IStatusBarService::class.java), Mockito.mock(IStatusBarService::class.java, STUB_ONLY), Mockito.mock(UiEventLogger::class.java) Mockito.mock(UiEventLogger::class.java, STUB_ONLY) ) ) row.setAboveShelfChangedListener { aboveShelf: Boolean -> } row.setAboveShelfChangedListener { aboveShelf: Boolean -> } mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags) mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags) Loading @@ -381,6 +393,8 @@ class ExpandableNotificationRowBuilder( private val Notification.isConversationStyleNotification private val Notification.isConversationStyleNotification get() = extras.getBoolean(IS_CONVERSATION_FLAG, false) get() = extras.getBoolean(IS_CONVERSATION_FLAG, false) private val STUB_ONLY = Mockito.withSettings().stubOnly() fun markAsConversation(builder: Notification.Builder) { fun markAsConversation(builder: Notification.Builder) { builder.addExtras(bundleOf(IS_CONVERSATION_FLAG to true)) builder.addExtras(bundleOf(IS_CONVERSATION_FLAG to true)) } } Loading