[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
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user