Inline notif pipeline flag in NotificationsModule
This change is a no-op; the flag is now enabled-by-default, so all removed code paths here are effectively dead. Bug: 200269355 Test: atest SystemUITests Change-Id: Iff34ab616876046adeb7bf567c7dbdd8f4d481c4
This commit is contained in:
@@ -23,6 +23,7 @@ import android.service.notification.NotificationStats;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifCollection;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifCollection.CancellationReason;
|
||||
@@ -33,10 +34,13 @@ import com.android.systemui.statusbar.notification.collection.render.Notificatio
|
||||
import com.android.systemui.statusbar.notification.row.OnUserInteractionCallback;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Callback for when a user interacts with a {@see ExpandableNotificationRow}. Sends relevant
|
||||
* information about the interaction to the notification pipeline.
|
||||
*/
|
||||
@SysUISingleton
|
||||
public class OnUserInteractionCallbackImpl implements OnUserInteractionCallback {
|
||||
private final NotificationVisibilityProvider mVisibilityProvider;
|
||||
private final NotifCollection mNotifCollection;
|
||||
@@ -44,6 +48,7 @@ public class OnUserInteractionCallbackImpl implements OnUserInteractionCallback
|
||||
private final StatusBarStateController mStatusBarStateController;
|
||||
private final VisualStabilityCoordinator mVisualStabilityCoordinator;
|
||||
|
||||
@Inject
|
||||
public OnUserInteractionCallbackImpl(
|
||||
NotificationVisibilityProvider visibilityProvider,
|
||||
NotifCollection notifCollection,
|
||||
|
||||
@@ -1,100 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2010 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.statusbar.notification.collection.legacy;
|
||||
|
||||
import static com.android.systemui.statusbar.phone.CentralSurfaces.SPEW;
|
||||
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.android.internal.statusbar.NotificationVisibility;
|
||||
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.collection.render.NotifShadeEventSource;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* This is some logic extracted from the
|
||||
* {@link com.android.systemui.statusbar.phone.StatusBarNotificationPresenter}
|
||||
* into a class that implements a new-pipeline interface so that the new pipeline can implement it
|
||||
* correctly.
|
||||
*
|
||||
* Specifically, this is the logic which updates notifications when uiMode and screen properties
|
||||
* change, and which closes the shade when the last notification disappears.
|
||||
*/
|
||||
public class LegacyNotificationPresenterExtensions implements NotifShadeEventSource {
|
||||
private static final String TAG = "LegacyNotifPresenter";
|
||||
private final NotificationEntryManager mEntryManager;
|
||||
private boolean mEntryListenerAdded;
|
||||
private Runnable mShadeEmptiedCallback;
|
||||
private Runnable mNotifRemovedByUserCallback;
|
||||
|
||||
@Inject
|
||||
public LegacyNotificationPresenterExtensions(NotificationEntryManager entryManager) {
|
||||
mEntryManager = entryManager;
|
||||
}
|
||||
|
||||
private void ensureEntryListenerAdded() {
|
||||
if (mEntryListenerAdded) return;
|
||||
mEntryListenerAdded = true;
|
||||
mEntryManager.addNotificationEntryListener(new NotificationEntryListener() {
|
||||
@Override
|
||||
public void onEntryRemoved(
|
||||
@NotNull NotificationEntry entry,
|
||||
NotificationVisibility visibility,
|
||||
boolean removedByUser,
|
||||
int reason) {
|
||||
StatusBarNotification old = entry.getSbn();
|
||||
if (SPEW) {
|
||||
Log.d(TAG, "removeNotification key=" + entry.getKey()
|
||||
+ " old=" + old + " reason=" + reason);
|
||||
}
|
||||
|
||||
if (old != null && !mEntryManager.hasActiveNotifications()) {
|
||||
if (mShadeEmptiedCallback != null) mShadeEmptiedCallback.run();
|
||||
}
|
||||
if (removedByUser) {
|
||||
if (mNotifRemovedByUserCallback != null) mNotifRemovedByUserCallback.run();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNotifRemovedByUserCallback(@NonNull Runnable callback) {
|
||||
if (mNotifRemovedByUserCallback != null) {
|
||||
throw new IllegalStateException("mNotifRemovedByUserCallback already set");
|
||||
}
|
||||
mNotifRemovedByUserCallback = callback;
|
||||
ensureEntryListenerAdded();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShadeEmptiedCallback(@NonNull Runnable callback) {
|
||||
if (mShadeEmptiedCallback != null) {
|
||||
throw new IllegalStateException("mShadeEmptiedCallback already set");
|
||||
}
|
||||
mShadeEmptiedCallback = callback;
|
||||
ensureEntryListenerAdded();
|
||||
}
|
||||
}
|
||||
@@ -1,128 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.statusbar.notification.collection.legacy;
|
||||
|
||||
import static android.service.notification.NotificationStats.DISMISS_SENTIMENT_NEUTRAL;
|
||||
|
||||
import android.service.notification.NotificationListenerService;
|
||||
import android.service.notification.NotificationStats;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifCollection.CancellationReason;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
import com.android.systemui.statusbar.notification.collection.notifcollection.DismissedByUserStats;
|
||||
import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager;
|
||||
import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider;
|
||||
import com.android.systemui.statusbar.notification.row.OnUserInteractionCallback;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||
|
||||
/**
|
||||
* Callback for when a user interacts with a {@see ExpandableNotificationRow}.
|
||||
*/
|
||||
public class OnUserInteractionCallbackImplLegacy implements OnUserInteractionCallback {
|
||||
private final NotificationEntryManager mNotificationEntryManager;
|
||||
private final NotificationVisibilityProvider mVisibilityProvider;
|
||||
private final HeadsUpManager mHeadsUpManager;
|
||||
private final StatusBarStateController mStatusBarStateController;
|
||||
private final VisualStabilityManager mVisualStabilityManager;
|
||||
private final GroupMembershipManager mGroupMembershipManager;
|
||||
|
||||
public OnUserInteractionCallbackImplLegacy(
|
||||
NotificationEntryManager notificationEntryManager,
|
||||
NotificationVisibilityProvider visibilityProvider,
|
||||
HeadsUpManager headsUpManager,
|
||||
StatusBarStateController statusBarStateController,
|
||||
VisualStabilityManager visualStabilityManager,
|
||||
GroupMembershipManager groupMembershipManager
|
||||
) {
|
||||
mNotificationEntryManager = notificationEntryManager;
|
||||
mVisibilityProvider = visibilityProvider;
|
||||
mHeadsUpManager = headsUpManager;
|
||||
mStatusBarStateController = statusBarStateController;
|
||||
mVisualStabilityManager = visualStabilityManager;
|
||||
mGroupMembershipManager = groupMembershipManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback triggered when a user:
|
||||
* 1. Manually dismisses a notification {@see ExpandableNotificationRow}.
|
||||
* 2. Clicks on a notification with flag {@link android.app.Notification#FLAG_AUTO_CANCEL}.
|
||||
* {@see StatusBarNotificationActivityStarter}
|
||||
*
|
||||
* @param groupSummaryToDismiss the group summary that should be dismissed
|
||||
* along with this dismissal. If null, does not additionally
|
||||
* dismiss any notifications.
|
||||
*/
|
||||
private void onDismiss(
|
||||
NotificationEntry entry,
|
||||
@NotificationListenerService.NotificationCancelReason int cancellationReason,
|
||||
@Nullable NotificationEntry groupSummaryToDismiss
|
||||
) {
|
||||
int dismissalSurface = NotificationStats.DISMISSAL_SHADE;
|
||||
if (mHeadsUpManager.isAlerting(entry.getKey())) {
|
||||
dismissalSurface = NotificationStats.DISMISSAL_PEEK;
|
||||
} else if (mStatusBarStateController.isDozing()) {
|
||||
dismissalSurface = NotificationStats.DISMISSAL_AOD;
|
||||
}
|
||||
|
||||
if (groupSummaryToDismiss != null) {
|
||||
onDismiss(groupSummaryToDismiss, cancellationReason, null);
|
||||
}
|
||||
|
||||
mNotificationEntryManager.performRemoveNotification(
|
||||
entry.getSbn(),
|
||||
new DismissedByUserStats(
|
||||
dismissalSurface,
|
||||
DISMISS_SENTIMENT_NEUTRAL,
|
||||
mVisibilityProvider.obtain(entry, true)),
|
||||
cancellationReason
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onImportanceChanged(NotificationEntry entry) {
|
||||
mVisualStabilityManager.temporarilyAllowReordering();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param entry that is being dismissed
|
||||
* @return the group summary to dismiss along with this entry if this is the last entry in
|
||||
* the group. Else, returns null.
|
||||
*/
|
||||
@Nullable
|
||||
private NotificationEntry getGroupSummaryToDismiss(NotificationEntry entry) {
|
||||
if (mGroupMembershipManager.isOnlyChildInGroup(entry)) {
|
||||
NotificationEntry groupSummary = mGroupMembershipManager.getLogicalGroupSummary(entry);
|
||||
return groupSummary.isDismissable() ? groupSummary : null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
public Runnable registerFutureDismissal(@NonNull NotificationEntry entry,
|
||||
@CancellationReason int cancellationReason) {
|
||||
NotificationEntry groupSummaryToDismiss = getGroupSummaryToDismiss(entry);
|
||||
return () -> onDismiss(entry, cancellationReason, groupSummaryToDismiss);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package com.android.systemui.statusbar.notification.collection.provider
|
||||
|
||||
import com.android.internal.statusbar.NotificationVisibility
|
||||
import com.android.systemui.dagger.SysUISingleton
|
||||
import com.android.systemui.statusbar.notification.collection.NotifLiveDataStore
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry
|
||||
import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection
|
||||
@@ -25,6 +26,7 @@ import com.android.systemui.statusbar.notification.logging.NotificationLogger
|
||||
import javax.inject.Inject
|
||||
|
||||
/** pipeline-agnostic implementation for getting [NotificationVisibility]. */
|
||||
@SysUISingleton
|
||||
class NotificationVisibilityProviderImpl @Inject constructor(
|
||||
private val notifDataStore: NotifLiveDataStore,
|
||||
private val notifCollection: CommonNotifCollection
|
||||
@@ -46,4 +48,4 @@ class NotificationVisibilityProviderImpl @Inject constructor(
|
||||
NotificationLogger.getNotificationLocation(notifCollection.getEntry(key))
|
||||
|
||||
private fun getCount() = notifDataStore.activeNotifCount.value
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.systemui.statusbar.notification.collection.render;
|
||||
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.statusbar.notification.collection.GroupEntry;
|
||||
import com.android.systemui.statusbar.notification.collection.ListEntry;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
|
||||
@@ -28,10 +29,13 @@ import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Provides grouping information for notification entries including information about a group's
|
||||
* expanded state.
|
||||
*/
|
||||
@SysUISingleton
|
||||
public class GroupExpansionManagerImpl implements GroupExpansionManager, Coordinator {
|
||||
private final GroupMembershipManager mGroupMembershipManager;
|
||||
private final Set<OnGroupExpansionChangeListener> mOnGroupChangeListeners = new HashSet<>();
|
||||
@@ -39,6 +43,7 @@ public class GroupExpansionManagerImpl implements GroupExpansionManager, Coordin
|
||||
// Set of summary keys whose groups are expanded
|
||||
private final Set<NotificationEntry> mExpandedGroups = new HashSet<>();
|
||||
|
||||
@Inject
|
||||
public GroupExpansionManagerImpl(GroupMembershipManager groupMembershipManager) {
|
||||
mGroupMembershipManager = groupMembershipManager;
|
||||
}
|
||||
|
||||
@@ -41,23 +41,19 @@ import com.android.systemui.statusbar.notification.AssistantFeedbackController;
|
||||
import com.android.systemui.statusbar.notification.NotifPipelineFlags;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManagerLogger;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifCollection;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifInflaterImpl;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifLiveDataStore;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifLiveDataStoreImpl;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifPipelineChoreographerModule;
|
||||
import com.android.systemui.statusbar.notification.collection.coordinator.ShadeEventCoordinator;
|
||||
import com.android.systemui.statusbar.notification.collection.coordinator.VisualStabilityCoordinator;
|
||||
import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorsModule;
|
||||
import com.android.systemui.statusbar.notification.collection.inflation.BindEventManager;
|
||||
import com.android.systemui.statusbar.notification.collection.inflation.BindEventManagerImpl;
|
||||
import com.android.systemui.statusbar.notification.collection.inflation.NotifInflater;
|
||||
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder;
|
||||
import com.android.systemui.statusbar.notification.collection.inflation.OnUserInteractionCallbackImpl;
|
||||
import com.android.systemui.statusbar.notification.collection.legacy.LegacyNotificationPresenterExtensions;
|
||||
import com.android.systemui.statusbar.notification.collection.legacy.NotificationGroupManagerLegacy;
|
||||
import com.android.systemui.statusbar.notification.collection.legacy.OnUserInteractionCallbackImplLegacy;
|
||||
import com.android.systemui.statusbar.notification.collection.legacy.VisualStabilityManager;
|
||||
import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
|
||||
import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider;
|
||||
@@ -90,7 +86,6 @@ import com.android.systemui.statusbar.phone.CentralSurfaces;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.phone.NotifPanelEventsModule;
|
||||
import com.android.systemui.statusbar.phone.ShadeController;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||
import com.android.systemui.util.leak.LeakDetector;
|
||||
import com.android.systemui.wmshell.BubblesManager;
|
||||
|
||||
@@ -116,12 +111,10 @@ import dagger.Provides;
|
||||
})
|
||||
public interface NotificationsModule {
|
||||
@Binds
|
||||
StackScrollAlgorithm.SectionProvider bindSectionProvider(
|
||||
NotificationSectionsManager impl);
|
||||
StackScrollAlgorithm.SectionProvider bindSectionProvider(NotificationSectionsManager impl);
|
||||
|
||||
@Binds
|
||||
StackScrollAlgorithm.BypassController bindBypassController(
|
||||
KeyguardBypassController impl);
|
||||
StackScrollAlgorithm.BypassController bindBypassController(KeyguardBypassController impl);
|
||||
|
||||
/** Provides an instance of {@link NotificationEntryManager} */
|
||||
@SysUISingleton
|
||||
@@ -194,12 +187,8 @@ public interface NotificationsModule {
|
||||
}
|
||||
|
||||
/** Provides an instance of {@link NotifGutsViewManager} */
|
||||
@SysUISingleton
|
||||
@Provides
|
||||
static NotifGutsViewManager provideNotifGutsViewManager(
|
||||
NotificationGutsManager notificationGutsManager) {
|
||||
return notificationGutsManager;
|
||||
}
|
||||
@Binds
|
||||
NotifGutsViewManager bindNotifGutsViewManager(NotificationGutsManager notificationGutsManager);
|
||||
|
||||
/** Provides an instance of {@link VisualStabilityManager} */
|
||||
@SysUISingleton
|
||||
@@ -253,25 +242,13 @@ public interface NotificationsModule {
|
||||
/** Provides an instance of {@link GroupMembershipManager} */
|
||||
@SysUISingleton
|
||||
@Provides
|
||||
static GroupMembershipManager provideGroupMembershipManager(
|
||||
NotifPipelineFlags notifPipelineFlags,
|
||||
Lazy<NotificationGroupManagerLegacy> groupManagerLegacy) {
|
||||
return notifPipelineFlags.isNewPipelineEnabled()
|
||||
? new GroupMembershipManagerImpl()
|
||||
: groupManagerLegacy.get();
|
||||
static GroupMembershipManager provideGroupMembershipManager() {
|
||||
return new GroupMembershipManagerImpl();
|
||||
}
|
||||
|
||||
/** Provides an instance of {@link GroupExpansionManager} */
|
||||
@SysUISingleton
|
||||
@Provides
|
||||
static GroupExpansionManager provideGroupExpansionManager(
|
||||
NotifPipelineFlags notifPipelineFlags,
|
||||
Lazy<GroupMembershipManager> groupMembershipManager,
|
||||
Lazy<NotificationGroupManagerLegacy> groupManagerLegacy) {
|
||||
return notifPipelineFlags.isNewPipelineEnabled()
|
||||
? new GroupExpansionManagerImpl(groupMembershipManager.get())
|
||||
: groupManagerLegacy.get();
|
||||
}
|
||||
@Binds
|
||||
GroupExpansionManager provideGroupExpansionManager(GroupExpansionManagerImpl impl);
|
||||
|
||||
/** Initializes the notification data pipeline (can be disabled via config). */
|
||||
@SysUISingleton
|
||||
@@ -290,69 +267,28 @@ public interface NotificationsModule {
|
||||
/**
|
||||
* Provide the active notification collection managing the notifications to render.
|
||||
*/
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
static CommonNotifCollection provideCommonNotifCollection(
|
||||
NotifPipelineFlags notifPipelineFlags,
|
||||
Lazy<NotifPipeline> pipeline,
|
||||
NotificationEntryManager entryManager) {
|
||||
return notifPipelineFlags.isNewPipelineEnabled()
|
||||
? pipeline.get() : entryManager;
|
||||
}
|
||||
@Binds
|
||||
CommonNotifCollection provideCommonNotifCollection(NotifPipeline pipeline);
|
||||
|
||||
/**
|
||||
* Provide the object which can be used to obtain NotificationVisibility objects.
|
||||
*/
|
||||
@Binds
|
||||
@SysUISingleton
|
||||
NotificationVisibilityProvider provideNotificationVisibilityProvider(
|
||||
NotificationVisibilityProviderImpl newProvider);
|
||||
NotificationVisibilityProviderImpl impl);
|
||||
|
||||
/**
|
||||
* Provide the active implementation for presenting notifications.
|
||||
*/
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
static NotifShadeEventSource provideNotifShadeEventSource(
|
||||
NotifPipelineFlags notifPipelineFlags,
|
||||
Lazy<ShadeEventCoordinator> shadeEventCoordinatorLazy,
|
||||
Lazy<LegacyNotificationPresenterExtensions> legacyNotificationPresenterExtensionsLazy) {
|
||||
return notifPipelineFlags.isNewPipelineEnabled()
|
||||
? shadeEventCoordinatorLazy.get()
|
||||
: legacyNotificationPresenterExtensionsLazy.get();
|
||||
}
|
||||
@Binds
|
||||
NotifShadeEventSource provideNotifShadeEventSource(ShadeEventCoordinator shadeEventCoordinator);
|
||||
|
||||
/**
|
||||
* Provide a dismissal callback that's triggered when a user manually dismissed a notification
|
||||
* from the notification shade or it gets auto-cancelled by click.
|
||||
*/
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
static OnUserInteractionCallback provideOnUserInteractionCallback(
|
||||
NotifPipelineFlags notifPipelineFlags,
|
||||
HeadsUpManager headsUpManager,
|
||||
StatusBarStateController statusBarStateController,
|
||||
Lazy<NotifCollection> notifCollection,
|
||||
Lazy<NotificationVisibilityProvider> visibilityProvider,
|
||||
Lazy<VisualStabilityCoordinator> visualStabilityCoordinator,
|
||||
NotificationEntryManager entryManager,
|
||||
VisualStabilityManager visualStabilityManager,
|
||||
Lazy<GroupMembershipManager> groupMembershipManagerLazy) {
|
||||
return notifPipelineFlags.isNewPipelineEnabled()
|
||||
? new OnUserInteractionCallbackImpl(
|
||||
visibilityProvider.get(),
|
||||
notifCollection.get(),
|
||||
headsUpManager,
|
||||
statusBarStateController,
|
||||
visualStabilityCoordinator.get())
|
||||
: new OnUserInteractionCallbackImplLegacy(
|
||||
entryManager,
|
||||
visibilityProvider.get(),
|
||||
headsUpManager,
|
||||
statusBarStateController,
|
||||
visualStabilityManager,
|
||||
groupMembershipManagerLazy.get());
|
||||
}
|
||||
@Binds
|
||||
OnUserInteractionCallback provideOnUserInteractionCallback(OnUserInteractionCallbackImpl impl);
|
||||
|
||||
/** */
|
||||
@Binds
|
||||
|
||||
Reference in New Issue
Block a user