Merge "Eliminate StatusBarNotifActivityStarter.Builder" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
1dd831e873
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar;
|
|||||||
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
|
||||||
import com.android.systemui.statusbar.notification.row.ActivatableNotificationViewController;
|
import com.android.systemui.statusbar.notification.row.ActivatableNotificationViewController;
|
||||||
import com.android.systemui.statusbar.notification.row.dagger.NotificationRowScope;
|
import com.android.systemui.statusbar.notification.row.dagger.NotificationRowScope;
|
||||||
import com.android.systemui.statusbar.notification.stack.AmbientState;
|
import com.android.systemui.statusbar.notification.stack.AmbientState;
|
||||||
@@ -25,7 +26,6 @@ import com.android.systemui.statusbar.notification.stack.NotificationStackScroll
|
|||||||
import com.android.systemui.statusbar.notification.stack.StackScrollAlgorithm;
|
import com.android.systemui.statusbar.notification.stack.StackScrollAlgorithm;
|
||||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||||
import com.android.systemui.statusbar.phone.NotificationIconContainer;
|
import com.android.systemui.statusbar.phone.NotificationIconContainer;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarNotificationPresenter;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -114,8 +114,8 @@ public class NotificationShelfController {
|
|||||||
return mView.getIntrinsicHeight();
|
return mView.getIntrinsicHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnActivatedListener(StatusBarNotificationPresenter presenter) {
|
public void setOnActivatedListener(ActivatableNotificationView.OnActivatedListener listener) {
|
||||||
mView.setOnActivatedListener(presenter);
|
mView.setOnActivatedListener(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnClickListener(View.OnClickListener onClickListener) {
|
public void setOnClickListener(View.OnClickListener onClickListener) {
|
||||||
|
|||||||
@@ -8,12 +8,15 @@ import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
|
|||||||
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
|
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
|
||||||
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone
|
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone
|
||||||
import com.android.systemui.statusbar.phone.NotificationShadeWindowViewController
|
import com.android.systemui.statusbar.phone.NotificationShadeWindowViewController
|
||||||
|
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent
|
||||||
import com.android.systemui.statusbar.policy.HeadsUpUtil
|
import com.android.systemui.statusbar.policy.HeadsUpUtil
|
||||||
|
import javax.inject.Inject
|
||||||
import kotlin.math.ceil
|
import kotlin.math.ceil
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
|
|
||||||
/** A provider of [NotificationLaunchAnimatorController]. */
|
/** A provider of [NotificationLaunchAnimatorController]. */
|
||||||
class NotificationLaunchAnimatorControllerProvider(
|
@StatusBarComponent.StatusBarScope
|
||||||
|
class NotificationLaunchAnimatorControllerProvider @Inject constructor(
|
||||||
private val notificationShadeWindowViewController: NotificationShadeWindowViewController,
|
private val notificationShadeWindowViewController: NotificationShadeWindowViewController,
|
||||||
private val notificationListContainer: NotificationListContainer,
|
private val notificationListContainer: NotificationListContainer,
|
||||||
private val headsUpManager: HeadsUpManagerPhone,
|
private val headsUpManager: HeadsUpManagerPhone,
|
||||||
|
|||||||
@@ -94,6 +94,8 @@ import com.android.systemui.wmshell.BubblesManager;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
|
import javax.inject.Provider;
|
||||||
|
|
||||||
import dagger.Binds;
|
import dagger.Binds;
|
||||||
import dagger.Lazy;
|
import dagger.Lazy;
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
@@ -276,8 +278,8 @@ public interface NotificationsModule {
|
|||||||
@Provides
|
@Provides
|
||||||
static NotificationsController provideNotificationsController(
|
static NotificationsController provideNotificationsController(
|
||||||
Context context,
|
Context context,
|
||||||
Lazy<NotificationsControllerImpl> realController,
|
Provider<NotificationsControllerImpl> realController,
|
||||||
Lazy<NotificationsControllerStub> stubController) {
|
Provider<NotificationsControllerStub> stubController) {
|
||||||
if (context.getResources().getBoolean(R.bool.config_renderNotifications)) {
|
if (context.getResources().getBoolean(R.bool.config_renderNotifications)) {
|
||||||
return realController.get();
|
return realController.get();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -23,11 +23,8 @@ import com.android.systemui.statusbar.notification.NotificationActivityStarter
|
|||||||
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.NotifStackController
|
import com.android.systemui.statusbar.notification.collection.render.NotifStackController
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
|
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
|
||||||
import com.android.systemui.statusbar.phone.StatusBar
|
|
||||||
import com.android.wm.shell.bubbles.Bubbles
|
|
||||||
import java.io.FileDescriptor
|
import java.io.FileDescriptor
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
import java.util.Optional
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The master controller for all notifications-related work
|
* The master controller for all notifications-related work
|
||||||
@@ -37,8 +34,6 @@ import java.util.Optional
|
|||||||
*/
|
*/
|
||||||
interface NotificationsController {
|
interface NotificationsController {
|
||||||
fun initialize(
|
fun initialize(
|
||||||
statusBar: StatusBar,
|
|
||||||
bubblesOptional: Optional<Bubbles>,
|
|
||||||
presenter: NotificationPresenter,
|
presenter: NotificationPresenter,
|
||||||
listContainer: NotificationListContainer,
|
listContainer: NotificationListContainer,
|
||||||
stackController: NotifStackController,
|
stackController: NotifStackController,
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ import javax.inject.Inject
|
|||||||
*/
|
*/
|
||||||
@SysUISingleton
|
@SysUISingleton
|
||||||
class NotificationsControllerImpl @Inject constructor(
|
class NotificationsControllerImpl @Inject constructor(
|
||||||
|
private val statusBar: Lazy<StatusBar>,
|
||||||
private val notifPipelineFlags: NotifPipelineFlags,
|
private val notifPipelineFlags: NotifPipelineFlags,
|
||||||
private val notificationListener: NotificationListener,
|
private val notificationListener: NotificationListener,
|
||||||
private val entryManager: NotificationEntryManager,
|
private val entryManager: NotificationEntryManager,
|
||||||
@@ -86,12 +87,11 @@ class NotificationsControllerImpl @Inject constructor(
|
|||||||
private val headsUpViewBinder: HeadsUpViewBinder,
|
private val headsUpViewBinder: HeadsUpViewBinder,
|
||||||
private val clickerBuilder: NotificationClicker.Builder,
|
private val clickerBuilder: NotificationClicker.Builder,
|
||||||
private val animatedImageNotificationManager: AnimatedImageNotificationManager,
|
private val animatedImageNotificationManager: AnimatedImageNotificationManager,
|
||||||
private val peopleSpaceWidgetManager: PeopleSpaceWidgetManager
|
private val peopleSpaceWidgetManager: PeopleSpaceWidgetManager,
|
||||||
|
private val bubblesOptional: Optional<Bubbles>,
|
||||||
) : NotificationsController {
|
) : NotificationsController {
|
||||||
|
|
||||||
override fun initialize(
|
override fun initialize(
|
||||||
statusBar: StatusBar,
|
|
||||||
bubblesOptional: Optional<Bubbles>,
|
|
||||||
presenter: NotificationPresenter,
|
presenter: NotificationPresenter,
|
||||||
listContainer: NotificationListContainer,
|
listContainer: NotificationListContainer,
|
||||||
stackController: NotifStackController,
|
stackController: NotifStackController,
|
||||||
@@ -109,7 +109,7 @@ class NotificationsControllerImpl @Inject constructor(
|
|||||||
|
|
||||||
notificationRowBinder.setNotificationClicker(
|
notificationRowBinder.setNotificationClicker(
|
||||||
clickerBuilder.build(
|
clickerBuilder.build(
|
||||||
Optional.of(statusBar), bubblesOptional, notificationActivityStarter))
|
Optional.of(statusBar.get()), bubblesOptional, notificationActivityStarter))
|
||||||
notificationRowBinder.setUpWithPresenter(
|
notificationRowBinder.setUpWithPresenter(
|
||||||
presenter,
|
presenter,
|
||||||
listContainer,
|
listContainer,
|
||||||
|
|||||||
@@ -24,11 +24,8 @@ import com.android.systemui.statusbar.notification.NotificationActivityStarter
|
|||||||
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.NotifStackController
|
import com.android.systemui.statusbar.notification.collection.render.NotifStackController
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
|
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
|
||||||
import com.android.systemui.statusbar.phone.StatusBar
|
|
||||||
import com.android.wm.shell.bubbles.Bubbles
|
|
||||||
import java.io.FileDescriptor
|
import java.io.FileDescriptor
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
import java.util.Optional
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -39,8 +36,6 @@ class NotificationsControllerStub @Inject constructor(
|
|||||||
) : NotificationsController {
|
) : NotificationsController {
|
||||||
|
|
||||||
override fun initialize(
|
override fun initialize(
|
||||||
statusBar: StatusBar,
|
|
||||||
bubblesOptional: Optional<Bubbles>,
|
|
||||||
presenter: NotificationPresenter,
|
presenter: NotificationPresenter,
|
||||||
listContainer: NotificationListContainer,
|
listContainer: NotificationListContainer,
|
||||||
stackController: NotifStackController,
|
stackController: NotifStackController,
|
||||||
@@ -75,4 +70,4 @@ class NotificationsControllerStub @Inject constructor(
|
|||||||
pw.println("Notification handling disabled")
|
pw.println("Notification handling disabled")
|
||||||
pw.println()
|
pw.println()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1406,7 +1406,7 @@ public class NotificationStackScrollLayoutController {
|
|||||||
return mNotificationRoundnessManager;
|
return mNotificationRoundnessManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NotificationListContainer getNotificationListContainer() {
|
NotificationListContainer getNotificationListContainer() {
|
||||||
return mNotificationListContainer;
|
return mNotificationListContainer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2022 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.stack;
|
||||||
|
|
||||||
|
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module
|
||||||
|
public abstract class NotificationStackScrollLayoutListContainerModule {
|
||||||
|
@Provides
|
||||||
|
@StatusBarComponent.StatusBarScope
|
||||||
|
static NotificationListContainer provideListContainer(
|
||||||
|
NotificationStackScrollLayoutController nsslController) {
|
||||||
|
return nsslController.getNotificationListContainer();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -184,6 +184,7 @@ import com.android.systemui.statusbar.notification.row.ExpandableView;
|
|||||||
import com.android.systemui.statusbar.notification.stack.AmbientState;
|
import com.android.systemui.statusbar.notification.stack.AmbientState;
|
||||||
import com.android.systemui.statusbar.notification.stack.AnimationProperties;
|
import com.android.systemui.statusbar.notification.stack.AnimationProperties;
|
||||||
import com.android.systemui.statusbar.notification.stack.MediaContainerView;
|
import com.android.systemui.statusbar.notification.stack.MediaContainerView;
|
||||||
|
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.notification.stack.StackStateAnimator;
|
import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
|
||||||
@@ -665,6 +666,8 @@ public class NotificationPanelViewController extends PanelViewController
|
|||||||
|
|
||||||
private final ListenerSet<Callbacks> mNotifEventSourceCallbacks = new ListenerSet<>();
|
private final ListenerSet<Callbacks> mNotifEventSourceCallbacks = new ListenerSet<>();
|
||||||
|
|
||||||
|
private final NotificationListContainer mNotificationListContainer;
|
||||||
|
|
||||||
private View.AccessibilityDelegate mAccessibilityDelegate = new View.AccessibilityDelegate() {
|
private View.AccessibilityDelegate mAccessibilityDelegate = new View.AccessibilityDelegate() {
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
|
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
|
||||||
@@ -792,7 +795,8 @@ public class NotificationPanelViewController extends PanelViewController
|
|||||||
InteractionJankMonitor interactionJankMonitor,
|
InteractionJankMonitor interactionJankMonitor,
|
||||||
QsFrameTranslateController qsFrameTranslateController,
|
QsFrameTranslateController qsFrameTranslateController,
|
||||||
SysUiState sysUiState,
|
SysUiState sysUiState,
|
||||||
KeyguardUnlockAnimationController keyguardUnlockAnimationController) {
|
KeyguardUnlockAnimationController keyguardUnlockAnimationController,
|
||||||
|
NotificationListContainer notificationListContainer) {
|
||||||
super(view,
|
super(view,
|
||||||
falsingManager,
|
falsingManager,
|
||||||
dozeLog,
|
dozeLog,
|
||||||
@@ -823,6 +827,7 @@ public class NotificationPanelViewController extends PanelViewController
|
|||||||
mMediaHierarchyManager = mediaHierarchyManager;
|
mMediaHierarchyManager = mediaHierarchyManager;
|
||||||
mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
|
mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
|
||||||
mNotificationsQSContainerController = notificationsQSContainerController;
|
mNotificationsQSContainerController = notificationsQSContainerController;
|
||||||
|
mNotificationListContainer = notificationListContainer;
|
||||||
mNotificationsQSContainerController.init();
|
mNotificationsQSContainerController.init();
|
||||||
mNotificationStackScrollLayoutController = notificationStackScrollLayoutController;
|
mNotificationStackScrollLayoutController = notificationStackScrollLayoutController;
|
||||||
mGroupManager = groupManager;
|
mGroupManager = groupManager;
|
||||||
@@ -4046,8 +4051,7 @@ public class NotificationPanelViewController extends PanelViewController
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasPulsingNotifications() {
|
public boolean hasPulsingNotifications() {
|
||||||
return mNotificationStackScrollLayoutController
|
return mNotificationListContainer.hasPulsingNotifications();
|
||||||
.getNotificationListContainer().hasPulsingNotifications();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActivatableNotificationView getActivatedChild() {
|
public ActivatableNotificationView getActivatedChild() {
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ import com.android.systemui.statusbar.NotificationShadeWindowController;
|
|||||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||||
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.phone.dagger.StatusBarComponent;
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
||||||
import com.android.systemui.statusbar.window.StatusBarWindowStateController;
|
import com.android.systemui.statusbar.window.StatusBarWindowStateController;
|
||||||
import com.android.systemui.tuner.TunerService;
|
import com.android.systemui.tuner.TunerService;
|
||||||
@@ -57,6 +58,7 @@ import javax.inject.Inject;
|
|||||||
/**
|
/**
|
||||||
* Controller for {@link NotificationShadeWindowView}.
|
* Controller for {@link NotificationShadeWindowView}.
|
||||||
*/
|
*/
|
||||||
|
@StatusBarComponent.StatusBarScope
|
||||||
public class NotificationShadeWindowViewController {
|
public class NotificationShadeWindowViewController {
|
||||||
private static final String TAG = "NotifShadeWindowVC";
|
private static final String TAG = "NotifShadeWindowVC";
|
||||||
private final FalsingCollector mFalsingCollector;
|
private final FalsingCollector mFalsingCollector;
|
||||||
@@ -77,8 +79,8 @@ public class NotificationShadeWindowViewController {
|
|||||||
private boolean mExpandAnimationRunning;
|
private boolean mExpandAnimationRunning;
|
||||||
private NotificationStackScrollLayout mStackScrollLayout;
|
private NotificationStackScrollLayout mStackScrollLayout;
|
||||||
private PhoneStatusBarViewController mStatusBarViewController;
|
private PhoneStatusBarViewController mStatusBarViewController;
|
||||||
private StatusBar mService;
|
private final StatusBar mService;
|
||||||
private NotificationShadeWindowController mNotificationShadeWindowController;
|
private final NotificationShadeWindowController mNotificationShadeWindowController;
|
||||||
private DragDownHelper mDragDownHelper;
|
private DragDownHelper mDragDownHelper;
|
||||||
private boolean mDoubleTapEnabled;
|
private boolean mDoubleTapEnabled;
|
||||||
private boolean mSingleTapEnabled;
|
private boolean mSingleTapEnabled;
|
||||||
@@ -105,7 +107,9 @@ public class NotificationShadeWindowViewController {
|
|||||||
StatusBarKeyguardViewManager statusBarKeyguardViewManager,
|
StatusBarKeyguardViewManager statusBarKeyguardViewManager,
|
||||||
StatusBarWindowStateController statusBarWindowStateController,
|
StatusBarWindowStateController statusBarWindowStateController,
|
||||||
LockIconViewController lockIconViewController,
|
LockIconViewController lockIconViewController,
|
||||||
Optional<LowLightClockController> lowLightClockController) {
|
Optional<LowLightClockController> lowLightClockController,
|
||||||
|
StatusBar statusBar,
|
||||||
|
NotificationShadeWindowController controller) {
|
||||||
mLockscreenShadeTransitionController = transitionController;
|
mLockscreenShadeTransitionController = transitionController;
|
||||||
mFalsingCollector = falsingCollector;
|
mFalsingCollector = falsingCollector;
|
||||||
mTunerService = tunerService;
|
mTunerService = tunerService;
|
||||||
@@ -120,6 +124,8 @@ public class NotificationShadeWindowViewController {
|
|||||||
mStatusBarWindowStateController = statusBarWindowStateController;
|
mStatusBarWindowStateController = statusBarWindowStateController;
|
||||||
mLockIconViewController = lockIconViewController;
|
mLockIconViewController = lockIconViewController;
|
||||||
mLowLightClockController = lowLightClockController;
|
mLowLightClockController = lowLightClockController;
|
||||||
|
mService = statusBar;
|
||||||
|
mNotificationShadeWindowController = controller;
|
||||||
|
|
||||||
// This view is not part of the newly inflated expanded status bar.
|
// This view is not part of the newly inflated expanded status bar.
|
||||||
mBrightnessMirror = mView.findViewById(R.id.brightness_mirror_container);
|
mBrightnessMirror = mView.findViewById(R.id.brightness_mirror_container);
|
||||||
@@ -452,11 +458,6 @@ public class NotificationShadeWindowViewController {
|
|||||||
mStatusBarViewController = statusBarViewController;
|
mStatusBarViewController = statusBarViewController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setService(StatusBar statusBar, NotificationShadeWindowController controller) {
|
|
||||||
mService = statusBar;
|
|
||||||
mNotificationShadeWindowController = controller;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tell the controller that dozing has begun or ended.
|
* Tell the controller that dozing has begun or ended.
|
||||||
* @param dozing True if dozing has begun.
|
* @param dozing True if dozing has begun.
|
||||||
|
|||||||
@@ -345,6 +345,7 @@ public class StatusBar extends CoreStartable implements
|
|||||||
private final DreamOverlayStateController mDreamOverlayStateController;
|
private final DreamOverlayStateController mDreamOverlayStateController;
|
||||||
private StatusBarCommandQueueCallbacks mCommandQueueCallbacks;
|
private StatusBarCommandQueueCallbacks mCommandQueueCallbacks;
|
||||||
private float mTransitionToFullShadeProgress = 0f;
|
private float mTransitionToFullShadeProgress = 0f;
|
||||||
|
private NotificationListContainer mNotifListContainer;
|
||||||
|
|
||||||
void onStatusBarWindowStateChanged(@WindowVisibleState int state) {
|
void onStatusBarWindowStateChanged(@WindowVisibleState int state) {
|
||||||
updateBubblesVisibility();
|
updateBubblesVisibility();
|
||||||
@@ -468,7 +469,7 @@ public class StatusBar extends CoreStartable implements
|
|||||||
private PhoneStatusBarTransitions mStatusBarTransitions;
|
private PhoneStatusBarTransitions mStatusBarTransitions;
|
||||||
private AuthRippleController mAuthRippleController;
|
private AuthRippleController mAuthRippleController;
|
||||||
@WindowVisibleState private int mStatusBarWindowState = WINDOW_STATE_SHOWING;
|
@WindowVisibleState private int mStatusBarWindowState = WINDOW_STATE_SHOWING;
|
||||||
protected NotificationShadeWindowController mNotificationShadeWindowController;
|
protected final NotificationShadeWindowController mNotificationShadeWindowController;
|
||||||
private final StatusBarWindowController mStatusBarWindowController;
|
private final StatusBarWindowController mStatusBarWindowController;
|
||||||
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -496,8 +497,6 @@ public class StatusBar extends CoreStartable implements
|
|||||||
private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
|
private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
|
||||||
private final StatusBarComponent.Factory mStatusBarComponentFactory;
|
private final StatusBarComponent.Factory mStatusBarComponentFactory;
|
||||||
private final PluginManager mPluginManager;
|
private final PluginManager mPluginManager;
|
||||||
private final StatusBarNotificationActivityStarter.Builder
|
|
||||||
mStatusBarNotificationActivityStarterBuilder;
|
|
||||||
private final ShadeController mShadeController;
|
private final ShadeController mShadeController;
|
||||||
private final InitController mInitController;
|
private final InitController mInitController;
|
||||||
|
|
||||||
@@ -665,7 +664,7 @@ public class StatusBar extends CoreStartable implements
|
|||||||
|
|
||||||
private final ActivityLaunchAnimator mActivityLaunchAnimator;
|
private final ActivityLaunchAnimator mActivityLaunchAnimator;
|
||||||
private NotificationLaunchAnimatorControllerProvider mNotificationAnimationProvider;
|
private NotificationLaunchAnimatorControllerProvider mNotificationAnimationProvider;
|
||||||
protected StatusBarNotificationPresenter mPresenter;
|
protected NotificationPresenter mPresenter;
|
||||||
private NotificationActivityStarter mNotificationActivityStarter;
|
private NotificationActivityStarter mNotificationActivityStarter;
|
||||||
private final Lazy<NotificationShadeDepthController> mNotificationShadeDepthControllerLazy;
|
private final Lazy<NotificationShadeDepthController> mNotificationShadeDepthControllerLazy;
|
||||||
private final Optional<BubblesManager> mBubblesManagerOptional;
|
private final Optional<BubblesManager> mBubblesManagerOptional;
|
||||||
@@ -752,8 +751,6 @@ public class StatusBar extends CoreStartable implements
|
|||||||
CommandQueue commandQueue,
|
CommandQueue commandQueue,
|
||||||
StatusBarComponent.Factory statusBarComponentFactory,
|
StatusBarComponent.Factory statusBarComponentFactory,
|
||||||
PluginManager pluginManager,
|
PluginManager pluginManager,
|
||||||
StatusBarNotificationActivityStarter.Builder
|
|
||||||
statusBarNotificationActivityStarterBuilder,
|
|
||||||
ShadeController shadeController,
|
ShadeController shadeController,
|
||||||
StatusBarKeyguardViewManager statusBarKeyguardViewManager,
|
StatusBarKeyguardViewManager statusBarKeyguardViewManager,
|
||||||
ViewMediatorCallback viewMediatorCallback,
|
ViewMediatorCallback viewMediatorCallback,
|
||||||
@@ -850,7 +847,6 @@ public class StatusBar extends CoreStartable implements
|
|||||||
mCommandQueue = commandQueue;
|
mCommandQueue = commandQueue;
|
||||||
mStatusBarComponentFactory = statusBarComponentFactory;
|
mStatusBarComponentFactory = statusBarComponentFactory;
|
||||||
mPluginManager = pluginManager;
|
mPluginManager = pluginManager;
|
||||||
mStatusBarNotificationActivityStarterBuilder = statusBarNotificationActivityStarterBuilder;
|
|
||||||
mShadeController = shadeController;
|
mShadeController = shadeController;
|
||||||
mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
|
mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
|
||||||
mKeyguardViewMediatorCallback = viewMediatorCallback;
|
mKeyguardViewMediatorCallback = viewMediatorCallback;
|
||||||
@@ -1155,19 +1151,14 @@ public class StatusBar extends CoreStartable implements
|
|||||||
updateTheme();
|
updateTheme();
|
||||||
|
|
||||||
inflateStatusBarWindow();
|
inflateStatusBarWindow();
|
||||||
mNotificationShadeWindowViewController.setService(this, mNotificationShadeWindowController);
|
|
||||||
mNotificationShadeWindowView.setOnTouchListener(getStatusBarWindowTouchListener());
|
mNotificationShadeWindowView.setOnTouchListener(getStatusBarWindowTouchListener());
|
||||||
mWallpaperController.setRootView(mNotificationShadeWindowView);
|
mWallpaperController.setRootView(mNotificationShadeWindowView);
|
||||||
|
|
||||||
// TODO: Deal with the ugliness that comes from having some of the statusbar broken out
|
// TODO: Deal with the ugliness that comes from having some of the statusbar broken out
|
||||||
// into fragments, but the rest here, it leaves some awkward lifecycle and whatnot.
|
// into fragments, but the rest here, it leaves some awkward lifecycle and whatnot.
|
||||||
NotificationListContainer notifListContainer =
|
mNotificationLogger.setUpWithContainer(mNotifListContainer);
|
||||||
mStackScrollerController.getNotificationListContainer();
|
|
||||||
mNotificationLogger.setUpWithContainer(notifListContainer);
|
|
||||||
|
|
||||||
mNotificationIconAreaController.setupShelf(mNotificationShelfController);
|
mNotificationIconAreaController.setupShelf(mNotificationShelfController);
|
||||||
mPanelExpansionStateManager.addExpansionListener(mWakeUpCoordinator);
|
mPanelExpansionStateManager.addExpansionListener(mWakeUpCoordinator);
|
||||||
|
|
||||||
mUserSwitcherController.init(mNotificationShadeWindowView);
|
mUserSwitcherController.init(mNotificationShadeWindowView);
|
||||||
|
|
||||||
// Allow plugins to reference DarkIconDispatcher and StatusBarStateController
|
// Allow plugins to reference DarkIconDispatcher and StatusBarStateController
|
||||||
@@ -1442,65 +1433,19 @@ public class StatusBar extends CoreStartable implements
|
|||||||
mActivityLaunchAnimator.addListener(mActivityLaunchAnimatorListener);
|
mActivityLaunchAnimator.addListener(mActivityLaunchAnimatorListener);
|
||||||
mNotificationAnimationProvider = new NotificationLaunchAnimatorControllerProvider(
|
mNotificationAnimationProvider = new NotificationLaunchAnimatorControllerProvider(
|
||||||
mNotificationShadeWindowViewController,
|
mNotificationShadeWindowViewController,
|
||||||
mStackScrollerController.getNotificationListContainer(),
|
mNotifListContainer,
|
||||||
mHeadsUpManager,
|
mHeadsUpManager,
|
||||||
mJankMonitor
|
mJankMonitor);
|
||||||
);
|
|
||||||
|
|
||||||
// TODO: inject this.
|
|
||||||
mPresenter = new StatusBarNotificationPresenter(
|
|
||||||
mContext,
|
|
||||||
mNotificationPanelViewController,
|
|
||||||
mHeadsUpManager,
|
|
||||||
mNotificationShadeWindowView,
|
|
||||||
mStackScrollerController,
|
|
||||||
mDozeScrimController,
|
|
||||||
mScrimController,
|
|
||||||
mNotificationShadeWindowController,
|
|
||||||
mDynamicPrivacyController,
|
|
||||||
mKeyguardStateController,
|
|
||||||
mKeyguardIndicationController,
|
|
||||||
this /* statusBar */,
|
|
||||||
mShadeController,
|
|
||||||
mLockscreenShadeTransitionController,
|
|
||||||
mCommandQueue,
|
|
||||||
mViewHierarchyManager,
|
|
||||||
mLockscreenUserManager,
|
|
||||||
mStatusBarStateController,
|
|
||||||
mNotifShadeEventSource,
|
|
||||||
mEntryManager,
|
|
||||||
mMediaManager,
|
|
||||||
mGutsManager,
|
|
||||||
mKeyguardUpdateMonitor,
|
|
||||||
mLockscreenGestureLogger,
|
|
||||||
mInitController,
|
|
||||||
mNotificationInterruptStateProvider,
|
|
||||||
mRemoteInputManager,
|
|
||||||
mConfigurationController,
|
|
||||||
mNotifPipelineFlags);
|
|
||||||
|
|
||||||
mNotificationShelfController.setOnActivatedListener(mPresenter);
|
mNotificationShelfController.setOnActivatedListener(mPresenter);
|
||||||
mRemoteInputManager.addControllerCallback(mNotificationShadeWindowController);
|
mRemoteInputManager.addControllerCallback(mNotificationShadeWindowController);
|
||||||
|
|
||||||
mNotificationActivityStarter =
|
|
||||||
mStatusBarNotificationActivityStarterBuilder
|
|
||||||
.setStatusBar(this)
|
|
||||||
.setActivityLaunchAnimator(mActivityLaunchAnimator)
|
|
||||||
.setNotificationAnimatorControllerProvider(mNotificationAnimationProvider)
|
|
||||||
.setNotificationPresenter(mPresenter)
|
|
||||||
.setNotificationPanelViewController(mNotificationPanelViewController)
|
|
||||||
.build();
|
|
||||||
mStackScrollerController.setNotificationActivityStarter(mNotificationActivityStarter);
|
mStackScrollerController.setNotificationActivityStarter(mNotificationActivityStarter);
|
||||||
mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);
|
mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);
|
||||||
|
|
||||||
mNotificationsController.initialize(
|
mNotificationsController.initialize(
|
||||||
this,
|
|
||||||
mBubblesOptional,
|
|
||||||
mPresenter,
|
mPresenter,
|
||||||
mStackScrollerController.getNotificationListContainer(),
|
mNotifListContainer,
|
||||||
mStackScrollerController.getNotifStackController(),
|
mStackScrollerController.getNotifStackController(),
|
||||||
mNotificationActivityStarter,
|
mNotificationActivityStarter,
|
||||||
mPresenter);
|
mStatusBarComponent.getBindRowCallback());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1576,9 +1521,12 @@ public class StatusBar extends CoreStartable implements
|
|||||||
mStatusBarComponent.getLockIconViewController().init();
|
mStatusBarComponent.getLockIconViewController().init();
|
||||||
mStackScrollerController = mStatusBarComponent.getNotificationStackScrollLayoutController();
|
mStackScrollerController = mStatusBarComponent.getNotificationStackScrollLayoutController();
|
||||||
mStackScroller = mStackScrollerController.getView();
|
mStackScroller = mStackScrollerController.getView();
|
||||||
|
mNotifListContainer = mStatusBarComponent.getNotificationListContainer();
|
||||||
|
mPresenter = mStatusBarComponent.getNotificationPresenter();
|
||||||
|
mNotificationActivityStarter = mStatusBarComponent.getNotificationActivityStarter();
|
||||||
mNotificationShelfController = mStatusBarComponent.getNotificationShelfController();
|
mNotificationShelfController = mStatusBarComponent.getNotificationShelfController();
|
||||||
mAuthRippleController = mStatusBarComponent.getAuthRippleController();
|
mAuthRippleController = mStatusBarComponent.getAuthRippleController();
|
||||||
|
|
||||||
mAuthRippleController.init();
|
mAuthRippleController.init();
|
||||||
|
|
||||||
mHeadsUpManager.addListener(mStatusBarComponent.getStatusBarHeadsUpChangeListener());
|
mHeadsUpManager.addListener(mStatusBarComponent.getStatusBarHeadsUpChangeListener());
|
||||||
|
|||||||
@@ -51,9 +51,6 @@ import com.android.systemui.ActivityIntentHelper;
|
|||||||
import com.android.systemui.EventLogTags;
|
import com.android.systemui.EventLogTags;
|
||||||
import com.android.systemui.animation.ActivityLaunchAnimator;
|
import com.android.systemui.animation.ActivityLaunchAnimator;
|
||||||
import com.android.systemui.assist.AssistManager;
|
import com.android.systemui.assist.AssistManager;
|
||||||
import com.android.systemui.dagger.SysUISingleton;
|
|
||||||
import com.android.systemui.dagger.qualifiers.Main;
|
|
||||||
import com.android.systemui.dagger.qualifiers.UiBackground;
|
|
||||||
import com.android.systemui.plugins.ActivityStarter;
|
import com.android.systemui.plugins.ActivityStarter;
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||||
import com.android.systemui.statusbar.CommandQueue;
|
import com.android.systemui.statusbar.CommandQueue;
|
||||||
@@ -75,6 +72,7 @@ import com.android.systemui.statusbar.notification.interruption.NotificationInte
|
|||||||
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
|
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
|
||||||
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRowDragController;
|
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRowDragController;
|
||||||
import com.android.systemui.statusbar.notification.row.OnUserInteractionCallback;
|
import com.android.systemui.statusbar.notification.row.OnUserInteractionCallback;
|
||||||
|
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
||||||
import com.android.systemui.statusbar.policy.HeadsUpUtil;
|
import com.android.systemui.statusbar.policy.HeadsUpUtil;
|
||||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||||
import com.android.systemui.wmshell.BubblesManager;
|
import com.android.systemui.wmshell.BubblesManager;
|
||||||
@@ -89,7 +87,8 @@ import dagger.Lazy;
|
|||||||
/**
|
/**
|
||||||
* Status bar implementation of {@link NotificationActivityStarter}.
|
* Status bar implementation of {@link NotificationActivityStarter}.
|
||||||
*/
|
*/
|
||||||
public class StatusBarNotificationActivityStarter implements NotificationActivityStarter {
|
@StatusBarComponent.StatusBarScope
|
||||||
|
class StatusBarNotificationActivityStarter implements NotificationActivityStarter {
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
|
|
||||||
@@ -132,7 +131,8 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit
|
|||||||
|
|
||||||
private boolean mIsCollapsingToShowActivityOverLockscreen;
|
private boolean mIsCollapsingToShowActivityOverLockscreen;
|
||||||
|
|
||||||
private StatusBarNotificationActivityStarter(
|
@Inject
|
||||||
|
StatusBarNotificationActivityStarter(
|
||||||
Context context,
|
Context context,
|
||||||
CommandQueue commandQueue,
|
CommandQueue commandQueue,
|
||||||
Handler mainThreadHandler,
|
Handler mainThreadHandler,
|
||||||
@@ -657,180 +657,4 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit
|
|||||||
|
|
||||||
return entry.shouldSuppressFullScreenIntent();
|
return entry.shouldSuppressFullScreenIntent();
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------- NotificationEntryManager/NotifPipeline methods ------------------------
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Public builder for {@link StatusBarNotificationActivityStarter}.
|
|
||||||
*/
|
|
||||||
@SysUISingleton
|
|
||||||
public static class Builder {
|
|
||||||
private final Context mContext;
|
|
||||||
private final CommandQueue mCommandQueue;
|
|
||||||
private final Handler mMainThreadHandler;
|
|
||||||
|
|
||||||
private final Executor mUiBgExecutor;
|
|
||||||
private final NotificationEntryManager mEntryManager;
|
|
||||||
private final NotifPipeline mNotifPipeline;
|
|
||||||
private final NotificationVisibilityProvider mVisibilityProvider;
|
|
||||||
private final HeadsUpManagerPhone mHeadsUpManager;
|
|
||||||
private final ActivityStarter mActivityStarter;
|
|
||||||
private final NotificationClickNotifier mClickNotifier;
|
|
||||||
private final StatusBarStateController mStatusBarStateController;
|
|
||||||
private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
|
||||||
private final KeyguardManager mKeyguardManager;
|
|
||||||
private final IDreamManager mDreamManager;
|
|
||||||
private final Optional<BubblesManager> mBubblesManagerOptional;
|
|
||||||
private final Lazy<AssistManager> mAssistManagerLazy;
|
|
||||||
private final NotificationRemoteInputManager mRemoteInputManager;
|
|
||||||
private final GroupMembershipManager mGroupMembershipManager;
|
|
||||||
private final NotificationLockscreenUserManager mLockscreenUserManager;
|
|
||||||
private final ShadeController mShadeController;
|
|
||||||
private final KeyguardStateController mKeyguardStateController;
|
|
||||||
private final NotificationInterruptStateProvider mNotificationInterruptStateProvider;
|
|
||||||
private final LockPatternUtils mLockPatternUtils;
|
|
||||||
private final StatusBarRemoteInputCallback mRemoteInputCallback;
|
|
||||||
private final ActivityIntentHelper mActivityIntentHelper;;
|
|
||||||
private final MetricsLogger mMetricsLogger;
|
|
||||||
private final StatusBarNotificationActivityStarterLogger mLogger;
|
|
||||||
private final OnUserInteractionCallback mOnUserInteractionCallback;
|
|
||||||
private final NotifPipelineFlags mNotifPipelineFlags;
|
|
||||||
private StatusBar mStatusBar;
|
|
||||||
private NotificationPresenter mNotificationPresenter;
|
|
||||||
private NotificationPanelViewController mNotificationPanelViewController;
|
|
||||||
private ActivityLaunchAnimator mActivityLaunchAnimator;
|
|
||||||
private NotificationLaunchAnimatorControllerProvider mNotificationAnimationProvider;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
public Builder(
|
|
||||||
Context context,
|
|
||||||
CommandQueue commandQueue,
|
|
||||||
@Main Handler mainThreadHandler,
|
|
||||||
@UiBackground Executor uiBgExecutor,
|
|
||||||
NotificationEntryManager entryManager,
|
|
||||||
NotifPipeline notifPipeline,
|
|
||||||
NotificationVisibilityProvider visibilityProvider,
|
|
||||||
HeadsUpManagerPhone headsUpManager,
|
|
||||||
ActivityStarter activityStarter,
|
|
||||||
NotificationClickNotifier clickNotifier,
|
|
||||||
StatusBarStateController statusBarStateController,
|
|
||||||
StatusBarKeyguardViewManager statusBarKeyguardViewManager,
|
|
||||||
KeyguardManager keyguardManager,
|
|
||||||
IDreamManager dreamManager,
|
|
||||||
Optional<BubblesManager> bubblesManager,
|
|
||||||
Lazy<AssistManager> assistManagerLazy,
|
|
||||||
NotificationRemoteInputManager remoteInputManager,
|
|
||||||
GroupMembershipManager groupMembershipManager,
|
|
||||||
NotificationLockscreenUserManager lockscreenUserManager,
|
|
||||||
ShadeController shadeController,
|
|
||||||
KeyguardStateController keyguardStateController,
|
|
||||||
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
|
||||||
LockPatternUtils lockPatternUtils,
|
|
||||||
StatusBarRemoteInputCallback remoteInputCallback,
|
|
||||||
ActivityIntentHelper activityIntentHelper,
|
|
||||||
NotifPipelineFlags notifPipelineFlags,
|
|
||||||
MetricsLogger metricsLogger,
|
|
||||||
StatusBarNotificationActivityStarterLogger logger,
|
|
||||||
OnUserInteractionCallback onUserInteractionCallback) {
|
|
||||||
|
|
||||||
mContext = context;
|
|
||||||
mCommandQueue = commandQueue;
|
|
||||||
mMainThreadHandler = mainThreadHandler;
|
|
||||||
mUiBgExecutor = uiBgExecutor;
|
|
||||||
mEntryManager = entryManager;
|
|
||||||
mNotifPipeline = notifPipeline;
|
|
||||||
mVisibilityProvider = visibilityProvider;
|
|
||||||
mHeadsUpManager = headsUpManager;
|
|
||||||
mActivityStarter = activityStarter;
|
|
||||||
mClickNotifier = clickNotifier;
|
|
||||||
mStatusBarStateController = statusBarStateController;
|
|
||||||
mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
|
|
||||||
mKeyguardManager = keyguardManager;
|
|
||||||
mDreamManager = dreamManager;
|
|
||||||
mBubblesManagerOptional = bubblesManager;
|
|
||||||
mAssistManagerLazy = assistManagerLazy;
|
|
||||||
mRemoteInputManager = remoteInputManager;
|
|
||||||
mGroupMembershipManager = groupMembershipManager;
|
|
||||||
mLockscreenUserManager = lockscreenUserManager;
|
|
||||||
mShadeController = shadeController;
|
|
||||||
mKeyguardStateController = keyguardStateController;
|
|
||||||
mNotificationInterruptStateProvider = notificationInterruptStateProvider;
|
|
||||||
mLockPatternUtils = lockPatternUtils;
|
|
||||||
mRemoteInputCallback = remoteInputCallback;
|
|
||||||
mActivityIntentHelper = activityIntentHelper;
|
|
||||||
mNotifPipelineFlags = notifPipelineFlags;
|
|
||||||
mMetricsLogger = metricsLogger;
|
|
||||||
mLogger = logger;
|
|
||||||
mOnUserInteractionCallback = onUserInteractionCallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Sets the status bar to use as {@link StatusBar}. */
|
|
||||||
public Builder setStatusBar(StatusBar statusBar) {
|
|
||||||
mStatusBar = statusBar;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setNotificationPresenter(NotificationPresenter notificationPresenter) {
|
|
||||||
mNotificationPresenter = notificationPresenter;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Set the ActivityLaunchAnimator. */
|
|
||||||
public Builder setActivityLaunchAnimator(ActivityLaunchAnimator activityLaunchAnimator) {
|
|
||||||
mActivityLaunchAnimator = activityLaunchAnimator;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Set the NotificationLaunchAnimatorControllerProvider. */
|
|
||||||
public Builder setNotificationAnimatorControllerProvider(
|
|
||||||
NotificationLaunchAnimatorControllerProvider notificationAnimationProvider) {
|
|
||||||
mNotificationAnimationProvider = notificationAnimationProvider;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Set the NotificationPanelViewController. */
|
|
||||||
public Builder setNotificationPanelViewController(
|
|
||||||
NotificationPanelViewController notificationPanelViewController) {
|
|
||||||
mNotificationPanelViewController = notificationPanelViewController;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StatusBarNotificationActivityStarter build() {
|
|
||||||
return new StatusBarNotificationActivityStarter(
|
|
||||||
mContext,
|
|
||||||
mCommandQueue,
|
|
||||||
mMainThreadHandler,
|
|
||||||
mUiBgExecutor,
|
|
||||||
mEntryManager,
|
|
||||||
mNotifPipeline,
|
|
||||||
mVisibilityProvider,
|
|
||||||
mHeadsUpManager,
|
|
||||||
mActivityStarter,
|
|
||||||
mClickNotifier,
|
|
||||||
mStatusBarStateController,
|
|
||||||
mStatusBarKeyguardViewManager,
|
|
||||||
mKeyguardManager,
|
|
||||||
mDreamManager,
|
|
||||||
mBubblesManagerOptional,
|
|
||||||
mAssistManagerLazy,
|
|
||||||
mRemoteInputManager,
|
|
||||||
mGroupMembershipManager,
|
|
||||||
mLockscreenUserManager,
|
|
||||||
mShadeController,
|
|
||||||
mKeyguardStateController,
|
|
||||||
mNotificationInterruptStateProvider,
|
|
||||||
mLockPatternUtils,
|
|
||||||
mRemoteInputCallback,
|
|
||||||
mActivityIntentHelper,
|
|
||||||
mNotifPipelineFlags,
|
|
||||||
mMetricsLogger,
|
|
||||||
mLogger,
|
|
||||||
mOnUserInteractionCallback,
|
|
||||||
mStatusBar,
|
|
||||||
mNotificationPresenter,
|
|
||||||
mNotificationPanelViewController,
|
|
||||||
mActivityLaunchAnimator,
|
|
||||||
mNotificationAnimationProvider);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2022 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.phone;
|
||||||
|
|
||||||
|
import com.android.systemui.statusbar.notification.NotificationActivityStarter;
|
||||||
|
|
||||||
|
import dagger.Binds;
|
||||||
|
import dagger.Module;
|
||||||
|
|
||||||
|
@Module
|
||||||
|
public abstract class StatusBarNotificationActivityStarterModule {
|
||||||
|
@Binds
|
||||||
|
abstract NotificationActivityStarter bindActivityStarter(
|
||||||
|
StatusBarNotificationActivityStarter impl);
|
||||||
|
}
|
||||||
@@ -68,20 +68,25 @@ import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
|
|||||||
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
||||||
import com.android.systemui.statusbar.notification.row.NotificationGutsManager.OnSettingsClickListener;
|
import com.android.systemui.statusbar.notification.row.NotificationGutsManager.OnSettingsClickListener;
|
||||||
import com.android.systemui.statusbar.notification.row.NotificationInfo.CheckSaveListener;
|
import com.android.systemui.statusbar.notification.row.NotificationInfo.CheckSaveListener;
|
||||||
|
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
|
||||||
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.StatusBarComponent;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
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 java.util.List;
|
||||||
|
|
||||||
public class StatusBarNotificationPresenter implements NotificationPresenter,
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
@StatusBarComponent.StatusBarScope
|
||||||
|
class StatusBarNotificationPresenter implements NotificationPresenter,
|
||||||
ConfigurationController.ConfigurationListener,
|
ConfigurationController.ConfigurationListener,
|
||||||
NotificationRowBinderImpl.BindRowCallback,
|
NotificationRowBinderImpl.BindRowCallback,
|
||||||
CommandQueue.Callbacks {
|
CommandQueue.Callbacks {
|
||||||
private static final String TAG = "StatusBarNotificationPresenter";
|
private static final String TAG = "StatusBarNotificationPresenter";
|
||||||
|
|
||||||
private final ActivityStarter mActivityStarter = Dependency.get(ActivityStarter.class);
|
private final ActivityStarter mActivityStarter;
|
||||||
private final KeyguardStateController mKeyguardStateController;
|
private final KeyguardStateController mKeyguardStateController;
|
||||||
private final NotificationViewHierarchyManager mViewHierarchyManager;
|
private final NotificationViewHierarchyManager mViewHierarchyManager;
|
||||||
private final NotificationLockscreenUserManager mLockscreenUserManager;
|
private final NotificationLockscreenUserManager mLockscreenUserManager;
|
||||||
@@ -110,16 +115,19 @@ public class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
private final NotifPipelineFlags mNotifPipelineFlags;
|
private final NotifPipelineFlags mNotifPipelineFlags;
|
||||||
private final IStatusBarService mBarService;
|
private final IStatusBarService mBarService;
|
||||||
private final DynamicPrivacyController mDynamicPrivacyController;
|
private final DynamicPrivacyController mDynamicPrivacyController;
|
||||||
|
private final NotificationListContainer mNotifListContainer;
|
||||||
private boolean mReinflateNotificationsOnUserSwitched;
|
private boolean mReinflateNotificationsOnUserSwitched;
|
||||||
private boolean mDispatchUiModeChangeOnUserSwitched;
|
private boolean mDispatchUiModeChangeOnUserSwitched;
|
||||||
private TextView mNotificationPanelDebugText;
|
private TextView mNotificationPanelDebugText;
|
||||||
|
|
||||||
protected boolean mVrMode;
|
protected boolean mVrMode;
|
||||||
|
|
||||||
public StatusBarNotificationPresenter(Context context,
|
@Inject
|
||||||
|
StatusBarNotificationPresenter(Context context,
|
||||||
NotificationPanelViewController panel,
|
NotificationPanelViewController panel,
|
||||||
HeadsUpManagerPhone headsUp,
|
HeadsUpManagerPhone headsUp,
|
||||||
NotificationShadeWindowView statusBarWindow,
|
NotificationShadeWindowView statusBarWindow,
|
||||||
|
ActivityStarter activityStarter,
|
||||||
NotificationStackScrollLayoutController stackScrollerController,
|
NotificationStackScrollLayoutController stackScrollerController,
|
||||||
DozeScrimController dozeScrimController,
|
DozeScrimController dozeScrimController,
|
||||||
ScrimController scrimController,
|
ScrimController scrimController,
|
||||||
@@ -144,7 +152,10 @@ public class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
||||||
NotificationRemoteInputManager remoteInputManager,
|
NotificationRemoteInputManager remoteInputManager,
|
||||||
ConfigurationController configurationController,
|
ConfigurationController configurationController,
|
||||||
NotifPipelineFlags notifPipelineFlags) {
|
NotifPipelineFlags notifPipelineFlags,
|
||||||
|
NotificationRemoteInputManager.Callback remoteInputManagerCallback,
|
||||||
|
NotificationListContainer notificationListContainer) {
|
||||||
|
mActivityStarter = activityStarter;
|
||||||
mKeyguardStateController = keyguardStateController;
|
mKeyguardStateController = keyguardStateController;
|
||||||
mNotificationPanel = panel;
|
mNotificationPanel = panel;
|
||||||
mHeadsUpManager = headsUp;
|
mHeadsUpManager = headsUp;
|
||||||
@@ -175,6 +186,7 @@ public class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
mKeyguardManager = context.getSystemService(KeyguardManager.class);
|
mKeyguardManager = context.getSystemService(KeyguardManager.class);
|
||||||
mBarService = IStatusBarService.Stub.asInterface(
|
mBarService = IStatusBarService.Stub.asInterface(
|
||||||
ServiceManager.getService(Context.STATUS_BAR_SERVICE));
|
ServiceManager.getService(Context.STATUS_BAR_SERVICE));
|
||||||
|
mNotifListContainer = notificationListContainer;
|
||||||
|
|
||||||
IVrManager vrManager = IVrManager.Stub.asInterface(ServiceManager.getService(
|
IVrManager vrManager = IVrManager.Stub.asInterface(ServiceManager.getService(
|
||||||
Context.VR_SERVICE));
|
Context.VR_SERVICE));
|
||||||
@@ -186,14 +198,14 @@ public class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
remoteInputManager.setUpWithCallback(
|
remoteInputManager.setUpWithCallback(
|
||||||
Dependency.get(NotificationRemoteInputManager.Callback.class),
|
remoteInputManagerCallback,
|
||||||
mNotificationPanel.createRemoteInputDelegate());
|
mNotificationPanel.createRemoteInputDelegate());
|
||||||
|
|
||||||
initController.addPostInitTask(() -> {
|
initController.addPostInitTask(() -> {
|
||||||
mKeyguardIndicationController.init();
|
mKeyguardIndicationController.init();
|
||||||
mViewHierarchyManager.setUpWithPresenter(this,
|
mViewHierarchyManager.setUpWithPresenter(this,
|
||||||
stackScrollerController.getNotifStackController(),
|
stackScrollerController.getNotifStackController(),
|
||||||
stackScrollerController.getNotificationListContainer());
|
mNotifListContainer);
|
||||||
mNotifShadeEventSource.setShadeEmptiedCallback(this::maybeClosePanelForShadeEmptied);
|
mNotifShadeEventSource.setShadeEmptiedCallback(this::maybeClosePanelForShadeEmptied);
|
||||||
mNotifShadeEventSource.setNotifRemovedByUserCallback(this::maybeEndAmbientPulse);
|
mNotifShadeEventSource.setNotifRemovedByUserCallback(this::maybeEndAmbientPulse);
|
||||||
if (!mNotifPipelineFlags.isNewPipelineEnabled()) {
|
if (!mNotifPipelineFlags.isNewPipelineEnabled()) {
|
||||||
@@ -206,9 +218,8 @@ public class StatusBarNotificationPresenter implements NotificationPresenter,
|
|||||||
notificationInterruptStateProvider.addSuppressor(mInterruptSuppressor);
|
notificationInterruptStateProvider.addSuppressor(mInterruptSuppressor);
|
||||||
mLockscreenUserManager.setUpWithPresenter(this);
|
mLockscreenUserManager.setUpWithPresenter(this);
|
||||||
mMediaManager.setUpWithPresenter(this);
|
mMediaManager.setUpWithPresenter(this);
|
||||||
mGutsManager.setUpWithPresenter(this,
|
mGutsManager.setUpWithPresenter(
|
||||||
stackScrollerController.getNotificationListContainer(), mCheckSaveListener,
|
this, mNotifListContainer, mCheckSaveListener, mOnSettingsClickListener);
|
||||||
mOnSettingsClickListener);
|
|
||||||
// ForegroundServiceNotificationListener adds its listener in its constructor
|
// ForegroundServiceNotificationListener adds its listener in its constructor
|
||||||
// but we need to request it here in order for it to be instantiated.
|
// but we need to request it here in order for it to be instantiated.
|
||||||
// TODO: figure out how to do this correctly once Dependency.get() is gone.
|
// TODO: figure out how to do this correctly once Dependency.get() is gone.
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2022 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.phone;
|
||||||
|
|
||||||
|
import com.android.systemui.statusbar.NotificationPresenter;
|
||||||
|
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
|
||||||
|
|
||||||
|
import dagger.Binds;
|
||||||
|
import dagger.Module;
|
||||||
|
|
||||||
|
@Module
|
||||||
|
public abstract class StatusBarNotificationPresenterModule {
|
||||||
|
@Binds
|
||||||
|
abstract NotificationPresenter bindPresenter(StatusBarNotificationPresenter impl);
|
||||||
|
|
||||||
|
@Binds
|
||||||
|
abstract NotificationRowBinderImpl.BindRowCallback bindBindRowCallback(
|
||||||
|
StatusBarNotificationPresenter impl);
|
||||||
|
}
|
||||||
@@ -22,16 +22,23 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
|||||||
|
|
||||||
import com.android.keyguard.LockIconViewController;
|
import com.android.keyguard.LockIconViewController;
|
||||||
import com.android.systemui.biometrics.AuthRippleController;
|
import com.android.systemui.biometrics.AuthRippleController;
|
||||||
|
import com.android.systemui.statusbar.NotificationPresenter;
|
||||||
import com.android.systemui.statusbar.NotificationShelfController;
|
import com.android.systemui.statusbar.NotificationShelfController;
|
||||||
import com.android.systemui.statusbar.core.StatusBarInitializer;
|
import com.android.systemui.statusbar.core.StatusBarInitializer;
|
||||||
|
import com.android.systemui.statusbar.notification.NotificationActivityStarter;
|
||||||
|
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
|
||||||
import com.android.systemui.statusbar.notification.collection.render.StatusBarNotifPanelEventSourceModule;
|
import com.android.systemui.statusbar.notification.collection.render.StatusBarNotifPanelEventSourceModule;
|
||||||
|
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
||||||
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutListContainerModule;
|
||||||
import com.android.systemui.statusbar.phone.NotificationPanelViewController;
|
import com.android.systemui.statusbar.phone.NotificationPanelViewController;
|
||||||
import com.android.systemui.statusbar.phone.NotificationShadeWindowView;
|
import com.android.systemui.statusbar.phone.NotificationShadeWindowView;
|
||||||
import com.android.systemui.statusbar.phone.NotificationShadeWindowViewController;
|
import com.android.systemui.statusbar.phone.NotificationShadeWindowViewController;
|
||||||
import com.android.systemui.statusbar.phone.SplitShadeHeaderController;
|
import com.android.systemui.statusbar.phone.SplitShadeHeaderController;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarCommandQueueCallbacks;
|
import com.android.systemui.statusbar.phone.StatusBarCommandQueueCallbacks;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarHeadsUpChangeListener;
|
import com.android.systemui.statusbar.phone.StatusBarHeadsUpChangeListener;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarterModule;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarNotificationPresenterModule;
|
||||||
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
|
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
|
||||||
|
|
||||||
import java.lang.annotation.Documented;
|
import java.lang.annotation.Documented;
|
||||||
@@ -53,11 +60,15 @@ import dagger.Subcomponent;
|
|||||||
* outside the component. Should more items be moved *into* this component to avoid so many getters?
|
* outside the component. Should more items be moved *into* this component to avoid so many getters?
|
||||||
*/
|
*/
|
||||||
@Subcomponent(modules = {
|
@Subcomponent(modules = {
|
||||||
|
NotificationStackScrollLayoutListContainerModule.class,
|
||||||
StatusBarNotifPanelEventSourceModule.class,
|
StatusBarNotifPanelEventSourceModule.class,
|
||||||
StatusBarViewModule.class
|
StatusBarViewModule.class,
|
||||||
|
StatusBarNotificationActivityStarterModule.class,
|
||||||
|
StatusBarNotificationPresenterModule.class,
|
||||||
})
|
})
|
||||||
@StatusBarComponent.StatusBarScope
|
@StatusBarComponent.StatusBarScope
|
||||||
public interface StatusBarComponent {
|
public interface StatusBarComponent {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builder for {@link StatusBarComponent}.
|
* Builder for {@link StatusBarComponent}.
|
||||||
*/
|
*/
|
||||||
@@ -74,60 +85,58 @@ public interface StatusBarComponent {
|
|||||||
@Scope
|
@Scope
|
||||||
@interface StatusBarScope {}
|
@interface StatusBarScope {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs initialization logic after {@link StatusBarComponent} has been constructed.
|
||||||
|
*/
|
||||||
|
interface Startable {
|
||||||
|
void start();
|
||||||
|
void stop();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a {@link NotificationShadeWindowView}.
|
* Creates a {@link NotificationShadeWindowView}.
|
||||||
*/
|
*/
|
||||||
@StatusBarScope
|
|
||||||
NotificationShadeWindowView getNotificationShadeWindowView();
|
NotificationShadeWindowView getNotificationShadeWindowView();
|
||||||
|
|
||||||
/** */
|
/** */
|
||||||
@StatusBarScope
|
|
||||||
NotificationShelfController getNotificationShelfController();
|
NotificationShelfController getNotificationShelfController();
|
||||||
|
|
||||||
/** */
|
/** */
|
||||||
@StatusBarScope
|
|
||||||
NotificationStackScrollLayoutController getNotificationStackScrollLayoutController();
|
NotificationStackScrollLayoutController getNotificationStackScrollLayoutController();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a NotificationShadeWindowViewController.
|
* Creates a NotificationShadeWindowViewController.
|
||||||
*/
|
*/
|
||||||
@StatusBarScope
|
|
||||||
NotificationShadeWindowViewController getNotificationShadeWindowViewController();
|
NotificationShadeWindowViewController getNotificationShadeWindowViewController();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a NotificationPanelViewController.
|
* Creates a NotificationPanelViewController.
|
||||||
*/
|
*/
|
||||||
@StatusBarScope
|
|
||||||
NotificationPanelViewController getNotificationPanelViewController();
|
NotificationPanelViewController getNotificationPanelViewController();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a LockIconViewController. Must be init after creation.
|
* Creates a LockIconViewController. Must be init after creation.
|
||||||
*/
|
*/
|
||||||
@StatusBarScope
|
|
||||||
LockIconViewController getLockIconViewController();
|
LockIconViewController getLockIconViewController();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates an AuthRippleViewController. Must be init after creation.
|
* Creates an AuthRippleViewController. Must be init after creation.
|
||||||
*/
|
*/
|
||||||
@StatusBarScope
|
|
||||||
AuthRippleController getAuthRippleController();
|
AuthRippleController getAuthRippleController();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a StatusBarHeadsUpChangeListener.
|
* Creates a StatusBarHeadsUpChangeListener.
|
||||||
*/
|
*/
|
||||||
@StatusBarScope
|
|
||||||
StatusBarHeadsUpChangeListener getStatusBarHeadsUpChangeListener();
|
StatusBarHeadsUpChangeListener getStatusBarHeadsUpChangeListener();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a StatusBarCommandQueueCallbacks.
|
* Creates a StatusBarCommandQueueCallbacks.
|
||||||
*/
|
*/
|
||||||
@StatusBarScope
|
|
||||||
StatusBarCommandQueueCallbacks getStatusBarCommandQueueCallbacks();
|
StatusBarCommandQueueCallbacks getStatusBarCommandQueueCallbacks();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a SplitShadeHeaderController.
|
* Creates a SplitShadeHeaderController.
|
||||||
*/
|
*/
|
||||||
@StatusBarScope
|
|
||||||
SplitShadeHeaderController getSplitShadeHeaderController();
|
SplitShadeHeaderController getSplitShadeHeaderController();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -140,20 +149,18 @@ public interface StatusBarComponent {
|
|||||||
/**
|
/**
|
||||||
* Creates a StatusBarInitializer
|
* Creates a StatusBarInitializer
|
||||||
*/
|
*/
|
||||||
@StatusBarScope
|
|
||||||
StatusBarInitializer getStatusBarInitializer();
|
StatusBarInitializer getStatusBarInitializer();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set of startables to be run after a StatusBarComponent has been constructed.
|
* Set of startables to be run after a StatusBarComponent has been constructed.
|
||||||
*/
|
*/
|
||||||
@StatusBarScope
|
|
||||||
Set<Startable> getStartables();
|
Set<Startable> getStartables();
|
||||||
|
|
||||||
/**
|
NotificationActivityStarter getNotificationActivityStarter();
|
||||||
* Performs initialization logic after {@link StatusBarComponent} has been constructed.
|
|
||||||
*/
|
NotificationPresenter getNotificationPresenter();
|
||||||
interface Startable {
|
|
||||||
void start();
|
NotificationRowBinderImpl.BindRowCallback getBindRowCallback();
|
||||||
void stop();
|
|
||||||
}
|
NotificationListContainer getNotificationListContainer();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,7 +95,6 @@ import com.android.systemui.statusbar.phone.ShadeController;
|
|||||||
import com.android.systemui.statusbar.phone.StatusBar;
|
import com.android.systemui.statusbar.phone.StatusBar;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarHideIconsForBouncerManager;
|
import com.android.systemui.statusbar.phone.StatusBarHideIconsForBouncerManager;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter;
|
|
||||||
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy;
|
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
|
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
|
||||||
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
||||||
@@ -198,8 +197,6 @@ public interface StatusBarPhoneModule {
|
|||||||
CommandQueue commandQueue,
|
CommandQueue commandQueue,
|
||||||
StatusBarComponent.Factory statusBarComponentFactory,
|
StatusBarComponent.Factory statusBarComponentFactory,
|
||||||
PluginManager pluginManager,
|
PluginManager pluginManager,
|
||||||
StatusBarNotificationActivityStarter.Builder
|
|
||||||
statusBarNotificationActivityStarterBuilder,
|
|
||||||
ShadeController shadeController,
|
ShadeController shadeController,
|
||||||
StatusBarKeyguardViewManager statusBarKeyguardViewManager,
|
StatusBarKeyguardViewManager statusBarKeyguardViewManager,
|
||||||
ViewMediatorCallback viewMediatorCallback,
|
ViewMediatorCallback viewMediatorCallback,
|
||||||
@@ -296,7 +293,6 @@ public interface StatusBarPhoneModule {
|
|||||||
commandQueue,
|
commandQueue,
|
||||||
statusBarComponentFactory,
|
statusBarComponentFactory,
|
||||||
pluginManager,
|
pluginManager,
|
||||||
statusBarNotificationActivityStarterBuilder,
|
|
||||||
shadeController,
|
shadeController,
|
||||||
statusBarKeyguardViewManager,
|
statusBarKeyguardViewManager,
|
||||||
viewMediatorCallback,
|
viewMediatorCallback,
|
||||||
|
|||||||
@@ -130,6 +130,7 @@ import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
|||||||
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
|
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
|
||||||
import com.android.systemui.statusbar.notification.collection.legacy.NotificationGroupManagerLegacy;
|
import com.android.systemui.statusbar.notification.collection.legacy.NotificationGroupManagerLegacy;
|
||||||
import com.android.systemui.statusbar.notification.stack.AmbientState;
|
import com.android.systemui.statusbar.notification.stack.AmbientState;
|
||||||
|
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationRoundnessManager;
|
import com.android.systemui.statusbar.notification.stack.NotificationRoundnessManager;
|
||||||
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;
|
||||||
@@ -358,6 +359,8 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
|||||||
private NotificationShadeWindowController mNotificationShadeWindowController;
|
private NotificationShadeWindowController mNotificationShadeWindowController;
|
||||||
@Mock
|
@Mock
|
||||||
private SysUiState mSysUiState;
|
private SysUiState mSysUiState;
|
||||||
|
@Mock
|
||||||
|
private NotificationListContainer mNotificationListContainer;
|
||||||
private Optional<SysUIUnfoldComponent> mSysUIUnfoldComponent = Optional.empty();
|
private Optional<SysUIUnfoldComponent> mSysUIUnfoldComponent = Optional.empty();
|
||||||
private SysuiStatusBarStateController mStatusBarStateController;
|
private SysuiStatusBarStateController mStatusBarStateController;
|
||||||
private NotificationPanelViewController mNotificationPanelViewController;
|
private NotificationPanelViewController mNotificationPanelViewController;
|
||||||
@@ -542,7 +545,8 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
|||||||
mInteractionJankMonitor,
|
mInteractionJankMonitor,
|
||||||
mQsFrameTranslateController,
|
mQsFrameTranslateController,
|
||||||
mSysUiState,
|
mSysUiState,
|
||||||
mKeyguardUnlockAnimationController);
|
mKeyguardUnlockAnimationController,
|
||||||
|
mNotificationListContainer);
|
||||||
mNotificationPanelViewController.initDependencies(
|
mNotificationPanelViewController.initDependencies(
|
||||||
mStatusBar,
|
mStatusBar,
|
||||||
() -> {},
|
() -> {},
|
||||||
|
|||||||
@@ -107,10 +107,11 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
|
|||||||
mStatusBarKeyguardViewManager,
|
mStatusBarKeyguardViewManager,
|
||||||
mStatusBarWindowStateController,
|
mStatusBarWindowStateController,
|
||||||
mLockIconViewController,
|
mLockIconViewController,
|
||||||
Optional.of(mLowLightClockController)
|
Optional.of(mLowLightClockController),
|
||||||
|
mStatusBar,
|
||||||
|
mNotificationShadeWindowController
|
||||||
)
|
)
|
||||||
mController.setupExpandedStatusBar()
|
mController.setupExpandedStatusBar()
|
||||||
mController.setService(mStatusBar, mNotificationShadeWindowController)
|
|
||||||
|
|
||||||
mInteractionEventHandlerCaptor =
|
mInteractionEventHandlerCaptor =
|
||||||
ArgumentCaptor.forClass(InteractionEventHandler::class.java)
|
ArgumentCaptor.forClass(InteractionEventHandler::class.java)
|
||||||
|
|||||||
@@ -115,9 +115,10 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase {
|
|||||||
mStatusBarKeyguardViewManager,
|
mStatusBarKeyguardViewManager,
|
||||||
mStatusBarWindowStateController,
|
mStatusBarWindowStateController,
|
||||||
mLockIconViewController,
|
mLockIconViewController,
|
||||||
Optional.of(mLowLightClockController));
|
Optional.of(mLowLightClockController),
|
||||||
|
mStatusBar,
|
||||||
|
mNotificationShadeWindowController);
|
||||||
mController.setupExpandedStatusBar();
|
mController.setupExpandedStatusBar();
|
||||||
mController.setService(mStatusBar, mNotificationShadeWindowController);
|
|
||||||
mController.setDragDownHelper(mDragDownHelper);
|
mController.setDragDownHelper(mDragDownHelper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ public class StatusBarNotificationActivityStarterTest extends SysuiTestCase {
|
|||||||
mJankMonitor);
|
mJankMonitor);
|
||||||
|
|
||||||
mNotificationActivityStarter =
|
mNotificationActivityStarter =
|
||||||
new StatusBarNotificationActivityStarter.Builder(
|
new StatusBarNotificationActivityStarter(
|
||||||
getContext(),
|
getContext(),
|
||||||
mock(CommandQueue.class),
|
mock(CommandQueue.class),
|
||||||
mHandler,
|
mHandler,
|
||||||
@@ -229,18 +229,16 @@ public class StatusBarNotificationActivityStarterTest extends SysuiTestCase {
|
|||||||
mock(LockPatternUtils.class),
|
mock(LockPatternUtils.class),
|
||||||
mock(StatusBarRemoteInputCallback.class),
|
mock(StatusBarRemoteInputCallback.class),
|
||||||
mActivityIntentHelper,
|
mActivityIntentHelper,
|
||||||
|
|
||||||
mNotifPipelineFlags,
|
mNotifPipelineFlags,
|
||||||
mock(MetricsLogger.class),
|
mock(MetricsLogger.class),
|
||||||
mock(StatusBarNotificationActivityStarterLogger.class),
|
mock(StatusBarNotificationActivityStarterLogger.class),
|
||||||
mOnUserInteractionCallback)
|
mOnUserInteractionCallback,
|
||||||
.setStatusBar(mStatusBar)
|
mStatusBar,
|
||||||
.setNotificationPresenter(mock(NotificationPresenter.class))
|
mock(NotificationPresenter.class),
|
||||||
.setNotificationPanelViewController(
|
mock(NotificationPanelViewController.class),
|
||||||
mock(NotificationPanelViewController.class))
|
mActivityLaunchAnimator,
|
||||||
.setActivityLaunchAnimator(mActivityLaunchAnimator)
|
notificationAnimationProvider
|
||||||
.setNotificationAnimatorControllerProvider(notificationAnimationProvider)
|
);
|
||||||
.build();
|
|
||||||
|
|
||||||
// set up dismissKeyguardThenExecute to synchronously invoke the OnDismissAction arg
|
// set up dismissKeyguardThenExecute to synchronously invoke the OnDismissAction arg
|
||||||
doAnswer(mCallOnDismiss).when(mActivityStarter).dismissKeyguardThenExecute(
|
doAnswer(mCallOnDismiss).when(mActivityStarter).dismissKeyguardThenExecute(
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ 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;
|
||||||
|
import com.android.systemui.plugins.ActivityStarter;
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||||
import com.android.systemui.statusbar.CommandQueue;
|
import com.android.systemui.statusbar.CommandQueue;
|
||||||
import com.android.systemui.statusbar.KeyguardIndicationController;
|
import com.android.systemui.statusbar.KeyguardIndicationController;
|
||||||
@@ -101,19 +102,24 @@ public class StatusBarNotificationPresenterTest extends SysuiTestCase {
|
|||||||
mock(NotificationStackScrollLayoutController.class);
|
mock(NotificationStackScrollLayoutController.class);
|
||||||
when(stackScrollLayoutController.getView()).thenReturn(
|
when(stackScrollLayoutController.getView()).thenReturn(
|
||||||
mock(NotificationStackScrollLayout.class));
|
mock(NotificationStackScrollLayout.class));
|
||||||
when(stackScrollLayoutController.getNotificationListContainer()).thenReturn(
|
|
||||||
mock(NotificationListContainer.class));
|
|
||||||
when(notificationShadeWindowView.getResources()).thenReturn(mContext.getResources());
|
when(notificationShadeWindowView.getResources()).thenReturn(mContext.getResources());
|
||||||
|
|
||||||
mStatusBarNotificationPresenter = new StatusBarNotificationPresenter(mContext,
|
mStatusBarNotificationPresenter = new StatusBarNotificationPresenter(
|
||||||
mock(NotificationPanelViewController.class), mock(HeadsUpManagerPhone.class),
|
mContext,
|
||||||
notificationShadeWindowView, stackScrollLayoutController,
|
mock(NotificationPanelViewController.class),
|
||||||
mock(DozeScrimController.class), mock(ScrimController.class),
|
mock(HeadsUpManagerPhone.class),
|
||||||
mock(NotificationShadeWindowController.class), mock(DynamicPrivacyController.class),
|
notificationShadeWindowView,
|
||||||
|
mock(ActivityStarter.class),
|
||||||
|
stackScrollLayoutController,
|
||||||
|
mock(DozeScrimController.class),
|
||||||
|
mock(ScrimController.class),
|
||||||
|
mock(NotificationShadeWindowController.class),
|
||||||
|
mock(DynamicPrivacyController.class),
|
||||||
mock(KeyguardStateController.class),
|
mock(KeyguardStateController.class),
|
||||||
mock(KeyguardIndicationController.class),
|
mock(KeyguardIndicationController.class),
|
||||||
mStatusBar,
|
mStatusBar,
|
||||||
mock(ShadeControllerImpl.class), mock(LockscreenShadeTransitionController.class),
|
mock(ShadeControllerImpl.class),
|
||||||
|
mock(LockscreenShadeTransitionController.class),
|
||||||
mCommandQueue,
|
mCommandQueue,
|
||||||
mock(NotificationViewHierarchyManager.class),
|
mock(NotificationViewHierarchyManager.class),
|
||||||
mock(NotificationLockscreenUserManager.class),
|
mock(NotificationLockscreenUserManager.class),
|
||||||
@@ -128,7 +134,9 @@ public class StatusBarNotificationPresenterTest extends SysuiTestCase {
|
|||||||
mNotificationInterruptStateProvider,
|
mNotificationInterruptStateProvider,
|
||||||
mock(NotificationRemoteInputManager.class),
|
mock(NotificationRemoteInputManager.class),
|
||||||
mock(ConfigurationController.class),
|
mock(ConfigurationController.class),
|
||||||
mock(NotifPipelineFlags.class));
|
mock(NotifPipelineFlags.class),
|
||||||
|
mock(NotificationRemoteInputManager.Callback.class),
|
||||||
|
mock(NotificationListContainer.class));
|
||||||
mInitController.executePostInitTasks();
|
mInitController.executePostInitTasks();
|
||||||
ArgumentCaptor<NotificationInterruptSuppressor> suppressorCaptor =
|
ArgumentCaptor<NotificationInterruptSuppressor> suppressorCaptor =
|
||||||
ArgumentCaptor.forClass(NotificationInterruptSuppressor.class);
|
ArgumentCaptor.forClass(NotificationInterruptSuppressor.class);
|
||||||
|
|||||||
@@ -258,8 +258,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private ViewMediatorCallback mViewMediatorCallback;
|
@Mock private ViewMediatorCallback mViewMediatorCallback;
|
||||||
@Mock private StatusBarTouchableRegionManager mStatusBarTouchableRegionManager;
|
@Mock private StatusBarTouchableRegionManager mStatusBarTouchableRegionManager;
|
||||||
@Mock private ScreenPinningRequest mScreenPinningRequest;
|
@Mock private ScreenPinningRequest mScreenPinningRequest;
|
||||||
@Mock private StatusBarNotificationActivityStarter.Builder
|
|
||||||
mStatusBarNotificationActivityStarterBuilder;
|
|
||||||
@Mock private PluginDependencyProvider mPluginDependencyProvider;
|
@Mock private PluginDependencyProvider mPluginDependencyProvider;
|
||||||
@Mock private KeyguardDismissUtil mKeyguardDismissUtil;
|
@Mock private KeyguardDismissUtil mKeyguardDismissUtil;
|
||||||
@Mock private ExtensionController mExtensionController;
|
@Mock private ExtensionController mExtensionController;
|
||||||
@@ -336,8 +334,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
mContext.setTheme(R.style.Theme_SystemUI_LightWallpaper);
|
mContext.setTheme(R.style.Theme_SystemUI_LightWallpaper);
|
||||||
|
|
||||||
when(mStackScrollerController.getView()).thenReturn(mStackScroller);
|
when(mStackScrollerController.getView()).thenReturn(mStackScroller);
|
||||||
when(mStackScrollerController.getNotificationListContainer()).thenReturn(
|
|
||||||
mNotificationListContainer);
|
|
||||||
when(mStackScroller.generateLayoutParams(any())).thenReturn(new LayoutParams(0, 0));
|
when(mStackScroller.generateLayoutParams(any())).thenReturn(new LayoutParams(0, 0));
|
||||||
when(mNotificationPanelViewController.getView()).thenReturn(mNotificationPanelView);
|
when(mNotificationPanelViewController.getView()).thenReturn(mNotificationPanelView);
|
||||||
when(mNotificationPanelView.getLayoutParams()).thenReturn(new LayoutParams(0, 0));
|
when(mNotificationPanelView.getLayoutParams()).thenReturn(new LayoutParams(0, 0));
|
||||||
@@ -445,7 +441,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
mCommandQueue,
|
mCommandQueue,
|
||||||
mStatusBarComponentFactory,
|
mStatusBarComponentFactory,
|
||||||
mPluginManager,
|
mPluginManager,
|
||||||
mStatusBarNotificationActivityStarterBuilder,
|
|
||||||
mShadeController,
|
mShadeController,
|
||||||
mStatusBarKeyguardViewManager,
|
mStatusBarKeyguardViewManager,
|
||||||
mViewMediatorCallback,
|
mViewMediatorCallback,
|
||||||
|
|||||||
Reference in New Issue
Block a user