Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f353aecc authored by Caitlin Shkuratov's avatar Caitlin Shkuratov Committed by Android (Google) Code Review
Browse files

Merge changes from topics "caitlinshk-csc-notifanim", "caitlinshk-cscqc-inject" into main

* changes:
  [CS] Make the notification activity animators singletons.
  [CS] Inject CentralSurfacesCommandQueueCallbacks directly into CS.
parents c752d081 0199760a
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -24,15 +24,12 @@ import com.android.systemui.statusbar.notification.data.repository.NotificationE
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone
import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent
import com.android.systemui.statusbar.policy.HeadsUpUtil
import javax.inject.Inject
import kotlin.math.ceil
import kotlin.math.max

/** A provider of [NotificationLaunchAnimatorController]. */
@CentralSurfacesComponent.CentralSurfacesScope
class NotificationLaunchAnimatorControllerProvider @Inject constructor(
class NotificationLaunchAnimatorControllerProvider(
    private val notificationExpansionRepository: NotificationExpansionRepository,
    private val notificationListContainer: NotificationListContainer,
    private val headsUpManager: HeadsUpManagerPhone,
+25 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.notification.dagger;

import android.content.Context;

import com.android.internal.jank.InteractionJankMonitor;
import com.android.systemui.R;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.UiBackground;
@@ -25,6 +26,8 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.shade.ShadeEventsModule;
import com.android.systemui.shade.ShadeExpansionStateManager;
import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.notification.NotificationActivityStarter;
import com.android.systemui.statusbar.notification.NotificationLaunchAnimatorControllerProvider;
import com.android.systemui.statusbar.notification.VisibilityLocationProvider;
import com.android.systemui.statusbar.notification.collection.NotifInflaterImpl;
import com.android.systemui.statusbar.notification.collection.NotifLiveDataStore;
@@ -50,6 +53,7 @@ import com.android.systemui.statusbar.notification.collection.render.GroupMember
import com.android.systemui.statusbar.notification.collection.render.NotifGutsViewManager;
import com.android.systemui.statusbar.notification.collection.render.NotifShadeEventSource;
import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider;
import com.android.systemui.statusbar.notification.data.repository.NotificationExpansionRepository;
import com.android.systemui.statusbar.notification.icon.ConversationIconManager;
import com.android.systemui.statusbar.notification.icon.IconManager;
import com.android.systemui.statusbar.notification.init.NotificationsController;
@@ -69,7 +73,9 @@ import com.android.systemui.statusbar.notification.stack.NotificationSectionsMan
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
import com.android.systemui.statusbar.notification.stack.StackScrollAlgorithm;
import com.android.systemui.statusbar.notification.stack.ui.viewmodel.NotificationListViewModelModule;
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter;

import dagger.Binds;
import dagger.Module;
@@ -152,6 +158,10 @@ public interface NotificationsModule {
    @Binds
    GroupExpansionManager provideGroupExpansionManager(GroupExpansionManagerImpl impl);

    /** Provides an instance of {@link NotificationActivityStarter}. */
    @Binds
    NotificationActivityStarter bindActivityStarter(StatusBarNotificationActivityStarter impl);

    /** Initializes the notification data pipeline (can be disabled via config). */
    @SysUISingleton
    @Provides
@@ -174,6 +184,21 @@ public interface NotificationsModule {
        return nsslController.getNotificationListContainer();
    }

    /** Provides notification launch animator. */
    @Provides
    @SysUISingleton
    static NotificationLaunchAnimatorControllerProvider provideNotifLaunchAnimControllerProvider(
            NotificationExpansionRepository notificationExpansionRepository,
            NotificationListContainer notificationListContainer,
            HeadsUpManagerPhone headsUpManager,
            InteractionJankMonitor jankMonitor) {
        return new NotificationLaunchAnimatorControllerProvider(
                notificationExpansionRepository,
                notificationListContainer,
                headsUpManager,
                jankMonitor);
    }

    /**
     * Provide the active notification collection managing the notifications to render.
     */
+2 −2
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.R;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.camera.CameraIntents;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.DisplayId;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.flags.FeatureFlags;
@@ -67,7 +68,6 @@ import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.VibratorHelper;
import com.android.systemui.statusbar.disableflags.DisableFlagsLogger;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -80,7 +80,7 @@ import java.util.Optional;
import javax.inject.Inject;

/** */
@CentralSurfacesComponent.CentralSurfacesScope
@SysUISingleton
public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callbacks {
    private final CentralSurfaces mCentralSurfaces;
    private final Context mContext;
+10 −14
Original line number Diff line number Diff line
@@ -308,6 +308,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
    private final Context mContext;
    private final LockscreenShadeTransitionController mLockscreenShadeTransitionController;
    private final DeviceStateManager mDeviceStateManager;
    private final Lazy<CentralSurfacesCommandQueueCallbacks> mCommandQueueCallbacksLazy;
    private CentralSurfacesCommandQueueCallbacks mCommandQueueCallbacks;
    private float mTransitionToFullShadeProgress = 0f;
    private final NotificationListContainer mNotifListContainer;
@@ -622,9 +623,9 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
    private final SysuiStatusBarStateController mStatusBarStateController;

    private final ActivityLaunchAnimator mActivityLaunchAnimator;
    private NotificationLaunchAnimatorControllerProvider mNotificationAnimationProvider;
    private final NotificationLaunchAnimatorControllerProvider mNotificationAnimationProvider;
    private final NotificationPresenter mPresenter;
    private NotificationActivityStarter mNotificationActivityStarter;
    private final NotificationActivityStarter mNotificationActivityStarter;
    private final Lazy<NotificationShadeDepthController> mNotificationShadeDepthControllerLazy;
    private final Optional<Bubbles> mBubblesOptional;
    private final Lazy<NoteTaskController> mNoteTaskControllerLazy;
@@ -725,6 +726,8 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
            NotificationShelfController notificationShelfController,
            NotificationStackScrollLayoutController notificationStackScrollLayoutController,
            NotificationPresenter notificationPresenter,
            NotificationActivityStarter notificationActivityStarter,
            NotificationLaunchAnimatorControllerProvider notifLaunchAnimatorControllerProvider,
            NotificationExpansionRepository notificationExpansionRepository,
            DozeParameters dozeParameters,
            ScrimController scrimController,
@@ -739,6 +742,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
            VolumeComponent volumeComponent,
            CommandQueue commandQueue,
            CentralSurfacesComponent.Factory centralSurfacesComponentFactory,
            Lazy<CentralSurfacesCommandQueueCallbacks> commandQueueCallbacksLazy,
            PluginManager pluginManager,
            ShadeController shadeController,
            StatusBarKeyguardViewManager statusBarKeyguardViewManager,
@@ -833,6 +837,8 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
        mStackScroller = mStackScrollerController.getView();
        mNotifListContainer = mStackScrollerController.getNotificationListContainer();
        mPresenter = notificationPresenter;
        mNotificationActivityStarter = notificationActivityStarter;
        mNotificationAnimationProvider = notifLaunchAnimatorControllerProvider;
        mNotificationExpansionRepository = notificationExpansionRepository;
        mDozeServiceHost = dozeServiceHost;
        mPowerManager = powerManager;
@@ -847,6 +853,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
        mVolumeComponent = volumeComponent;
        mCommandQueue = commandQueue;
        mCentralSurfacesComponentFactory = centralSurfacesComponentFactory;
        mCommandQueueCallbacksLazy = commandQueueCallbacksLazy;
        mPluginManager = pluginManager;
        mShadeController = shadeController;
        mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
@@ -1547,11 +1554,6 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
        // Set up the initial notification state.
        mActivityLaunchAnimator.setCallback(mActivityLaunchAnimatorCallback);
        mActivityLaunchAnimator.addListener(mActivityLaunchAnimatorListener);
        mNotificationAnimationProvider = new NotificationLaunchAnimatorControllerProvider(
                mNotificationExpansionRepository,
                mNotifListContainer,
                mHeadsUpManager,
                mJankMonitor);
        mRemoteInputManager.addControllerCallback(mNotificationShadeWindowController);
        mStackScrollerController.setNotificationActivityStarter(mNotificationActivityStarter);
        mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);
@@ -1608,17 +1610,11 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
        mShadeController.setNotificationShadeWindowViewController(
                getNotificationShadeWindowViewController());
        mBackActionInteractor.setup(mQsController, mShadeSurface);
        mNotificationActivityStarter = mCentralSurfacesComponent.getNotificationActivityStarter();

        // Listen for demo mode changes
        mDemoModeController.addCallback(mDemoModeCallback);

        if (mCommandQueueCallbacks != null) {
            mCommandQueue.removeCallback(mCommandQueueCallbacks);
        }
        mCommandQueueCallbacks =
                mCentralSurfacesComponent.getCentralSurfacesCommandQueueCallbacks();
        // Connect in to the status bar manager service
        mCommandQueueCallbacks = mCommandQueueCallbacksLazy.get();
        mCommandQueue.addCallback(mCommandQueueCallbacks);
    }

+3 −3
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import com.android.systemui.ActivityIntentHelper;
import com.android.systemui.EventLogTags;
import com.android.systemui.animation.ActivityLaunchAnimator;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.DisplayId;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.plugins.ActivityStarter;
@@ -75,7 +76,6 @@ import com.android.systemui.statusbar.notification.interruption.NotificationInte
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRowDragController;
import com.android.systemui.statusbar.notification.row.OnUserInteractionCallback;
import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent;
import com.android.systemui.statusbar.policy.HeadsUpUtil;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.wmshell.BubblesManager;
@@ -92,8 +92,8 @@ import javax.inject.Inject;
/**
 * Status bar implementation of {@link NotificationActivityStarter}.
 */
@CentralSurfacesComponent.CentralSurfacesScope
class StatusBarNotificationActivityStarter implements NotificationActivityStarter {
@SysUISingleton
public class StatusBarNotificationActivityStarter implements NotificationActivityStarter {

    private final Context mContext;
    private final int mDisplayId;
Loading