Merge "Inline notif pipeline flag into NSSLController" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
bd911d18a3
@@ -28,7 +28,6 @@ import static com.android.systemui.statusbar.notification.stack.NotificationStac
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_GENTLE;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_HIGH_PRIORITY;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.SelectedRows;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.canChildBeCleared;
|
||||
import static com.android.systemui.statusbar.phone.NotificationIconAreaController.HIGH_PRIORITY;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
@@ -38,12 +37,10 @@ import android.graphics.PointF;
|
||||
import android.os.Trace;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.service.notification.NotificationListenerService;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
import android.view.Display;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -53,20 +50,17 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.colorextraction.ColorExtractor;
|
||||
import com.android.internal.jank.InteractionJankMonitor;
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEvent;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.systemui.ExpandHelper;
|
||||
import com.android.systemui.Gefingerpoken;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SwipeHelper;
|
||||
import com.android.systemui.classifier.Classifier;
|
||||
import com.android.systemui.classifier.FalsingCollector;
|
||||
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.media.KeyguardMediaController;
|
||||
@@ -85,9 +79,7 @@ import com.android.systemui.statusbar.StatusBarState;
|
||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
||||
import com.android.systemui.statusbar.notification.LaunchAnimationParameters;
|
||||
import com.android.systemui.statusbar.notification.NotifPipelineFlags;
|
||||
import com.android.systemui.statusbar.notification.NotificationActivityStarter;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryListener;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifCollection;
|
||||
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
|
||||
@@ -163,13 +155,10 @@ public class NotificationStackScrollLayoutController {
|
||||
private final Resources mResources;
|
||||
private final NotificationSwipeHelper.Builder mNotificationSwipeHelperBuilder;
|
||||
private final ScrimController mScrimController;
|
||||
private final NotifPipelineFlags mNotifPipelineFlags;
|
||||
private final NotifPipeline mNotifPipeline;
|
||||
private final NotifCollection mNotifCollection;
|
||||
private final NotificationEntryManager mNotificationEntryManager;
|
||||
private final IStatusBarService mIStatusBarService;
|
||||
private final UiEventLogger mUiEventLogger;
|
||||
private final LayoutInflater mLayoutInflater;
|
||||
private final NotificationRemoteInputManager mRemoteInputManager;
|
||||
private final VisualStabilityManager mVisualStabilityManager;
|
||||
private final ShadeController mShadeController;
|
||||
@@ -206,8 +195,6 @@ public class NotificationStackScrollLayoutController {
|
||||
@Nullable
|
||||
private NotificationActivityStarter mNotificationActivityStarter;
|
||||
|
||||
private ColorExtractor.OnColorsChangedListener mOnColorsChangedListener;
|
||||
|
||||
@VisibleForTesting
|
||||
final View.OnAttachStateChangeListener mOnAttachStateChangeListener =
|
||||
new View.OnAttachStateChangeListener() {
|
||||
@@ -256,10 +243,7 @@ public class NotificationStackScrollLayoutController {
|
||||
mView.setAnimateBottomOnLayout(true);
|
||||
}
|
||||
// Let's update the footer once the notifications have been updated (in the next frame)
|
||||
mView.post(() -> {
|
||||
updateFooter();
|
||||
updateSectionBoundaries("dynamic privacy changed");
|
||||
});
|
||||
mView.post(this::updateFooter);
|
||||
};
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -634,7 +618,6 @@ public class NotificationStackScrollLayoutController {
|
||||
KeyguardMediaController keyguardMediaController,
|
||||
KeyguardBypassController keyguardBypassController,
|
||||
ZenModeController zenModeController,
|
||||
SysuiColorExtractor colorExtractor,
|
||||
NotificationLockscreenUserManager lockscreenUserManager,
|
||||
MetricsLogger metricsLogger,
|
||||
DumpManager dumpManager,
|
||||
@@ -647,15 +630,12 @@ public class NotificationStackScrollLayoutController {
|
||||
NotificationGroupManagerLegacy legacyGroupManager,
|
||||
GroupExpansionManager groupManager,
|
||||
@SilentHeader SectionHeaderController silentHeaderController,
|
||||
NotifPipelineFlags notifPipelineFlags,
|
||||
NotifPipeline notifPipeline,
|
||||
NotifCollection notifCollection,
|
||||
NotificationEntryManager notificationEntryManager,
|
||||
LockscreenShadeTransitionController lockscreenShadeTransitionController,
|
||||
ShadeTransitionController shadeTransitionController,
|
||||
IStatusBarService iStatusBarService,
|
||||
UiEventLogger uiEventLogger,
|
||||
LayoutInflater layoutInflater,
|
||||
NotificationRemoteInputManager remoteInputManager,
|
||||
VisualStabilityManager visualStabilityManager,
|
||||
ShadeController shadeController,
|
||||
@@ -698,14 +678,11 @@ public class NotificationStackScrollLayoutController {
|
||||
mCentralSurfaces.requestNotificationUpdate("onGroupsChanged");
|
||||
}
|
||||
});
|
||||
mNotifPipelineFlags = notifPipelineFlags;
|
||||
mSilentHeaderController = silentHeaderController;
|
||||
mNotifPipeline = notifPipeline;
|
||||
mNotifCollection = notifCollection;
|
||||
mNotificationEntryManager = notificationEntryManager;
|
||||
mIStatusBarService = iStatusBarService;
|
||||
mUiEventLogger = uiEventLogger;
|
||||
mLayoutInflater = layoutInflater;
|
||||
mRemoteInputManager = remoteInputManager;
|
||||
mVisualStabilityManager = visualStabilityManager;
|
||||
mShadeController = shadeController;
|
||||
@@ -745,21 +722,12 @@ public class NotificationStackScrollLayoutController {
|
||||
.setOnMenuEventListener(mMenuEventListener)
|
||||
.build();
|
||||
|
||||
if (mNotifPipelineFlags.isNewPipelineEnabled()) {
|
||||
mNotifPipeline.addCollectionListener(new NotifCollectionListener() {
|
||||
@Override
|
||||
public void onEntryUpdated(NotificationEntry entry) {
|
||||
mView.onEntryUpdated(entry);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
mNotificationEntryManager.addNotificationEntryListener(new NotificationEntryListener() {
|
||||
@Override
|
||||
public void onPreEntryUpdated(NotificationEntry entry) {
|
||||
mView.onEntryUpdated(entry);
|
||||
}
|
||||
});
|
||||
}
|
||||
mNotifPipeline.addCollectionListener(new NotifCollectionListener() {
|
||||
@Override
|
||||
public void onEntryUpdated(NotificationEntry entry) {
|
||||
mView.onEntryUpdated(entry);
|
||||
}
|
||||
});
|
||||
|
||||
mView.initView(mView.getContext(), mSwipeHelper, mNotificationStackSizeCalculator);
|
||||
mView.setKeyguardBypassEnabled(mKeyguardBypassController.getBypassEnabled());
|
||||
@@ -1231,10 +1199,6 @@ public class NotificationStackScrollLayoutController {
|
||||
Trace.endSection();
|
||||
}
|
||||
|
||||
public boolean areNotificationsHiddenInShade() {
|
||||
return mZenModeController.areNotificationsHiddenInShade();
|
||||
}
|
||||
|
||||
public boolean isShowingEmptyShadeView() {
|
||||
return mShowEmptyShadeView;
|
||||
}
|
||||
@@ -1339,15 +1303,6 @@ public class NotificationStackScrollLayoutController {
|
||||
};
|
||||
}
|
||||
|
||||
public void updateSectionBoundaries(String reason) {
|
||||
if (mNotifPipelineFlags.isNewPipelineEnabled()) {
|
||||
return;
|
||||
}
|
||||
Trace.beginSection("NSSLC.updateSectionBoundaries");
|
||||
mView.updateSectionBoundaries(reason);
|
||||
Trace.endSection();
|
||||
}
|
||||
|
||||
public void updateFooter() {
|
||||
Trace.beginSection("NSSLC.updateFooter");
|
||||
mView.updateFooter();
|
||||
@@ -1463,39 +1418,18 @@ public class NotificationStackScrollLayoutController {
|
||||
|
||||
private void onAnimationEnd(List<ExpandableNotificationRow> viewsToRemove,
|
||||
@SelectedRows int selectedRows) {
|
||||
if (mNotifPipelineFlags.isNewPipelineEnabled()) {
|
||||
if (selectedRows == ROWS_ALL) {
|
||||
mNotifCollection.dismissAllNotifications(
|
||||
mLockscreenUserManager.getCurrentUserId());
|
||||
} else {
|
||||
final List<Pair<NotificationEntry, DismissedByUserStats>>
|
||||
entriesWithRowsDismissedFromShade = new ArrayList<>();
|
||||
for (ExpandableNotificationRow row : viewsToRemove) {
|
||||
final NotificationEntry entry = row.getEntry();
|
||||
entriesWithRowsDismissedFromShade.add(
|
||||
new Pair<>(entry, getDismissedByUserStats(entry)));
|
||||
}
|
||||
mNotifCollection.dismissNotifications(entriesWithRowsDismissedFromShade);
|
||||
}
|
||||
if (selectedRows == ROWS_ALL) {
|
||||
mNotifCollection.dismissAllNotifications(
|
||||
mLockscreenUserManager.getCurrentUserId());
|
||||
} else {
|
||||
for (ExpandableNotificationRow rowToRemove : viewsToRemove) {
|
||||
if (canChildBeCleared(rowToRemove)) {
|
||||
mNotificationEntryManager.performRemoveNotification(
|
||||
rowToRemove.getEntry().getSbn(),
|
||||
getDismissedByUserStats(rowToRemove.getEntry()),
|
||||
NotificationListenerService.REASON_CANCEL_ALL);
|
||||
} else {
|
||||
rowToRemove.resetTranslation();
|
||||
}
|
||||
}
|
||||
if (selectedRows == ROWS_ALL) {
|
||||
try {
|
||||
// TODO(b/169585328): Do not clear media player notifications
|
||||
mIStatusBarService.onClearAllNotifications(
|
||||
mLockscreenUserManager.getCurrentUserId());
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
final List<Pair<NotificationEntry, DismissedByUserStats>>
|
||||
entriesWithRowsDismissedFromShade = new ArrayList<>();
|
||||
for (ExpandableNotificationRow row : viewsToRemove) {
|
||||
final NotificationEntry entry = row.getEntry();
|
||||
entriesWithRowsDismissedFromShade.add(
|
||||
new Pair<>(entry, getDismissedByUserStats(entry)));
|
||||
}
|
||||
mNotifCollection.dismissNotifications(entriesWithRowsDismissedFromShade);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3918,7 +3918,6 @@ public final class NotificationPanelViewController extends PanelViewController {
|
||||
* {@link ShadeViewManager}.
|
||||
*/
|
||||
public void updateNotificationViews(String reason) {
|
||||
mNotificationStackScrollLayoutController.updateSectionBoundaries(reason);
|
||||
mNotificationStackScrollLayoutController.updateFooter();
|
||||
|
||||
mNotificationIconAreaController.updateNotificationIcons(createVisibleEntriesList());
|
||||
|
||||
@@ -150,7 +150,6 @@ public class NotificationStackScrollLayoutControllerTest extends SysuiTestCase {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
when(mNotificationSwipeHelperBuilder.build()).thenReturn(mNotificationSwipeHelper);
|
||||
when(mNotifPipelineFlags.isNewPipelineEnabled()).thenReturn(false);
|
||||
|
||||
mController = new NotificationStackScrollLayoutController(
|
||||
true,
|
||||
@@ -166,7 +165,6 @@ public class NotificationStackScrollLayoutControllerTest extends SysuiTestCase {
|
||||
mKeyguardMediaController,
|
||||
mKeyguardBypassController,
|
||||
mZenModeController,
|
||||
mColorExtractor,
|
||||
mNotificationLockscreenUserManager,
|
||||
mMetricsLogger,
|
||||
mDumpManager,
|
||||
@@ -179,15 +177,12 @@ public class NotificationStackScrollLayoutControllerTest extends SysuiTestCase {
|
||||
mLegacyGroupManager,
|
||||
mLegacyGroupManager,
|
||||
mSilentHeaderController,
|
||||
mNotifPipelineFlags,
|
||||
mNotifPipeline,
|
||||
mNotifCollection,
|
||||
mEntryManager,
|
||||
mLockscreenShadeTransitionController,
|
||||
mShadeTransitionController,
|
||||
mIStatusBarService,
|
||||
mUiEventLogger,
|
||||
mLayoutInflater,
|
||||
mRemoteInputManager,
|
||||
mVisualStabilityManager,
|
||||
mShadeController,
|
||||
|
||||
Reference in New Issue
Block a user