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

Commit 7c9b6f45 authored by Mark Renouf's avatar Mark Renouf Committed by Android (Google) Code Review
Browse files

Merge "Pulls all dependencies into constructor of StatusBarNotificationActivityStarter"

parents 38f6c843 906a93fd
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;
@@ -1057,8 +1056,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);