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

Commit 906a93fd authored by Mark Renouf's avatar Mark Renouf
Browse files

Pulls all dependencies into constructor of StatusBarNotificationActivityStarter

Test: atest StatusBarTest
Change-Id: I42fa954c00a835052286fbfc00c1d5baca19bc5f
parent d0166415
Loading
Loading
Loading
Loading
+17 −5
Original line number Diff line number Diff line
@@ -122,6 +122,7 @@ import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.statusbar.StatusBarIcon;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.keyguard.ViewMediatorCallback;
@@ -215,7 +216,6 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceP
import com.android.systemui.statusbar.policy.ExtensionController;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.KeyguardMonitor;
import com.android.systemui.statusbar.policy.KeyguardMonitorImpl;
import com.android.systemui.statusbar.policy.KeyguardUserSwitcher;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
@@ -533,8 +533,7 @@ public class StatusBar extends SystemUI implements DemoMode,
    private KeyguardUserSwitcher mKeyguardUserSwitcher;
    protected UserSwitcherController mUserSwitcherController;
    private NetworkController mNetworkController;
    private KeyguardMonitorImpl mKeyguardMonitor
            = (KeyguardMonitorImpl) Dependency.get(KeyguardMonitor.class);
    private KeyguardMonitor mKeyguardMonitor = Dependency.get(KeyguardMonitor.class);
    private BatteryController mBatteryController;
    protected boolean mPanelExpanded;
    private UiModeManager mUiModeManager;
@@ -1058,8 +1057,21 @@ public class StatusBar extends SystemUI implements DemoMode,
        mNotificationShelf.setOnActivatedListener(mPresenter);
        mRemoteInputManager.getController().addCallback(mStatusBarWindowController);

        mNotificationActivityStarter = new StatusBarNotificationActivityStarter(
                mContext, mNotificationPanel, mPresenter, mHeadsUpManager, mActivityLaunchAnimator);
        final StatusBarRemoteInputCallback mStatusBarRemoteInputCallback =
                (StatusBarRemoteInputCallback) Dependency.get(
                        NotificationRemoteInputManager.Callback.class);
        final ShadeController shadeController = Dependency.get(ShadeController.class);
        final ActivityStarter activityStarter = Dependency.get(ActivityStarter.class);

        mNotificationActivityStarter = new StatusBarNotificationActivityStarter(mContext,
                mCommandQueue, mAssistManager, mNotificationPanel, mPresenter, mEntryManager,
                mHeadsUpManager, activityStarter, mActivityLaunchAnimator,
                mBarService, mStatusBarStateController, mKeyguardManager, mDreamManager,
                mRemoteInputManager, mStatusBarRemoteInputCallback, mGroupManager,
                mLockscreenUserManager, shadeController, mKeyguardMonitor,
                mNotificationInterruptionStateProvider, mMetricsLogger,
                new LockPatternUtils(mContext));

        mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);

        mEntryManager.setRowBinder(rowBinder);
+47 −33
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.systemui.statusbar.phone;

import static com.android.systemui.Dependency.MAIN_HANDLER;
import static com.android.systemui.SysUiServiceProvider.getComponent;
import static com.android.systemui.statusbar.phone.StatusBar.getActivityOptions;

import android.app.ActivityManager;
@@ -32,9 +31,7 @@ import android.content.Intent;
import android.os.AsyncTask;
import android.os.Looper;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.service.dreams.DreamService;
import android.service.dreams.IDreamManager;
import android.service.notification.StatusBarNotification;
import android.text.TextUtils;
@@ -78,27 +75,18 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit
    private static final String TAG = "NotificationClickHandler";
    protected static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

    private final AssistManager mAssistManager = Dependency.get(AssistManager.class);
    private final NotificationGroupManager mGroupManager =
            Dependency.get(NotificationGroupManager.class);
    private final StatusBarRemoteInputCallback mStatusBarRemoteInputCallback =
            (StatusBarRemoteInputCallback) Dependency.get(
                    NotificationRemoteInputManager.Callback.class);
    private final NotificationRemoteInputManager mRemoteInputManager =
            Dependency.get(NotificationRemoteInputManager.class);
    private final NotificationLockscreenUserManager mLockscreenUserManager =
            Dependency.get(NotificationLockscreenUserManager.class);
    private final ShadeController mShadeController = Dependency.get(ShadeController.class);
    private final KeyguardMonitor mKeyguardMonitor = Dependency.get(KeyguardMonitor.class);
    private final ActivityStarter mActivityStarter = Dependency.get(ActivityStarter.class);
    private final NotificationEntryManager mEntryManager =
            Dependency.get(NotificationEntryManager.class);
    private final StatusBarStateController mStatusBarStateController =
            Dependency.get(StatusBarStateController.class);
    private final NotificationInterruptionStateProvider mNotificationInterruptionStateProvider =
            Dependency.get(NotificationInterruptionStateProvider.class);
    private final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class);

    private final AssistManager mAssistManager;
    private final NotificationGroupManager mGroupManager;
    private final StatusBarRemoteInputCallback mStatusBarRemoteInputCallback;
    private final NotificationRemoteInputManager mRemoteInputManager;
    private final NotificationLockscreenUserManager mLockscreenUserManager;
    private final ShadeController mShadeController;
    private final KeyguardMonitor mKeyguardMonitor;
    private final ActivityStarter mActivityStarter;
    private final NotificationEntryManager mEntryManager;
    private final StatusBarStateController mStatusBarStateController;
    private final NotificationInterruptionStateProvider mNotificationInterruptionStateProvider;
    private final MetricsLogger mMetricsLogger;
    private final Context mContext;
    private final NotificationPanelView mNotificationPanel;
    private final NotificationPresenter mPresenter;
@@ -113,29 +101,55 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit
    private boolean mIsCollapsingToShowActivityOverLockscreen;

    public StatusBarNotificationActivityStarter(Context context,
            CommandQueue commandQueue,
            AssistManager assistManager,
            NotificationPanelView panel,
            NotificationPresenter presenter,
            NotificationEntryManager entryManager,
            HeadsUpManagerPhone headsUpManager,
            ActivityLaunchAnimator activityLaunchAnimator) {
            ActivityStarter activityStarter,
            ActivityLaunchAnimator activityLaunchAnimator,
            IStatusBarService statusBarService,
            StatusBarStateController statusBarStateController,
            KeyguardManager keyguardManager,
            IDreamManager dreamManager,
            NotificationRemoteInputManager remoteInputManager,
            StatusBarRemoteInputCallback remoteInputCallback,
            NotificationGroupManager groupManager,
            NotificationLockscreenUserManager lockscreenUserManager,
            ShadeController shadeController,
            KeyguardMonitor keyguardMonitor,
            NotificationInterruptionStateProvider notificationInterruptionStateProvider,
            MetricsLogger metricsLogger,
            LockPatternUtils lockPatternUtils) {
        mContext = context;
        mNotificationPanel = panel;
        mPresenter = presenter;
        mLockPatternUtils = new LockPatternUtils(context);
        mHeadsUpManager = headsUpManager;
        mKeyguardManager = context.getSystemService(KeyguardManager.class);
        mActivityLaunchAnimator = activityLaunchAnimator;
        mBarService = IStatusBarService.Stub.asInterface(
                ServiceManager.getService(Context.STATUS_BAR_SERVICE));
        mCommandQueue = getComponent(context, CommandQueue.class);
        mDreamManager = IDreamManager.Stub.asInterface(
                ServiceManager.checkService(DreamService.DREAM_SERVICE));

        mBarService = statusBarService;
        mCommandQueue = commandQueue;
        mKeyguardManager = keyguardManager;
        mDreamManager = dreamManager;
        mRemoteInputManager = remoteInputManager;
        mLockscreenUserManager = lockscreenUserManager;
        mShadeController = shadeController;
        mKeyguardMonitor = keyguardMonitor;
        mActivityStarter = activityStarter;
        mEntryManager = entryManager;
        mStatusBarStateController = statusBarStateController;
        mNotificationInterruptionStateProvider = notificationInterruptionStateProvider;
        mMetricsLogger = metricsLogger;
        mAssistManager = assistManager;
        mGroupManager = groupManager;
        mLockPatternUtils = lockPatternUtils;
        mEntryManager.addNotificationEntryListener(new NotificationEntryListener() {
            @Override
            public void onPendingEntryAdded(NotificationEntry entry) {
                handleFullScreenIntent(entry);
            }
        });
        mStatusBarRemoteInputCallback = remoteInputCallback;
    }

    /**
+19 −0
Original line number Diff line number Diff line
@@ -29,6 +29,25 @@ public interface KeyguardMonitor extends CallbackController<Callback> {
    long getKeyguardFadingAwayDelay();
    long calculateGoingToFullShadeDelay();

    default boolean isDeviceInteractive() {
        return false;
    }

    default void setLaunchTransitionFadingAway(boolean b) {
    }

    default void notifyKeyguardGoingAway(boolean b) {
    }

    default void notifyKeyguardFadingAway(long delay, long fadeoutDuration) {
    }

    default void notifyKeyguardDoneFading() {
    }

    default void notifyKeyguardState(boolean showing, boolean methodSecure, boolean occluded) {
    }

    interface Callback {
        void onKeyguardShowingChanged();
    }
+2 −5
Original line number Diff line number Diff line
@@ -75,7 +75,6 @@ import com.android.systemui.SystemUIFactory;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.UiOffloadThread;
import com.android.systemui.appops.AppOpsController;
import com.android.systemui.appops.AppOpsControllerImpl;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.classifier.FalsingManager;
@@ -112,7 +111,6 @@ import com.android.systemui.statusbar.notification.stack.NotificationListContain
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardMonitor;
import com.android.systemui.statusbar.policy.KeyguardMonitorImpl;
import com.android.systemui.statusbar.policy.UserSwitcherController;

import org.junit.Before;
@@ -161,7 +159,6 @@ public class StatusBarTest extends SysuiTestCase {
    @Mock private NotificationPresenter mNotificationPresenter;
    @Mock
    private NotificationEntryListener mEntryListener;
    @Mock private BubbleController mBubbleController;
    @Mock
    private NotificationFilter mNotificationFilter;
    @Mock
@@ -192,8 +189,8 @@ public class StatusBarTest extends SysuiTestCase {
                mViewHierarchyManager);
        mDependency.injectTestDependency(VisualStabilityManager.class, mVisualStabilityManager);
        mDependency.injectTestDependency(NotificationListener.class, mNotificationListener);
        mDependency.injectTestDependency(KeyguardMonitor.class, mock(KeyguardMonitorImpl.class));
        mDependency.injectTestDependency(AppOpsController.class, mock(AppOpsControllerImpl.class));
        mDependency.injectTestDependency(KeyguardMonitor.class, mock(KeyguardMonitor.class));
        mDependency.injectTestDependency(AppOpsController.class, mock(AppOpsController.class));
        mDependency.injectTestDependency(StatusBarStateController.class, mStatusBarStateController);
        mDependency.injectTestDependency(DeviceProvisionedController.class,
                mDeviceProvisionedController);