Merge "Inline notif pipeline flag into SBNPresenter" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6d097222e7
@@ -30,13 +30,9 @@ import android.util.Log;
|
|||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.accessibility.AccessibilityManager;
|
import android.view.accessibility.AccessibilityManager;
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.internal.statusbar.IStatusBarService;
|
import com.android.internal.statusbar.IStatusBarService;
|
||||||
import com.android.internal.widget.MessagingGroup;
|
|
||||||
import com.android.internal.widget.MessagingMessage;
|
|
||||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
|
||||||
import com.android.systemui.Dependency;
|
import com.android.systemui.Dependency;
|
||||||
import com.android.systemui.ForegroundServiceNotificationListener;
|
import com.android.systemui.ForegroundServiceNotificationListener;
|
||||||
import com.android.systemui.InitController;
|
import com.android.systemui.InitController;
|
||||||
@@ -57,7 +53,6 @@ import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
|||||||
import com.android.systemui.statusbar.notification.AboveShelfObserver;
|
import com.android.systemui.statusbar.notification.AboveShelfObserver;
|
||||||
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
||||||
import com.android.systemui.statusbar.notification.NotifPipelineFlags;
|
import com.android.systemui.statusbar.notification.NotifPipelineFlags;
|
||||||
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.inflation.NotificationRowBinderImpl;
|
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
|
||||||
import com.android.systemui.statusbar.notification.collection.render.NotifShadeEventSource;
|
import com.android.systemui.statusbar.notification.collection.render.NotifShadeEventSource;
|
||||||
@@ -72,16 +67,12 @@ import com.android.systemui.statusbar.notification.stack.NotificationListContain
|
|||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
||||||
import com.android.systemui.statusbar.phone.LockscreenGestureLogger.LockscreenUiEvent;
|
import com.android.systemui.statusbar.phone.LockscreenGestureLogger.LockscreenUiEvent;
|
||||||
import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent;
|
import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
|
||||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@CentralSurfacesComponent.CentralSurfacesScope
|
@CentralSurfacesComponent.CentralSurfacesScope
|
||||||
class StatusBarNotificationPresenter implements NotificationPresenter,
|
class StatusBarNotificationPresenter implements NotificationPresenter,
|
||||||
ConfigurationController.ConfigurationListener,
|
|
||||||
NotificationRowBinderImpl.BindRowCallback,
|
NotificationRowBinderImpl.BindRowCallback,
|
||||||
CommandQueue.Callbacks {
|
CommandQueue.Callbacks {
|
||||||
private static final String TAG = "StatusBarNotificationPresenter";
|
private static final String TAG = "StatusBarNotificationPresenter";
|
||||||
@@ -92,10 +83,8 @@ class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
private final NotificationLockscreenUserManager mLockscreenUserManager;
|
private final NotificationLockscreenUserManager mLockscreenUserManager;
|
||||||
private final SysuiStatusBarStateController mStatusBarStateController;
|
private final SysuiStatusBarStateController mStatusBarStateController;
|
||||||
private final NotifShadeEventSource mNotifShadeEventSource;
|
private final NotifShadeEventSource mNotifShadeEventSource;
|
||||||
private final NotificationEntryManager mEntryManager;
|
|
||||||
private final NotificationMediaManager mMediaManager;
|
private final NotificationMediaManager mMediaManager;
|
||||||
private final NotificationGutsManager mGutsManager;
|
private final NotificationGutsManager mGutsManager;
|
||||||
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
|
||||||
private final LockscreenGestureLogger mLockscreenGestureLogger;
|
private final LockscreenGestureLogger mLockscreenGestureLogger;
|
||||||
|
|
||||||
private final NotificationPanelViewController mNotificationPanel;
|
private final NotificationPanelViewController mNotificationPanel;
|
||||||
@@ -116,9 +105,6 @@ class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
private final IStatusBarService mBarService;
|
private final IStatusBarService mBarService;
|
||||||
private final DynamicPrivacyController mDynamicPrivacyController;
|
private final DynamicPrivacyController mDynamicPrivacyController;
|
||||||
private final NotificationListContainer mNotifListContainer;
|
private final NotificationListContainer mNotifListContainer;
|
||||||
private boolean mReinflateNotificationsOnUserSwitched;
|
|
||||||
private boolean mDispatchUiModeChangeOnUserSwitched;
|
|
||||||
private TextView mNotificationPanelDebugText;
|
|
||||||
|
|
||||||
protected boolean mVrMode;
|
protected boolean mVrMode;
|
||||||
|
|
||||||
@@ -143,15 +129,12 @@ class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
NotificationLockscreenUserManager lockscreenUserManager,
|
NotificationLockscreenUserManager lockscreenUserManager,
|
||||||
SysuiStatusBarStateController sysuiStatusBarStateController,
|
SysuiStatusBarStateController sysuiStatusBarStateController,
|
||||||
NotifShadeEventSource notifShadeEventSource,
|
NotifShadeEventSource notifShadeEventSource,
|
||||||
NotificationEntryManager notificationEntryManager,
|
|
||||||
NotificationMediaManager notificationMediaManager,
|
NotificationMediaManager notificationMediaManager,
|
||||||
NotificationGutsManager notificationGutsManager,
|
NotificationGutsManager notificationGutsManager,
|
||||||
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
|
||||||
LockscreenGestureLogger lockscreenGestureLogger,
|
LockscreenGestureLogger lockscreenGestureLogger,
|
||||||
InitController initController,
|
InitController initController,
|
||||||
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
||||||
NotificationRemoteInputManager remoteInputManager,
|
NotificationRemoteInputManager remoteInputManager,
|
||||||
ConfigurationController configurationController,
|
|
||||||
NotifPipelineFlags notifPipelineFlags,
|
NotifPipelineFlags notifPipelineFlags,
|
||||||
NotificationRemoteInputManager.Callback remoteInputManagerCallback,
|
NotificationRemoteInputManager.Callback remoteInputManagerCallback,
|
||||||
NotificationListContainer notificationListContainer) {
|
NotificationListContainer notificationListContainer) {
|
||||||
@@ -170,10 +153,8 @@ class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
mLockscreenUserManager = lockscreenUserManager;
|
mLockscreenUserManager = lockscreenUserManager;
|
||||||
mStatusBarStateController = sysuiStatusBarStateController;
|
mStatusBarStateController = sysuiStatusBarStateController;
|
||||||
mNotifShadeEventSource = notifShadeEventSource;
|
mNotifShadeEventSource = notifShadeEventSource;
|
||||||
mEntryManager = notificationEntryManager;
|
|
||||||
mMediaManager = notificationMediaManager;
|
mMediaManager = notificationMediaManager;
|
||||||
mGutsManager = notificationGutsManager;
|
mGutsManager = notificationGutsManager;
|
||||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
|
||||||
mLockscreenGestureLogger = lockscreenGestureLogger;
|
mLockscreenGestureLogger = lockscreenGestureLogger;
|
||||||
mAboveShelfObserver = new AboveShelfObserver(stackScrollerController.getView());
|
mAboveShelfObserver = new AboveShelfObserver(stackScrollerController.getView());
|
||||||
mNotificationShadeWindowController = notificationShadeWindowController;
|
mNotificationShadeWindowController = notificationShadeWindowController;
|
||||||
@@ -208,11 +189,6 @@ class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
mNotifListContainer);
|
mNotifListContainer);
|
||||||
mNotifShadeEventSource.setShadeEmptiedCallback(this::maybeClosePanelForShadeEmptied);
|
mNotifShadeEventSource.setShadeEmptiedCallback(this::maybeClosePanelForShadeEmptied);
|
||||||
mNotifShadeEventSource.setNotifRemovedByUserCallback(this::maybeEndAmbientPulse);
|
mNotifShadeEventSource.setNotifRemovedByUserCallback(this::maybeEndAmbientPulse);
|
||||||
if (!mNotifPipelineFlags.isNewPipelineEnabled()) {
|
|
||||||
mEntryManager.setUpWithPresenter(this);
|
|
||||||
mEntryManager.addNotificationLifetimeExtender(mHeadsUpManager);
|
|
||||||
mEntryManager.addNotificationLifetimeExtender(mGutsManager);
|
|
||||||
}
|
|
||||||
notificationInterruptStateProvider.addSuppressor(mInterruptSuppressor);
|
notificationInterruptStateProvider.addSuppressor(mInterruptSuppressor);
|
||||||
mLockscreenUserManager.setUpWithPresenter(this);
|
mLockscreenUserManager.setUpWithPresenter(this);
|
||||||
mMediaManager.setUpWithPresenter(this);
|
mMediaManager.setUpWithPresenter(this);
|
||||||
@@ -225,7 +201,6 @@ class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
|
|
||||||
onUserSwitched(mLockscreenUserManager.getCurrentUserId());
|
onUserSwitched(mLockscreenUserManager.getCurrentUserId());
|
||||||
});
|
});
|
||||||
configurationController.addCallback(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Called when the shade has been emptied to attempt to close the shade */
|
/** Called when the shade has been emptied to attempt to close the shade */
|
||||||
@@ -239,65 +214,6 @@ class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDensityOrFontScaleChanged() {
|
|
||||||
// TODO(b/145659174): Remove legacy pipeline code
|
|
||||||
if (mNotifPipelineFlags.isNewPipelineEnabled()) return;
|
|
||||||
MessagingMessage.dropCache();
|
|
||||||
MessagingGroup.dropCache();
|
|
||||||
if (!mKeyguardUpdateMonitor.isSwitchingUser()) {
|
|
||||||
updateNotificationsOnDensityOrFontScaleChanged();
|
|
||||||
} else {
|
|
||||||
mReinflateNotificationsOnUserSwitched = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUiModeChanged() {
|
|
||||||
// TODO(b/145659174): Remove legacy pipeline code
|
|
||||||
if (mNotifPipelineFlags.isNewPipelineEnabled()) return;
|
|
||||||
if (!mKeyguardUpdateMonitor.isSwitchingUser()) {
|
|
||||||
updateNotificationsOnUiModeChanged();
|
|
||||||
} else {
|
|
||||||
mDispatchUiModeChangeOnUserSwitched = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onThemeChanged() {
|
|
||||||
onDensityOrFontScaleChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateNotificationsOnUiModeChanged() {
|
|
||||||
// TODO(b/145659174): Remove legacy pipeline code
|
|
||||||
if (mNotifPipelineFlags.isNewPipelineEnabled()) return;
|
|
||||||
List<NotificationEntry> userNotifications =
|
|
||||||
mEntryManager.getActiveNotificationsForCurrentUser();
|
|
||||||
for (int i = 0; i < userNotifications.size(); i++) {
|
|
||||||
NotificationEntry entry = userNotifications.get(i);
|
|
||||||
ExpandableNotificationRow row = entry.getRow();
|
|
||||||
if (row != null) {
|
|
||||||
row.onUiModeChanged();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateNotificationsOnDensityOrFontScaleChanged() {
|
|
||||||
// TODO(b/145659174): Remove legacy pipeline code
|
|
||||||
if (mNotifPipelineFlags.isNewPipelineEnabled()) return;
|
|
||||||
List<NotificationEntry> userNotifications =
|
|
||||||
mEntryManager.getActiveNotificationsForCurrentUser();
|
|
||||||
for (int i = 0; i < userNotifications.size(); i++) {
|
|
||||||
NotificationEntry entry = userNotifications.get(i);
|
|
||||||
entry.onDensityOrFontScaleChanged();
|
|
||||||
boolean exposedGuts = entry.areGutsExposed();
|
|
||||||
if (exposedGuts) {
|
|
||||||
mGutsManager.onDensityOrFontScaleChanged(entry);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isCollapsing() {
|
public boolean isCollapsing() {
|
||||||
return mNotificationPanel.isCollapsing()
|
return mNotificationPanel.isCollapsing()
|
||||||
@@ -338,17 +254,6 @@ class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
// End old BaseStatusBar.userSwitched
|
// End old BaseStatusBar.userSwitched
|
||||||
if (MULTIUSER_DEBUG) mNotificationPanel.setHeaderDebugInfo("USER " + newUserId);
|
if (MULTIUSER_DEBUG) mNotificationPanel.setHeaderDebugInfo("USER " + newUserId);
|
||||||
mCommandQueue.animateCollapsePanels();
|
mCommandQueue.animateCollapsePanels();
|
||||||
if (!mNotifPipelineFlags.isNewPipelineEnabled()) {
|
|
||||||
if (mReinflateNotificationsOnUserSwitched) {
|
|
||||||
updateNotificationsOnDensityOrFontScaleChanged();
|
|
||||||
mReinflateNotificationsOnUserSwitched = false;
|
|
||||||
}
|
|
||||||
if (mDispatchUiModeChangeOnUserSwitched) {
|
|
||||||
updateNotificationsOnUiModeChanged();
|
|
||||||
mDispatchUiModeChangeOnUserSwitched = false;
|
|
||||||
}
|
|
||||||
updateNotificationViews("user switched");
|
|
||||||
}
|
|
||||||
mMediaManager.clearCurrentMediaNotification();
|
mMediaManager.clearCurrentMediaNotification();
|
||||||
mCentralSurfaces.setLockscreenUser(newUserId);
|
mCentralSurfaces.setLockscreenUser(newUserId);
|
||||||
updateMediaMetaData(true, false);
|
updateMediaMetaData(true, false);
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import androidx.test.filters.SmallTest;
|
|||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.internal.logging.testing.FakeMetricsLogger;
|
import com.android.internal.logging.testing.FakeMetricsLogger;
|
||||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
|
||||||
import com.android.systemui.ForegroundServiceNotificationListener;
|
import com.android.systemui.ForegroundServiceNotificationListener;
|
||||||
import com.android.systemui.InitController;
|
import com.android.systemui.InitController;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
@@ -50,7 +49,6 @@ import com.android.systemui.statusbar.NotificationViewHierarchyManager;
|
|||||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||||
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
||||||
import com.android.systemui.statusbar.notification.NotifPipelineFlags;
|
import com.android.systemui.statusbar.notification.NotifPipelineFlags;
|
||||||
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.NotificationEntryBuilder;
|
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
|
||||||
import com.android.systemui.statusbar.notification.collection.render.NotifShadeEventSource;
|
import com.android.systemui.statusbar.notification.collection.render.NotifShadeEventSource;
|
||||||
@@ -61,7 +59,6 @@ import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
|||||||
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
|
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
|
||||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -125,15 +122,12 @@ public class StatusBarNotificationPresenterTest extends SysuiTestCase {
|
|||||||
mock(NotificationLockscreenUserManager.class),
|
mock(NotificationLockscreenUserManager.class),
|
||||||
mock(SysuiStatusBarStateController.class),
|
mock(SysuiStatusBarStateController.class),
|
||||||
mock(NotifShadeEventSource.class),
|
mock(NotifShadeEventSource.class),
|
||||||
mock(NotificationEntryManager.class),
|
|
||||||
mock(NotificationMediaManager.class),
|
mock(NotificationMediaManager.class),
|
||||||
mock(NotificationGutsManager.class),
|
mock(NotificationGutsManager.class),
|
||||||
mock(KeyguardUpdateMonitor.class),
|
|
||||||
lockscreenGestureLogger,
|
lockscreenGestureLogger,
|
||||||
mInitController,
|
mInitController,
|
||||||
mNotificationInterruptStateProvider,
|
mNotificationInterruptStateProvider,
|
||||||
mock(NotificationRemoteInputManager.class),
|
mock(NotificationRemoteInputManager.class),
|
||||||
mock(ConfigurationController.class),
|
|
||||||
mock(NotifPipelineFlags.class),
|
mock(NotifPipelineFlags.class),
|
||||||
mock(NotificationRemoteInputManager.Callback.class),
|
mock(NotificationRemoteInputManager.Callback.class),
|
||||||
mock(NotificationListContainer.class));
|
mock(NotificationListContainer.class));
|
||||||
|
|||||||
Reference in New Issue
Block a user