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

Commit 6f157bd6 authored by Sergey Nikolaienkov's avatar Sergey Nikolaienkov
Browse files

Introduce StatusBarPhoneModule

This CL is the 2nd in the series of CLs which intend to "unbind" StatusBar on TV.
In order to make StatusBar really optional and thus to allow us to unbind it, we also need to make some of the classes that depends on it optional as well. For all these cases we need to move from @Inject-annotated contructors to @Provides annotated methods. For this we are introducing StatusBarNotificationModule.

Change-Id: Id56f970d21323f49e859715b6874f5cd773aa62a
Test: make SystemUI; atest SystemUITests
Bug: 146188087
parent f6ad6329
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.Context;
import android.os.Handler;
import android.os.PowerManager;
import android.util.DisplayMetrics;
import android.view.IWindowManager;

import com.android.internal.logging.MetricsLogger;
import com.android.keyguard.KeyguardUpdateMonitor;
@@ -33,6 +34,7 @@ import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.car.CarServiceProvider;
import com.android.systemui.car.SystemUIPrimaryWindowController;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dagger.qualifiers.UiBackground;
import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.keyguard.KeyguardViewMediator;
@@ -67,6 +69,7 @@ import com.android.systemui.statusbar.notification.VisualStabilityManager;
import com.android.systemui.statusbar.notification.init.NotificationsController;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.notification.row.RowContentBindStage;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.BiometricUnlockController;
import com.android.systemui.statusbar.phone.DozeParameters;
@@ -79,6 +82,7 @@ import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.phone.LightsOutNotifController;
import com.android.systemui.statusbar.phone.LockscreenLockIconController;
import com.android.systemui.statusbar.phone.LockscreenWallpaper;
import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.ScrimController;
@@ -281,4 +285,24 @@ public class CarStatusBarModule {
                carNavigationBarController,
                flingAnimationUtilsBuilder);
    }


    /** */
    @Singleton
    @Provides
    static AutoHideController newAutoHideController(Context context,
            @Main Handler handler,
            NotificationRemoteInputManager notificationRemoteInputManager,
            IWindowManager iWindowManager) {
        return new AutoHideController(context, handler, notificationRemoteInputManager,
                iWindowManager);
    }

    /** */
    @Singleton
    @Provides
    static NotificationGroupAlertTransferHelper provideNotificationGroupAlertTransferHelper(
            RowContentBindStage bindStage) {
        return new NotificationGroupAlertTransferHelper(bindStage);
    }
}
+0 −13
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import android.os.HandlerThread;
import android.os.ServiceManager;
import android.util.DisplayMetrics;
import android.view.Choreographer;
import android.view.IWindowManager;
import android.view.LayoutInflater;
import android.view.WindowManager;

@@ -46,8 +45,6 @@ import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.shared.system.DevicePolicyManagerWrapper;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.NavigationBarController;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.ConfigurationControllerImpl;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.DataSaverController;
@@ -160,16 +157,6 @@ public class DependencyProvider {
        return new ConfigurationControllerImpl(context);
    }

    @Singleton
    @Provides
    public AutoHideController provideAutoHideController(Context context,
            @Main Handler mainHandler,
            NotificationRemoteInputManager notificationRemoteInputManager,
            IWindowManager iWindowManager) {
        return new AutoHideController(context, mainHandler, notificationRemoteInputManager,
                iWindowManager);
    }

    @Singleton
    @Provides
    public ActivityManagerWrapper provideActivityManagerWrapper() {
+3 −3
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.notification.InstantAppNotifier;
import com.android.systemui.statusbar.notification.dagger.NotificationsModule;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBarModule;
import com.android.systemui.statusbar.phone.dagger.StatusBarPhoneModule;
import com.android.systemui.statusbar.tv.TvStatusBar;
import com.android.systemui.theme.ThemeOverlayController;
import com.android.systemui.toast.ToastUI;
@@ -50,7 +50,7 @@ import dagger.multibindings.IntoMap;
/**
 * SystemUI objects that are injectable should go here.
 */
@Module(includes = {RecentsModule.class, StatusBarModule.class, NotificationsModule.class})
@Module(includes = {RecentsModule.class, StatusBarPhoneModule.class, NotificationsModule.class})
public abstract class SystemUIBinder {
    /** Inject into AuthController. */
    @Binds
+4 −3
Original line number Diff line number Diff line
@@ -25,8 +25,7 @@ import android.view.MotionEvent;

import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.statusbar.NotificationRemoteInputManager;

import javax.inject.Inject;
import com.android.systemui.statusbar.phone.dagger.StatusBarPhoneModule;

/** A controller to control all auto-hide things. */
public class AutoHideController {
@@ -51,7 +50,9 @@ public class AutoHideController {
        }
    };

    @Inject
    /**
     * Injected constructor. See {@link StatusBarPhoneModule}.
     */
    public AutoHideController(Context context, @Main Handler handler,
            NotificationRemoteInputManager notificationRemoteInputManager,
            IWindowManager iWindowManager) {
+4 −5
Original line number Diff line number Diff line
@@ -36,21 +36,18 @@ import com.android.systemui.statusbar.notification.row.RowContentBindParams;
import com.android.systemui.statusbar.notification.row.RowContentBindStage;
import com.android.systemui.statusbar.phone.NotificationGroupManager.NotificationGroup;
import com.android.systemui.statusbar.phone.NotificationGroupManager.OnGroupChangeListener;
import com.android.systemui.statusbar.phone.dagger.StatusBarPhoneModule;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;

import java.util.ArrayList;
import java.util.Objects;

import javax.inject.Inject;
import javax.inject.Singleton;

/**
 * A helper class dealing with the alert interactions between {@link NotificationGroupManager} and
 * {@link HeadsUpManager}. In particular, this class deals with keeping
 * the correct notification in a group alerting based off the group suppression.
 */
@Singleton
public class NotificationGroupAlertTransferHelper implements OnHeadsUpChangedListener,
        StateListener {

@@ -76,7 +73,9 @@ public class NotificationGroupAlertTransferHelper implements OnHeadsUpChangedLis

    private boolean mIsDozing;

    @Inject
    /**
     * Injected constructor. See {@link StatusBarPhoneModule}.
     */
    public NotificationGroupAlertTransferHelper(RowContentBindStage bindStage) {
        Dependency.get(StatusBarStateController.class).addCallback(this);
        mRowContentBindStage = bindStage;
Loading