Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java +30 −0 Original line number Original line Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.statusbar.notification; import static android.service.notification.NotificationListenerService.REASON_CANCEL; import static android.service.notification.NotificationListenerService.REASON_CANCEL; import static android.service.notification.NotificationListenerService.REASON_ERROR; import static android.service.notification.NotificationListenerService.REASON_ERROR; import static com.android.systemui.statusbar.notification.collection.NotifCollection.REASON_UNKNOWN; import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationCallback; import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationCallback; import android.annotation.NonNull; import android.annotation.NonNull; Loading @@ -44,6 +45,8 @@ import com.android.systemui.statusbar.NotificationUiAdjustment; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.NotificationRankingManager; import com.android.systemui.statusbar.notification.collection.NotificationRankingManager; import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder; import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener; import com.android.systemui.statusbar.notification.logging.NotifEvent; import com.android.systemui.statusbar.notification.logging.NotifEvent; import com.android.systemui.statusbar.notification.logging.NotifLog; import com.android.systemui.statusbar.notification.logging.NotifLog; import com.android.systemui.statusbar.notification.logging.NotificationLogger; import com.android.systemui.statusbar.notification.logging.NotificationLogger; Loading Loading @@ -96,6 +99,7 @@ import dagger.Lazy; */ */ @Singleton @Singleton public class NotificationEntryManager implements public class NotificationEntryManager implements CommonNotifCollection, Dumpable, Dumpable, InflationCallback, InflationCallback, VisualStabilityManager.Callback { VisualStabilityManager.Callback { Loading Loading @@ -130,6 +134,7 @@ public class NotificationEntryManager implements private final Lazy<NotificationRowBinder> mNotificationRowBinderLazy; private final Lazy<NotificationRowBinder> mNotificationRowBinderLazy; private final Lazy<NotificationRemoteInputManager> mRemoteInputManagerLazy; private final Lazy<NotificationRemoteInputManager> mRemoteInputManagerLazy; private final LeakDetector mLeakDetector; private final LeakDetector mLeakDetector; private final List<NotifCollectionListener> mNotifCollectionListeners = new ArrayList<>(); private final KeyguardEnvironment mKeyguardEnvironment; private final KeyguardEnvironment mKeyguardEnvironment; private final NotificationGroupManager mGroupManager; private final NotificationGroupManager mGroupManager; Loading Loading @@ -488,6 +493,13 @@ public class NotificationEntryManager implements for (NotificationEntryListener listener : mNotificationEntryListeners) { for (NotificationEntryListener listener : mNotificationEntryListeners) { listener.onEntryRemoved(entry, visibility, removedByUser); listener.onEntryRemoved(entry, visibility, removedByUser); } } for (NotifCollectionListener listener : mNotifCollectionListeners) { // NEM doesn't have a good knowledge of reasons so defaulting to unknown. listener.onEntryRemoved(entry, REASON_UNKNOWN); } for (NotifCollectionListener listener : mNotifCollectionListeners) { listener.onEntryCleanUp(entry); } } } } } } } Loading Loading @@ -553,6 +565,10 @@ public class NotificationEntryManager implements mLeakDetector.trackInstance(entry); mLeakDetector.trackInstance(entry); for (NotifCollectionListener listener : mNotifCollectionListeners) { listener.onEntryInit(entry); } // Construct the expanded view. // Construct the expanded view. if (!mFeatureFlags.isNewNotifPipelineRenderingEnabled()) { if (!mFeatureFlags.isNewNotifPipelineRenderingEnabled()) { mNotificationRowBinderLazy.get() mNotificationRowBinderLazy.get() Loading @@ -566,6 +582,9 @@ public class NotificationEntryManager implements for (NotificationEntryListener listener : mNotificationEntryListeners) { for (NotificationEntryListener listener : mNotificationEntryListeners) { listener.onPendingEntryAdded(entry); listener.onPendingEntryAdded(entry); } } for (NotifCollectionListener listener : mNotifCollectionListeners) { listener.onEntryAdded(entry); } } } public void addNotification(StatusBarNotification notification, RankingMap ranking) { public void addNotification(StatusBarNotification notification, RankingMap ranking) { Loading Loading @@ -600,6 +619,9 @@ public class NotificationEntryManager implements for (NotificationEntryListener listener : mNotificationEntryListeners) { for (NotificationEntryListener listener : mNotificationEntryListeners) { listener.onPreEntryUpdated(entry); listener.onPreEntryUpdated(entry); } } for (NotifCollectionListener listener : mNotifCollectionListeners) { listener.onEntryUpdated(entry); } if (!mFeatureFlags.isNewNotifPipelineRenderingEnabled()) { if (!mFeatureFlags.isNewNotifPipelineRenderingEnabled()) { mNotificationRowBinderLazy.get() mNotificationRowBinderLazy.get() Loading Loading @@ -674,6 +696,9 @@ public class NotificationEntryManager implements for (NotificationEntryListener listener : mNotificationEntryListeners) { for (NotificationEntryListener listener : mNotificationEntryListeners) { listener.onNotificationRankingUpdated(rankingMap); listener.onNotificationRankingUpdated(rankingMap); } } for (NotifCollectionListener listener : mNotifCollectionListeners) { listener.onRankingUpdate(rankingMap); } } } private void updateRankingOfPendingNotifications(@Nullable RankingMap rankingMap) { private void updateRankingOfPendingNotifications(@Nullable RankingMap rankingMap) { Loading Loading @@ -862,6 +887,11 @@ public class NotificationEntryManager implements return mReadOnlyNotifications.size() != 0; return mReadOnlyNotifications.size() != 0; } } @Override public void addCollectionListener(NotifCollectionListener listener) { mNotifCollectionListeners.add(listener); } /* /* * End annexation * End annexation * ----- * ----- Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifPipeline.java +3 −5 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ import com.android.systemui.statusbar.notification.collection.listbuilder.plugga import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSection; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSection; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender; Loading Loading @@ -66,7 +67,7 @@ import javax.inject.Singleton; * 9. The list is handed off to the view layer to be rendered * 9. The list is handed off to the view layer to be rendered */ */ @Singleton @Singleton public class NotifPipeline { public class NotifPipeline implements CommonNotifCollection { private final NotifCollection mNotifCollection; private final NotifCollection mNotifCollection; private final ShadeListBuilder mShadeListBuilder; private final ShadeListBuilder mShadeListBuilder; Loading @@ -89,10 +90,7 @@ public class NotifPipeline { return mNotifCollection.getActiveNotifs(); return mNotifCollection.getActiveNotifs(); } } /** @Override * Registers a listener to be informed when there is a notification entry event such as an add, * update, or remove. */ public void addCollectionListener(NotifCollectionListener listener) { public void addCollectionListener(NotifCollectionListener listener) { mNotifCollection.addCollectionListener(listener); mNotifCollection.addCollectionListener(listener); } } Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/CommonNotifCollection.java 0 → 100644 +37 −0 Original line number Original line Diff line number Diff line /* * 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.notifcollection; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.collection.NotifPipeline; import com.android.systemui.statusbar.notification.collection.NotificationEntry; /** * A notification collection that manages the list of {@link NotificationEntry}s that will be * rendered. * * TODO: (b/145659174) Once we fully switch off {@link NotificationEntryManager} to * {@link NotifPipeline}, we probably won't need this, but having it for now makes it easy to * switch between the two. */ public interface CommonNotifCollection { /** * Registers a listener to be informed when notifications are created, added, updated, removed, * or deleted. */ void addCollectionListener(NotifCollectionListener listener); } packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,10 @@ package com.android.systemui.statusbar.notification.dagger; import android.content.Context; import android.content.Context; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.statusbar.FeatureFlags; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.collection.NotifPipeline; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.init.NotificationsController; import com.android.systemui.statusbar.notification.init.NotificationsController; import com.android.systemui.statusbar.notification.init.NotificationsControllerImpl; import com.android.systemui.statusbar.notification.init.NotificationsControllerImpl; import com.android.systemui.statusbar.notification.init.NotificationsControllerStub; import com.android.systemui.statusbar.notification.init.NotificationsControllerStub; Loading @@ -45,4 +49,16 @@ public class NotificationsModule { return stubController.get(); return stubController.get(); } } } } /** * Provide the active notification collection managing the notifications to render. */ @Provides @Singleton public CommonNotifCollection provideCommonNotifCollection( FeatureFlags featureFlags, Lazy<NotifPipeline> pipeline, NotificationEntryManager entryManager) { return featureFlags.isNewNotifPipelineRenderingEnabled() ? pipeline.get() : entryManager; } } } packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImpl.java +7 −11 Original line number Original line Diff line number Diff line Loading @@ -22,10 +22,9 @@ import android.widget.RemoteViews; import androidx.annotation.Nullable; import androidx.annotation.Nullable; 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.NotificationEntry; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener; import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag; import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag; import java.util.Map; import java.util.Map; Loading @@ -40,8 +39,8 @@ public class NotifRemoteViewCacheImpl implements NotifRemoteViewCache { new ArrayMap<>(); new ArrayMap<>(); @Inject @Inject NotifRemoteViewCacheImpl(NotificationEntryManager entryManager) { NotifRemoteViewCacheImpl(CommonNotifCollection collection) { entryManager.addNotificationEntryListener(mEntryListener); collection.addCollectionListener(mCollectionListener); } } @Override @Override Loading Loading @@ -93,17 +92,14 @@ public class NotifRemoteViewCacheImpl implements NotifRemoteViewCache { contentViews.clear(); contentViews.clear(); } } private final NotificationEntryListener mEntryListener = new NotificationEntryListener() { private final NotifCollectionListener mCollectionListener = new NotifCollectionListener() { @Override @Override public void onPendingEntryAdded(NotificationEntry entry) { public void onEntryInit(NotificationEntry entry) { mNotifCachedContentViews.put(entry, new SparseArray<>()); mNotifCachedContentViews.put(entry, new SparseArray<>()); } } @Override @Override public void onEntryRemoved( public void onEntryCleanUp(NotificationEntry entry) { NotificationEntry entry, @Nullable NotificationVisibility visibility, boolean removedByUser) { mNotifCachedContentViews.remove(entry); mNotifCachedContentViews.remove(entry); } } }; }; Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java +30 −0 Original line number Original line Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.statusbar.notification; import static android.service.notification.NotificationListenerService.REASON_CANCEL; import static android.service.notification.NotificationListenerService.REASON_CANCEL; import static android.service.notification.NotificationListenerService.REASON_ERROR; import static android.service.notification.NotificationListenerService.REASON_ERROR; import static com.android.systemui.statusbar.notification.collection.NotifCollection.REASON_UNKNOWN; import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationCallback; import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationCallback; import android.annotation.NonNull; import android.annotation.NonNull; Loading @@ -44,6 +45,8 @@ import com.android.systemui.statusbar.NotificationUiAdjustment; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.NotificationRankingManager; import com.android.systemui.statusbar.notification.collection.NotificationRankingManager; import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder; import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener; import com.android.systemui.statusbar.notification.logging.NotifEvent; import com.android.systemui.statusbar.notification.logging.NotifEvent; import com.android.systemui.statusbar.notification.logging.NotifLog; import com.android.systemui.statusbar.notification.logging.NotifLog; import com.android.systemui.statusbar.notification.logging.NotificationLogger; import com.android.systemui.statusbar.notification.logging.NotificationLogger; Loading Loading @@ -96,6 +99,7 @@ import dagger.Lazy; */ */ @Singleton @Singleton public class NotificationEntryManager implements public class NotificationEntryManager implements CommonNotifCollection, Dumpable, Dumpable, InflationCallback, InflationCallback, VisualStabilityManager.Callback { VisualStabilityManager.Callback { Loading Loading @@ -130,6 +134,7 @@ public class NotificationEntryManager implements private final Lazy<NotificationRowBinder> mNotificationRowBinderLazy; private final Lazy<NotificationRowBinder> mNotificationRowBinderLazy; private final Lazy<NotificationRemoteInputManager> mRemoteInputManagerLazy; private final Lazy<NotificationRemoteInputManager> mRemoteInputManagerLazy; private final LeakDetector mLeakDetector; private final LeakDetector mLeakDetector; private final List<NotifCollectionListener> mNotifCollectionListeners = new ArrayList<>(); private final KeyguardEnvironment mKeyguardEnvironment; private final KeyguardEnvironment mKeyguardEnvironment; private final NotificationGroupManager mGroupManager; private final NotificationGroupManager mGroupManager; Loading Loading @@ -488,6 +493,13 @@ public class NotificationEntryManager implements for (NotificationEntryListener listener : mNotificationEntryListeners) { for (NotificationEntryListener listener : mNotificationEntryListeners) { listener.onEntryRemoved(entry, visibility, removedByUser); listener.onEntryRemoved(entry, visibility, removedByUser); } } for (NotifCollectionListener listener : mNotifCollectionListeners) { // NEM doesn't have a good knowledge of reasons so defaulting to unknown. listener.onEntryRemoved(entry, REASON_UNKNOWN); } for (NotifCollectionListener listener : mNotifCollectionListeners) { listener.onEntryCleanUp(entry); } } } } } } } Loading Loading @@ -553,6 +565,10 @@ public class NotificationEntryManager implements mLeakDetector.trackInstance(entry); mLeakDetector.trackInstance(entry); for (NotifCollectionListener listener : mNotifCollectionListeners) { listener.onEntryInit(entry); } // Construct the expanded view. // Construct the expanded view. if (!mFeatureFlags.isNewNotifPipelineRenderingEnabled()) { if (!mFeatureFlags.isNewNotifPipelineRenderingEnabled()) { mNotificationRowBinderLazy.get() mNotificationRowBinderLazy.get() Loading @@ -566,6 +582,9 @@ public class NotificationEntryManager implements for (NotificationEntryListener listener : mNotificationEntryListeners) { for (NotificationEntryListener listener : mNotificationEntryListeners) { listener.onPendingEntryAdded(entry); listener.onPendingEntryAdded(entry); } } for (NotifCollectionListener listener : mNotifCollectionListeners) { listener.onEntryAdded(entry); } } } public void addNotification(StatusBarNotification notification, RankingMap ranking) { public void addNotification(StatusBarNotification notification, RankingMap ranking) { Loading Loading @@ -600,6 +619,9 @@ public class NotificationEntryManager implements for (NotificationEntryListener listener : mNotificationEntryListeners) { for (NotificationEntryListener listener : mNotificationEntryListeners) { listener.onPreEntryUpdated(entry); listener.onPreEntryUpdated(entry); } } for (NotifCollectionListener listener : mNotifCollectionListeners) { listener.onEntryUpdated(entry); } if (!mFeatureFlags.isNewNotifPipelineRenderingEnabled()) { if (!mFeatureFlags.isNewNotifPipelineRenderingEnabled()) { mNotificationRowBinderLazy.get() mNotificationRowBinderLazy.get() Loading Loading @@ -674,6 +696,9 @@ public class NotificationEntryManager implements for (NotificationEntryListener listener : mNotificationEntryListeners) { for (NotificationEntryListener listener : mNotificationEntryListeners) { listener.onNotificationRankingUpdated(rankingMap); listener.onNotificationRankingUpdated(rankingMap); } } for (NotifCollectionListener listener : mNotifCollectionListeners) { listener.onRankingUpdate(rankingMap); } } } private void updateRankingOfPendingNotifications(@Nullable RankingMap rankingMap) { private void updateRankingOfPendingNotifications(@Nullable RankingMap rankingMap) { Loading Loading @@ -862,6 +887,11 @@ public class NotificationEntryManager implements return mReadOnlyNotifications.size() != 0; return mReadOnlyNotifications.size() != 0; } } @Override public void addCollectionListener(NotifCollectionListener listener) { mNotifCollectionListeners.add(listener); } /* /* * End annexation * End annexation * ----- * ----- Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifPipeline.java +3 −5 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ import com.android.systemui.statusbar.notification.collection.listbuilder.plugga import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSection; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSection; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender; Loading Loading @@ -66,7 +67,7 @@ import javax.inject.Singleton; * 9. The list is handed off to the view layer to be rendered * 9. The list is handed off to the view layer to be rendered */ */ @Singleton @Singleton public class NotifPipeline { public class NotifPipeline implements CommonNotifCollection { private final NotifCollection mNotifCollection; private final NotifCollection mNotifCollection; private final ShadeListBuilder mShadeListBuilder; private final ShadeListBuilder mShadeListBuilder; Loading @@ -89,10 +90,7 @@ public class NotifPipeline { return mNotifCollection.getActiveNotifs(); return mNotifCollection.getActiveNotifs(); } } /** @Override * Registers a listener to be informed when there is a notification entry event such as an add, * update, or remove. */ public void addCollectionListener(NotifCollectionListener listener) { public void addCollectionListener(NotifCollectionListener listener) { mNotifCollection.addCollectionListener(listener); mNotifCollection.addCollectionListener(listener); } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/CommonNotifCollection.java 0 → 100644 +37 −0 Original line number Original line Diff line number Diff line /* * 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.notifcollection; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.collection.NotifPipeline; import com.android.systemui.statusbar.notification.collection.NotificationEntry; /** * A notification collection that manages the list of {@link NotificationEntry}s that will be * rendered. * * TODO: (b/145659174) Once we fully switch off {@link NotificationEntryManager} to * {@link NotifPipeline}, we probably won't need this, but having it for now makes it easy to * switch between the two. */ public interface CommonNotifCollection { /** * Registers a listener to be informed when notifications are created, added, updated, removed, * or deleted. */ void addCollectionListener(NotifCollectionListener listener); }
packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,10 @@ package com.android.systemui.statusbar.notification.dagger; import android.content.Context; import android.content.Context; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.statusbar.FeatureFlags; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.collection.NotifPipeline; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.init.NotificationsController; import com.android.systemui.statusbar.notification.init.NotificationsController; import com.android.systemui.statusbar.notification.init.NotificationsControllerImpl; import com.android.systemui.statusbar.notification.init.NotificationsControllerImpl; import com.android.systemui.statusbar.notification.init.NotificationsControllerStub; import com.android.systemui.statusbar.notification.init.NotificationsControllerStub; Loading @@ -45,4 +49,16 @@ public class NotificationsModule { return stubController.get(); return stubController.get(); } } } } /** * Provide the active notification collection managing the notifications to render. */ @Provides @Singleton public CommonNotifCollection provideCommonNotifCollection( FeatureFlags featureFlags, Lazy<NotifPipeline> pipeline, NotificationEntryManager entryManager) { return featureFlags.isNewNotifPipelineRenderingEnabled() ? pipeline.get() : entryManager; } } }
packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImpl.java +7 −11 Original line number Original line Diff line number Diff line Loading @@ -22,10 +22,9 @@ import android.widget.RemoteViews; import androidx.annotation.Nullable; import androidx.annotation.Nullable; 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.NotificationEntry; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener; import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag; import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag; import java.util.Map; import java.util.Map; Loading @@ -40,8 +39,8 @@ public class NotifRemoteViewCacheImpl implements NotifRemoteViewCache { new ArrayMap<>(); new ArrayMap<>(); @Inject @Inject NotifRemoteViewCacheImpl(NotificationEntryManager entryManager) { NotifRemoteViewCacheImpl(CommonNotifCollection collection) { entryManager.addNotificationEntryListener(mEntryListener); collection.addCollectionListener(mCollectionListener); } } @Override @Override Loading Loading @@ -93,17 +92,14 @@ public class NotifRemoteViewCacheImpl implements NotifRemoteViewCache { contentViews.clear(); contentViews.clear(); } } private final NotificationEntryListener mEntryListener = new NotificationEntryListener() { private final NotifCollectionListener mCollectionListener = new NotifCollectionListener() { @Override @Override public void onPendingEntryAdded(NotificationEntry entry) { public void onEntryInit(NotificationEntry entry) { mNotifCachedContentViews.put(entry, new SparseArray<>()); mNotifCachedContentViews.put(entry, new SparseArray<>()); } } @Override @Override public void onEntryRemoved( public void onEntryCleanUp(NotificationEntry entry) { NotificationEntry entry, @Nullable NotificationVisibility visibility, boolean removedByUser) { mNotifCachedContentViews.remove(entry); mNotifCachedContentViews.remove(entry); } } }; }; Loading