1 /*
2  * Copyright (C) 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.systemui.statusbar.phone.dagger;
18 
19 import com.android.keyguard.KeyguardUpdateMonitor;
20 import com.android.systemui.dagger.qualifiers.Main;
21 import com.android.systemui.dump.DumpManager;
22 import com.android.systemui.flags.FeatureFlags;
23 import com.android.systemui.plugins.statusbar.StatusBarStateController;
24 import com.android.systemui.shade.ShadeExpansionStateManager;
25 import com.android.systemui.shade.ShadeViewController;
26 import com.android.systemui.statusbar.CommandQueue;
27 import com.android.systemui.statusbar.OperatorNameViewController;
28 import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
29 import com.android.systemui.statusbar.phone.NotificationIconAreaController;
30 import com.android.systemui.statusbar.phone.StatusBarHideIconsForBouncerManager;
31 import com.android.systemui.statusbar.phone.StatusBarIconController;
32 import com.android.systemui.statusbar.phone.StatusBarLocationPublisher;
33 import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
34 import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragmentLogger;
35 import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentComponent;
36 import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
37 import com.android.systemui.statusbar.pipeline.shared.ui.binder.CollapsedStatusBarViewBinder;
38 import com.android.systemui.statusbar.pipeline.shared.ui.viewmodel.CollapsedStatusBarViewModel;
39 import com.android.systemui.statusbar.policy.KeyguardStateController;
40 import com.android.systemui.statusbar.window.StatusBarWindowStateController;
41 import com.android.systemui.util.CarrierConfigTracker;
42 import com.android.systemui.util.settings.SecureSettings;
43 
44 import dagger.Module;
45 import dagger.Provides;
46 
47 import java.util.concurrent.Executor;
48 
49 import javax.inject.Named;
50 
51 /**
52  * A module for {@link CentralSurfacesComponent.CentralSurfacesScope} components.
53  *
54  * @deprecated CentralSurfacesScope will be removed shortly (b/277762009). Classes should be
55  *   annotated with @SysUISingleton instead.
56  */
57 @Module(subcomponents = StatusBarFragmentComponent.class)
58 @Deprecated
59 public abstract class StatusBarViewModule {
60 
61     public static final String STATUS_BAR_FRAGMENT = "status_bar_fragment";
62 
63     /**
64      * Creates a new {@link CollapsedStatusBarFragment}.
65      *
66      * **IMPORTANT**: This method intentionally does not have
67      * {@link CentralSurfacesComponent.CentralSurfacesScope}, which means a new fragment *will* be
68      * created each time this method is called. This is intentional because we need fragments to
69      * re-created in certain lifecycle scenarios.
70      *
71      * This provider is {@link Named} such that it does not conflict with the provider inside of
72      * {@link StatusBarFragmentComponent}.
73      */
74     @Provides
75     @Named(STATUS_BAR_FRAGMENT)
createCollapsedStatusBarFragment( StatusBarFragmentComponent.Factory statusBarFragmentComponentFactory, OngoingCallController ongoingCallController, SystemStatusAnimationScheduler animationScheduler, StatusBarLocationPublisher locationPublisher, NotificationIconAreaController notificationIconAreaController, ShadeExpansionStateManager shadeExpansionStateManager, FeatureFlags featureFlags, StatusBarIconController statusBarIconController, StatusBarIconController.DarkIconManager.Factory darkIconManagerFactory, CollapsedStatusBarViewModel collapsedStatusBarViewModel, CollapsedStatusBarViewBinder collapsedStatusBarViewBinder, StatusBarHideIconsForBouncerManager statusBarHideIconsForBouncerManager, KeyguardStateController keyguardStateController, ShadeViewController shadeViewController, StatusBarStateController statusBarStateController, CommandQueue commandQueue, CarrierConfigTracker carrierConfigTracker, CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger, OperatorNameViewController.Factory operatorNameViewControllerFactory, SecureSettings secureSettings, @Main Executor mainExecutor, DumpManager dumpManager, StatusBarWindowStateController statusBarWindowStateController, KeyguardUpdateMonitor keyguardUpdateMonitor )76     public static CollapsedStatusBarFragment createCollapsedStatusBarFragment(
77             StatusBarFragmentComponent.Factory statusBarFragmentComponentFactory,
78             OngoingCallController ongoingCallController,
79             SystemStatusAnimationScheduler animationScheduler,
80             StatusBarLocationPublisher locationPublisher,
81             NotificationIconAreaController notificationIconAreaController,
82             ShadeExpansionStateManager shadeExpansionStateManager,
83             FeatureFlags featureFlags,
84             StatusBarIconController statusBarIconController,
85             StatusBarIconController.DarkIconManager.Factory darkIconManagerFactory,
86             CollapsedStatusBarViewModel collapsedStatusBarViewModel,
87             CollapsedStatusBarViewBinder collapsedStatusBarViewBinder,
88             StatusBarHideIconsForBouncerManager statusBarHideIconsForBouncerManager,
89             KeyguardStateController keyguardStateController,
90             ShadeViewController shadeViewController,
91             StatusBarStateController statusBarStateController,
92             CommandQueue commandQueue,
93             CarrierConfigTracker carrierConfigTracker,
94             CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
95             OperatorNameViewController.Factory operatorNameViewControllerFactory,
96             SecureSettings secureSettings,
97             @Main Executor mainExecutor,
98             DumpManager dumpManager,
99             StatusBarWindowStateController statusBarWindowStateController,
100             KeyguardUpdateMonitor keyguardUpdateMonitor
101     ) {
102         return new CollapsedStatusBarFragment(statusBarFragmentComponentFactory,
103                 ongoingCallController,
104                 animationScheduler,
105                 locationPublisher,
106                 notificationIconAreaController,
107                 shadeExpansionStateManager,
108                 featureFlags,
109                 statusBarIconController,
110                 darkIconManagerFactory,
111                 collapsedStatusBarViewModel,
112                 collapsedStatusBarViewBinder,
113                 statusBarHideIconsForBouncerManager,
114                 keyguardStateController,
115                 shadeViewController,
116                 statusBarStateController,
117                 commandQueue,
118                 carrierConfigTracker,
119                 collapsedStatusBarFragmentLogger,
120                 operatorNameViewControllerFactory,
121                 secureSettings,
122                 mainExecutor,
123                 dumpManager,
124                 statusBarWindowStateController,
125                 keyguardUpdateMonitor);
126     }
127 }
128