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

Commit 74f9052f authored by Caitlin Shkuratov's avatar Caitlin Shkuratov
Browse files

[CS] Have SBNotifActivityStarter inject display ID directly.

Bug: 277764509
Bug: 277762009
Test: restart sysui while device unfolded > verified via logging that
CentralSurfacesImpl and SBNAS have the same display ID.
Test: restart sysui while device folded > verified same
Test: verified tapping on a notif launches the notif's intent
Test: verified tapping on "History" button in shade opens notification
history
Test: atest StatusBarNotificationActivityStarterTest

Change-Id: Ie71007b3ddadd7fd98b02fe1e5a76b800bc3b64c
parent e2f2d9ab
Loading
Loading
Loading
Loading
+8 −8
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.qualifiers.DisplayId;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.power.domain.interactor.PowerInteractor;
@@ -95,6 +96,7 @@ import javax.inject.Inject;
class StatusBarNotificationActivityStarter implements NotificationActivityStarter {

    private final Context mContext;
    private final int mDisplayId;

    private final Handler mMainThreadHandler;
    private final Executor mUiBgExecutor;
@@ -121,7 +123,6 @@ class StatusBarNotificationActivityStarter implements NotificationActivityStarte
    private final MetricsLogger mMetricsLogger;
    private final StatusBarNotificationActivityStarterLogger mLogger;

    private final CentralSurfaces mCentralSurfaces;
    private final NotificationPresenter mPresenter;
    private final ShadeViewController mShadeViewController;
    private final NotificationShadeWindowController mNotificationShadeWindowController;
@@ -136,6 +137,7 @@ class StatusBarNotificationActivityStarter implements NotificationActivityStarte
    @Inject
    StatusBarNotificationActivityStarter(
            Context context,
            @DisplayId int displayId,
            Handler mainThreadHandler,
            Executor uiBgExecutor,
            NotificationVisibilityProvider visibilityProvider,
@@ -158,7 +160,6 @@ class StatusBarNotificationActivityStarter implements NotificationActivityStarte
            MetricsLogger metricsLogger,
            StatusBarNotificationActivityStarterLogger logger,
            OnUserInteractionCallback onUserInteractionCallback,
            CentralSurfaces centralSurfaces,
            NotificationPresenter presenter,
            ShadeViewController shadeViewController,
            NotificationShadeWindowController notificationShadeWindowController,
@@ -169,6 +170,7 @@ class StatusBarNotificationActivityStarter implements NotificationActivityStarte
            FeatureFlags featureFlags,
            UserTracker userTracker) {
        mContext = context;
        mDisplayId = displayId;
        mMainThreadHandler = mainThreadHandler;
        mUiBgExecutor = uiBgExecutor;
        mVisibilityProvider = visibilityProvider;
@@ -193,8 +195,6 @@ class StatusBarNotificationActivityStarter implements NotificationActivityStarte
        mMetricsLogger = metricsLogger;
        mLogger = logger;
        mOnUserInteractionCallback = onUserInteractionCallback;
        // TODO: use KeyguardStateController#isOccluded to remove this dependency
        mCentralSurfaces = centralSurfaces;
        mPresenter = presenter;
        mShadeViewController = shadeViewController;
        mActivityLaunchAnimator = activityLaunchAnimator;
@@ -456,11 +456,11 @@ class StatusBarNotificationActivityStarter implements NotificationActivityStarte
                        long eventTime = row.getAndResetLastActionUpTime();
                        Bundle options = eventTime > 0
                                ? getActivityOptions(
                                mCentralSurfaces.getDisplayId(),
                                mDisplayId,
                                adapter,
                                mKeyguardStateController.isShowing(),
                                eventTime)
                                : getActivityOptions(mCentralSurfaces.getDisplayId(), adapter);
                                : getActivityOptions(mDisplayId, adapter);
                        int result = intent.sendAndReturnResult(mContext, 0, fillInIntent, null,
                                null, null, options);
                        mLogger.logSendPendingIntent(entry, intent, result);
@@ -495,7 +495,7 @@ class StatusBarNotificationActivityStarter implements NotificationActivityStarte
                            (adapter) -> TaskStackBuilder.create(mContext)
                                    .addNextIntentWithParentStack(intent)
                                    .startActivities(getActivityOptions(
                                            mCentralSurfaces.getDisplayId(),
                                            mDisplayId,
                                            adapter),
                                            new UserHandle(UserHandle.getUserId(appUid))));
                });
@@ -543,7 +543,7 @@ class StatusBarNotificationActivityStarter implements NotificationActivityStarte
                    mActivityLaunchAnimator.startIntentWithAnimation(animationController, animate,
                            intent.getPackage(),
                            (adapter) -> tsb.startActivities(
                                    getActivityOptions(mCentralSurfaces.getDisplayId(), adapter),
                                    getActivityOptions(mDisplayId, adapter),
                                    mUserTracker.getUserHandle()));
                });
                return true;
+3 −3
Original line number Diff line number Diff line
@@ -116,6 +116,8 @@ import java.util.Optional;
@TestableLooper.RunWithLooper(setAsMainLooper = true)
public class StatusBarNotificationActivityStarterTest extends SysuiTestCase {

    private static final int DISPLAY_ID = 0;

    @Mock
    private AssistManager mAssistManager;
    @Mock
@@ -130,8 +132,6 @@ public class StatusBarNotificationActivityStarterTest extends SysuiTestCase {
    @Mock
    private NotificationRemoteInputManager mRemoteInputManager;
    @Mock
    private CentralSurfaces mCentralSurfaces;
    @Mock
    private KeyguardStateController mKeyguardStateController;
    @Mock
    private NotificationInterruptStateProvider mNotificationInterruptStateProvider;
@@ -226,6 +226,7 @@ public class StatusBarNotificationActivityStarterTest extends SysuiTestCase {
        mNotificationActivityStarter =
                new StatusBarNotificationActivityStarter(
                        getContext(),
                        DISPLAY_ID,
                        mHandler,
                        mUiBgExecutor,
                        mVisibilityProvider,
@@ -248,7 +249,6 @@ public class StatusBarNotificationActivityStarterTest extends SysuiTestCase {
                        mock(MetricsLogger.class),
                        mock(StatusBarNotificationActivityStarterLogger.class),
                        mOnUserInteractionCallback,
                        mCentralSurfaces,
                        mock(NotificationPresenter.class),
                        mock(ShadeViewController.class),
                        mock(NotificationShadeWindowController.class),