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

Commit 05f4eb4e authored by Daniel Akinola's avatar Daniel Akinola Committed by Android (Google) Code Review
Browse files

Merge "Ensure that activities started from dual shade launch on correct display" into main

parents e2e8e87f 720135fe
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ import com.android.systemui.shade.ShadeController;
import com.android.systemui.shade.ShadeDisplayAware;
import com.android.systemui.shade.domain.interactor.PanelExpansionInteractor;
import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractor;
import com.android.systemui.shade.domain.interactor.ShadeDialogContextInteractor;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.NotificationClickNotifier;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
@@ -116,6 +117,7 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit
    private final static String TAG = "StatusBarNotificationActivityStarter";

    private final Context mContext;
    private final ShadeDialogContextInteractor mContextInteractor;

    private final Handler mMainThreadHandler;
    private final Executor mUiBgExecutor;
@@ -156,6 +158,7 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit
    @Inject
    StatusBarNotificationActivityStarter(
            @ShadeDisplayAware Context context,
            ShadeDialogContextInteractor contextInteractor,
            @Main Handler mainThreadHandler,
            @Background Executor uiBgExecutor,
            NotificationVisibilityProvider visibilityProvider,
@@ -188,6 +191,7 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit
            PowerInteractor powerInteractor,
            UserTracker userTracker) {
        mContext = context;
        mContextInteractor = contextInteractor;
        mMainThreadHandler = mainThreadHandler;
        mUiBgExecutor = uiBgExecutor;
        mVisibilityProvider = visibilityProvider;
@@ -491,7 +495,7 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit
            boolean animate,
            boolean isActivityIntent) {
        mLogger.logStartNotificationIntent(entry);
        final int displayId = mContext.getDisplayId();
        final int displayId = mContextInteractor.getContext().getDisplayId();
        try {
            ActivityTransitionAnimator.Controller animationController =
                    new StatusBarTransitionAnimatorController(
@@ -532,7 +536,7 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit
    public void startNotificationGutsIntent(@NonNull final Intent intent, final int appUid,
            @NonNull ExpandableNotificationRow row) {
        boolean animate = mActivityStarter.shouldAnimateLaunch(true /* isActivityIntent */);
        final int displayId = mContext.getDisplayId();
        final int displayId = mContextInteractor.getContext().getDisplayId();
        ActivityStarter.OnDismissAction onDismissAction = new ActivityStarter.OnDismissAction() {
            @Override
            public boolean onDismiss() {
@@ -571,7 +575,7 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit
    @Override
    public void startHistoryIntent(View view, boolean showHistory) {
        ModesEmptyShadeFix.assertInLegacyMode();
        final int displayId = mContext.getDisplayId();
        final int displayId = mContextInteractor.getContext().getDisplayId();
        boolean animate = mActivityStarter.shouldAnimateLaunch(true /* isActivityIntent */);
        ActivityStarter.OnDismissAction onDismissAction = new ActivityStarter.OnDismissAction() {
            @Override
@@ -621,7 +625,7 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit

    @Override
    public void startSettingsIntent(@NonNull View view, @NonNull SettingsIntent intentInfo) {
        final int displayId = mContext.getDisplayId();
        final int displayId = mContextInteractor.getContext().getDisplayId();
        boolean animate = mActivityStarter.shouldAnimateLaunch(true /* isActivityIntent */);
        ActivityStarter.OnDismissAction onDismissAction = new ActivityStarter.OnDismissAction() {
            @Override
+5 −4
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ import com.android.systemui.settings.UserTracker;
import com.android.systemui.shade.ShadeControllerImpl;
import com.android.systemui.shade.data.repository.FakeShadeRepository;
import com.android.systemui.shade.data.repository.ShadeAnimationRepository;
import com.android.systemui.shade.domain.interactor.FakeShadeDialogContextInteractor;
import com.android.systemui.shade.domain.interactor.PanelExpansionInteractor;
import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractorLegacyImpl;
import com.android.systemui.statusbar.CommandQueue;
@@ -171,6 +172,7 @@ public class StatusBarNotificationActivityStarterTest extends SysuiTestCase {
    private final FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
    private ExpandableNotificationRow mNotificationRow;
    private ExpandableNotificationRow mBubbleNotificationRow;
    private FakeShadeDialogContextInteractor mContextInteractor;

    private final Answer<Void> mCallOnDismiss = answerVoid(
            (OnDismissAction dismissAction, Runnable cancel,
@@ -187,6 +189,8 @@ public class StatusBarNotificationActivityStarterTest extends SysuiTestCase {
                mDependency,
                TestableLooper.get(this));

        mContextInteractor = new FakeShadeDialogContextInteractor(mContext);

        // Create standard notification with contentIntent
        mNotificationRow = notificationTestHelper.createRow();
        StatusBarNotification sbn = mNotificationRow.getEntry().getSbn();
@@ -199,10 +203,6 @@ public class StatusBarNotificationActivityStarterTest extends SysuiTestCase {
        bubbleSbn.getNotification().contentIntent = mContentIntent;
        bubbleSbn.getNotification().flags |= Notification.FLAG_AUTO_CANCEL;

//        ArrayList<NotificationEntry> activeNotifications = new ArrayList<>();
//        activeNotifications.add(mNotificationRow.getEntry());
//        activeNotifications.add(mBubbleNotificationRow.getEntry());
//        when(mEntryManager.getVisibleNotifications()).thenReturn(activeNotifications);
        when(mStatusBarStateController.getState()).thenReturn(StatusBarState.SHADE);
        when(mOnUserInteractionCallback.registerFutureDismissal(eq(mNotificationRow.getEntry()),
                anyInt())).thenReturn(mFutureDismissalRunnable);
@@ -232,6 +232,7 @@ public class StatusBarNotificationActivityStarterTest extends SysuiTestCase {
        mNotificationActivityStarter =
                new StatusBarNotificationActivityStarter(
                        getContext(),
                        mContextInteractor,
                        mHandler,
                        mUiBgExecutor,
                        mVisibilityProvider,
+2 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.systemui.kosmos.Kosmos
import com.android.systemui.plugins.activityStarter
import com.android.systemui.power.domain.interactor.powerInteractor
import com.android.systemui.settings.userTracker
import com.android.systemui.shade.data.repository.shadeDialogContextInteractor
import com.android.systemui.shade.domain.interactor.panelExpansionInteractor
import com.android.systemui.shade.domain.interactor.shadeAnimationInteractor
import com.android.systemui.shade.shadeController
@@ -52,6 +53,7 @@ val Kosmos.statusBarNotificationActivityStarter by
    Kosmos.Fixture {
        StatusBarNotificationActivityStarter(
            applicationContext,
            shadeDialogContextInteractor,
            fakeExecutorHandler,
            fakeExecutor,
            notificationVisibilityProvider,