Merge "[Status Bar Refactor] Define a new dagger component that gets re-created each time CollapsedStatusBarFragment is re-created." into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
fe4103f50d
@@ -66,6 +66,7 @@ import com.android.systemui.statusbar.notification.row.dagger.NotificationShelfC
|
|||||||
import com.android.systemui.statusbar.phone.ShadeController;
|
import com.android.systemui.statusbar.phone.ShadeController;
|
||||||
import com.android.systemui.statusbar.phone.StatusBar;
|
import com.android.systemui.statusbar.phone.StatusBar;
|
||||||
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentComponent;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||||
import com.android.systemui.statusbar.policy.ZenModeController;
|
import com.android.systemui.statusbar.policy.ZenModeController;
|
||||||
@@ -124,6 +125,7 @@ import dagger.Provides;
|
|||||||
},
|
},
|
||||||
subcomponents = {
|
subcomponents = {
|
||||||
StatusBarComponent.class,
|
StatusBarComponent.class,
|
||||||
|
StatusBarFragmentComponent.class,
|
||||||
NotificationRowComponent.class,
|
NotificationRowComponent.class,
|
||||||
DozeComponent.class,
|
DozeComponent.class,
|
||||||
ExpandableNotificationRowComponent.class,
|
ExpandableNotificationRowComponent.class,
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import com.android.systemui.Dumpable;
|
|||||||
import com.android.systemui.dagger.SysUISingleton;
|
import com.android.systemui.dagger.SysUISingleton;
|
||||||
import com.android.systemui.dump.DumpManager;
|
import com.android.systemui.dump.DumpManager;
|
||||||
import com.android.systemui.qs.QSFragment;
|
import com.android.systemui.qs.QSFragment;
|
||||||
import com.android.systemui.statusbar.phone.CollapsedStatusBarFragment;
|
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||||
|
|
||||||
import java.io.FileDescriptor;
|
import java.io.FileDescriptor;
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ import java.lang.annotation.Retention;
|
|||||||
import javax.inject.Qualifier;
|
import javax.inject.Qualifier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link LogBuffer} for
|
* A {@link LogBuffer} for {@link
|
||||||
* {@link com.android.systemui.statusbar.phone.CollapsedStatusBarFragment}-related messages.
|
* com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment}-related messages.
|
||||||
*/
|
*/
|
||||||
@Qualifier
|
@Qualifier
|
||||||
@Documented
|
@Documented
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ public class LogModule {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides a logging buffer for
|
* Provides a logging buffer for
|
||||||
* {@link com.android.systemui.statusbar.phone.CollapsedStatusBarFragment}.
|
* {@link com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment}.
|
||||||
*/
|
*/
|
||||||
@Provides
|
@Provides
|
||||||
@SysUISingleton
|
@SysUISingleton
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.android.systemui.log.LogBuffer
|
|||||||
import com.android.systemui.log.LogLevel
|
import com.android.systemui.log.LogLevel
|
||||||
import com.android.systemui.log.dagger.QSFragmentDisableLog
|
import com.android.systemui.log.dagger.QSFragmentDisableLog
|
||||||
import com.android.systemui.statusbar.DisableFlagsLogger
|
import com.android.systemui.statusbar.DisableFlagsLogger
|
||||||
import com.android.systemui.statusbar.phone.CollapsedStatusBarFragment
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
/** A helper class for logging disable flag changes made in [QSFragment]. */
|
/** A helper class for logging disable flag changes made in [QSFragment]. */
|
||||||
|
|||||||
@@ -172,6 +172,7 @@ import com.android.systemui.statusbar.notification.stack.NotificationStackScroll
|
|||||||
import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
|
import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
|
||||||
import com.android.systemui.statusbar.phone.LockscreenGestureLogger.LockscreenUiEvent;
|
import com.android.systemui.statusbar.phone.LockscreenGestureLogger.LockscreenUiEvent;
|
||||||
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelState;
|
import com.android.systemui.statusbar.phone.panelstate.PanelState;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||||
|
|||||||
@@ -136,7 +136,6 @@ import com.android.systemui.SystemUI;
|
|||||||
import com.android.systemui.animation.ActivityLaunchAnimator;
|
import com.android.systemui.animation.ActivityLaunchAnimator;
|
||||||
import com.android.systemui.animation.DelegateLaunchAnimatorController;
|
import com.android.systemui.animation.DelegateLaunchAnimatorController;
|
||||||
import com.android.systemui.assist.AssistManager;
|
import com.android.systemui.assist.AssistManager;
|
||||||
import com.android.systemui.battery.BatteryMeterViewController;
|
|
||||||
import com.android.systemui.biometrics.AuthRippleController;
|
import com.android.systemui.biometrics.AuthRippleController;
|
||||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||||
import com.android.systemui.camera.CameraIntents;
|
import com.android.systemui.camera.CameraIntents;
|
||||||
@@ -216,6 +215,9 @@ import com.android.systemui.statusbar.notification.stack.NotificationStackScroll
|
|||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
||||||
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
||||||
import com.android.systemui.statusbar.phone.dagger.StatusBarPhoneModule;
|
import com.android.systemui.statusbar.phone.dagger.StatusBarPhoneModule;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragmentLogger;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentComponent;
|
||||||
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
||||||
import com.android.systemui.statusbar.policy.BatteryController;
|
import com.android.systemui.statusbar.policy.BatteryController;
|
||||||
@@ -487,6 +489,7 @@ public class StatusBar extends SystemUI implements
|
|||||||
private final DozeParameters mDozeParameters;
|
private final DozeParameters mDozeParameters;
|
||||||
private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
|
private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
|
||||||
private final StatusBarComponent.Factory mStatusBarComponentFactory;
|
private final StatusBarComponent.Factory mStatusBarComponentFactory;
|
||||||
|
private final StatusBarFragmentComponent.Factory mStatusBarFragmentComponentFactory;
|
||||||
private final PluginManager mPluginManager;
|
private final PluginManager mPluginManager;
|
||||||
private final Optional<LegacySplitScreen> mSplitScreenOptional;
|
private final Optional<LegacySplitScreen> mSplitScreenOptional;
|
||||||
private final StatusBarNotificationActivityStarter.Builder
|
private final StatusBarNotificationActivityStarter.Builder
|
||||||
@@ -671,7 +674,6 @@ public class StatusBar extends SystemUI implements
|
|||||||
|
|
||||||
private final ActivityIntentHelper mActivityIntentHelper;
|
private final ActivityIntentHelper mActivityIntentHelper;
|
||||||
private NotificationStackScrollLayoutController mStackScrollerController;
|
private NotificationStackScrollLayoutController mStackScrollerController;
|
||||||
private BatteryMeterViewController mBatteryMeterViewController;
|
|
||||||
|
|
||||||
private final ColorExtractor.OnColorsChangedListener mOnColorsChangedListener =
|
private final ColorExtractor.OnColorsChangedListener mOnColorsChangedListener =
|
||||||
(extractor, which) -> updateTheme();
|
(extractor, which) -> updateTheme();
|
||||||
@@ -743,6 +745,7 @@ public class StatusBar extends SystemUI implements
|
|||||||
CommandQueue commandQueue,
|
CommandQueue commandQueue,
|
||||||
CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
|
CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
|
||||||
StatusBarComponent.Factory statusBarComponentFactory,
|
StatusBarComponent.Factory statusBarComponentFactory,
|
||||||
|
StatusBarFragmentComponent.Factory statusBarFragmentComponentFactory,
|
||||||
PluginManager pluginManager,
|
PluginManager pluginManager,
|
||||||
Optional<LegacySplitScreen> splitScreenOptional,
|
Optional<LegacySplitScreen> splitScreenOptional,
|
||||||
LightsOutNotifController lightsOutNotifController,
|
LightsOutNotifController lightsOutNotifController,
|
||||||
@@ -847,6 +850,7 @@ public class StatusBar extends SystemUI implements
|
|||||||
mCommandQueue = commandQueue;
|
mCommandQueue = commandQueue;
|
||||||
mCollapsedStatusBarFragmentLogger = collapsedStatusBarFragmentLogger;
|
mCollapsedStatusBarFragmentLogger = collapsedStatusBarFragmentLogger;
|
||||||
mStatusBarComponentFactory = statusBarComponentFactory;
|
mStatusBarComponentFactory = statusBarComponentFactory;
|
||||||
|
mStatusBarFragmentComponentFactory = statusBarFragmentComponentFactory;
|
||||||
mPluginManager = pluginManager;
|
mPluginManager = pluginManager;
|
||||||
mSplitScreenOptional = splitScreenOptional;
|
mSplitScreenOptional = splitScreenOptional;
|
||||||
mStatusBarNotificationActivityStarterBuilder = statusBarNotificationActivityStarterBuilder;
|
mStatusBarNotificationActivityStarterBuilder = statusBarNotificationActivityStarterBuilder;
|
||||||
@@ -1131,28 +1135,21 @@ public class StatusBar extends SystemUI implements
|
|||||||
mPluginDependencyProvider.allowPluginDependency(StatusBarStateController.class);
|
mPluginDependencyProvider.allowPluginDependency(StatusBarStateController.class);
|
||||||
mStatusBarWindowController.getFragmentHostManager()
|
mStatusBarWindowController.getFragmentHostManager()
|
||||||
.addTagListener(CollapsedStatusBarFragment.TAG, (tag, fragment) -> {
|
.addTagListener(CollapsedStatusBarFragment.TAG, (tag, fragment) -> {
|
||||||
CollapsedStatusBarFragment statusBarFragment =
|
StatusBarFragmentComponent statusBarFragmentComponent =
|
||||||
(CollapsedStatusBarFragment) fragment;
|
((CollapsedStatusBarFragment) fragment).getStatusBarFragmentComponent();
|
||||||
|
if (statusBarFragmentComponent == null) {
|
||||||
|
throw new IllegalStateException(
|
||||||
|
"CollapsedStatusBarFragment should have a valid component");
|
||||||
|
}
|
||||||
|
|
||||||
PhoneStatusBarView oldStatusBarView = mStatusBarView;
|
mStatusBarView = statusBarFragmentComponent.getPhoneStatusBarView();
|
||||||
mStatusBarView = (PhoneStatusBarView) statusBarFragment.getView();
|
|
||||||
|
|
||||||
|
// TODO(b/205609837): Migrate this to StatusBarFragmentComponent.
|
||||||
mPhoneStatusBarViewController = mPhoneStatusBarViewControllerFactory
|
mPhoneStatusBarViewController = mPhoneStatusBarViewControllerFactory
|
||||||
.create(mStatusBarView, mNotificationPanelViewController
|
.create(mStatusBarView, mNotificationPanelViewController
|
||||||
.getStatusBarTouchEventHandler());
|
.getStatusBarTouchEventHandler());
|
||||||
mPhoneStatusBarViewController.init();
|
mPhoneStatusBarViewController.init();
|
||||||
|
|
||||||
mBatteryMeterViewController = new BatteryMeterViewController(
|
|
||||||
mStatusBarView.findViewById(R.id.battery),
|
|
||||||
mConfigurationController,
|
|
||||||
mTunerService,
|
|
||||||
mBroadcastDispatcher,
|
|
||||||
mMainHandler,
|
|
||||||
mContext.getContentResolver(),
|
|
||||||
mBatteryController
|
|
||||||
);
|
|
||||||
mBatteryMeterViewController.init();
|
|
||||||
|
|
||||||
// Ensure we re-propagate panel expansion values to the panel controller and
|
// Ensure we re-propagate panel expansion values to the panel controller and
|
||||||
// any listeners it may have, such as PanelBar. This will also ensure we
|
// any listeners it may have, such as PanelBar. This will also ensure we
|
||||||
// re-display the notification panel if necessary (for example, if
|
// re-display the notification panel if necessary (for example, if
|
||||||
@@ -1166,8 +1163,8 @@ public class StatusBar extends SystemUI implements
|
|||||||
// This view is being recreated, let's destroy the old one
|
// This view is being recreated, let's destroy the old one
|
||||||
mHeadsUpAppearanceController.destroy();
|
mHeadsUpAppearanceController.destroy();
|
||||||
}
|
}
|
||||||
// TODO: this should probably be scoped to the StatusBarComponent
|
|
||||||
// TODO (b/136993073) Separate notification shade and status bar
|
// TODO (b/136993073) Separate notification shade and status bar
|
||||||
|
// TODO(b/205609837): Migrate this to StatusBarFragmentComponent.
|
||||||
mHeadsUpAppearanceController = new HeadsUpAppearanceController(
|
mHeadsUpAppearanceController = new HeadsUpAppearanceController(
|
||||||
mNotificationIconAreaController, mHeadsUpManager,
|
mNotificationIconAreaController, mHeadsUpManager,
|
||||||
mStackScrollerController,
|
mStackScrollerController,
|
||||||
@@ -1184,6 +1181,7 @@ public class StatusBar extends SystemUI implements
|
|||||||
.beginTransaction()
|
.beginTransaction()
|
||||||
.replace(R.id.status_bar_container,
|
.replace(R.id.status_bar_container,
|
||||||
new CollapsedStatusBarFragment(
|
new CollapsedStatusBarFragment(
|
||||||
|
mStatusBarFragmentComponentFactory,
|
||||||
mOngoingCallController,
|
mOngoingCallController,
|
||||||
mAnimationScheduler,
|
mAnimationScheduler,
|
||||||
mStatusBarLocationPublisher,
|
mStatusBarLocationPublisher,
|
||||||
|
|||||||
@@ -75,7 +75,6 @@ import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
|||||||
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
||||||
import com.android.systemui.statusbar.phone.AutoHideController;
|
import com.android.systemui.statusbar.phone.AutoHideController;
|
||||||
import com.android.systemui.statusbar.phone.BiometricUnlockController;
|
import com.android.systemui.statusbar.phone.BiometricUnlockController;
|
||||||
import com.android.systemui.statusbar.phone.CollapsedStatusBarFragmentLogger;
|
|
||||||
import com.android.systemui.statusbar.phone.DozeParameters;
|
import com.android.systemui.statusbar.phone.DozeParameters;
|
||||||
import com.android.systemui.statusbar.phone.DozeScrimController;
|
import com.android.systemui.statusbar.phone.DozeScrimController;
|
||||||
import com.android.systemui.statusbar.phone.DozeServiceHost;
|
import com.android.systemui.statusbar.phone.DozeServiceHost;
|
||||||
@@ -99,6 +98,8 @@ import com.android.systemui.statusbar.phone.StatusBarLocationPublisher;
|
|||||||
import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter;
|
import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
|
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
|
||||||
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
|
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragmentLogger;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentComponent;
|
||||||
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
||||||
import com.android.systemui.statusbar.policy.BatteryController;
|
import com.android.systemui.statusbar.policy.BatteryController;
|
||||||
@@ -197,6 +198,7 @@ public interface StatusBarPhoneModule {
|
|||||||
CommandQueue commandQueue,
|
CommandQueue commandQueue,
|
||||||
CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
|
CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
|
||||||
StatusBarComponent.Factory statusBarComponentFactory,
|
StatusBarComponent.Factory statusBarComponentFactory,
|
||||||
|
StatusBarFragmentComponent.Factory statusBarFragmentComponentFactory,
|
||||||
PluginManager pluginManager,
|
PluginManager pluginManager,
|
||||||
Optional<LegacySplitScreen> splitScreenOptional,
|
Optional<LegacySplitScreen> splitScreenOptional,
|
||||||
LightsOutNotifController lightsOutNotifController,
|
LightsOutNotifController lightsOutNotifController,
|
||||||
@@ -297,6 +299,7 @@ public interface StatusBarPhoneModule {
|
|||||||
commandQueue,
|
commandQueue,
|
||||||
collapsedStatusBarFragmentLogger,
|
collapsedStatusBarFragmentLogger,
|
||||||
statusBarComponentFactory,
|
statusBarComponentFactory,
|
||||||
|
statusBarFragmentComponentFactory,
|
||||||
pluginManager,
|
pluginManager,
|
||||||
splitScreenOptional,
|
splitScreenOptional,
|
||||||
lightsOutNotifController,
|
lightsOutNotifController,
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.systemui.statusbar.phone;
|
package com.android.systemui.statusbar.phone.fragment;
|
||||||
|
|
||||||
import static android.app.StatusBarManager.DISABLE2_SYSTEM_ICONS;
|
import static android.app.StatusBarManager.DISABLE2_SYSTEM_ICONS;
|
||||||
import static android.app.StatusBarManager.DISABLE_CLOCK;
|
import static android.app.StatusBarManager.DISABLE_CLOCK;
|
||||||
@@ -52,7 +52,14 @@ import com.android.systemui.statusbar.connectivity.NetworkController;
|
|||||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||||
import com.android.systemui.statusbar.events.SystemStatusAnimationCallback;
|
import com.android.systemui.statusbar.events.SystemStatusAnimationCallback;
|
||||||
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
||||||
|
import com.android.systemui.statusbar.phone.NotificationIconAreaController;
|
||||||
|
import com.android.systemui.statusbar.phone.PhoneStatusBarView;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBar;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarHideIconsForBouncerManager;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarIconController.DarkIconManager;
|
import com.android.systemui.statusbar.phone.StatusBarIconController.DarkIconManager;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarLocationPublisher;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentComponent;
|
||||||
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
||||||
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallListener;
|
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallListener;
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
||||||
@@ -83,6 +90,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
|||||||
public static final String STATUS_BAR_ICON_MANAGER_TAG = "status_bar_icon_manager";
|
public static final String STATUS_BAR_ICON_MANAGER_TAG = "status_bar_icon_manager";
|
||||||
public static final int FADE_IN_DURATION = 320;
|
public static final int FADE_IN_DURATION = 320;
|
||||||
public static final int FADE_IN_DELAY = 50;
|
public static final int FADE_IN_DELAY = 50;
|
||||||
|
private StatusBarFragmentComponent mStatusBarFragmentComponent;
|
||||||
private PhoneStatusBarView mStatusBar;
|
private PhoneStatusBarView mStatusBar;
|
||||||
private final StatusBarStateController mStatusBarStateController;
|
private final StatusBarStateController mStatusBarStateController;
|
||||||
private final KeyguardStateController mKeyguardStateController;
|
private final KeyguardStateController mKeyguardStateController;
|
||||||
@@ -96,6 +104,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
|||||||
private int mDisabled2;
|
private int mDisabled2;
|
||||||
private Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
private Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||||
private DarkIconManager mDarkIconManager;
|
private DarkIconManager mDarkIconManager;
|
||||||
|
private final StatusBarFragmentComponent.Factory mStatusBarFragmentComponentFactory;
|
||||||
private final CommandQueue mCommandQueue;
|
private final CommandQueue mCommandQueue;
|
||||||
private final CollapsedStatusBarFragmentLogger mCollapsedStatusBarFragmentLogger;
|
private final CollapsedStatusBarFragmentLogger mCollapsedStatusBarFragmentLogger;
|
||||||
private final OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
|
private final OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
|
||||||
@@ -127,6 +136,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
|||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public CollapsedStatusBarFragment(
|
public CollapsedStatusBarFragment(
|
||||||
|
StatusBarFragmentComponent.Factory statusBarFragmentComponentFactory,
|
||||||
OngoingCallController ongoingCallController,
|
OngoingCallController ongoingCallController,
|
||||||
SystemStatusAnimationScheduler animationScheduler,
|
SystemStatusAnimationScheduler animationScheduler,
|
||||||
StatusBarLocationPublisher locationPublisher,
|
StatusBarLocationPublisher locationPublisher,
|
||||||
@@ -143,6 +153,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
|||||||
CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
|
CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
|
||||||
OperatorNameViewController.Factory operatorNameViewControllerFactory
|
OperatorNameViewController.Factory operatorNameViewControllerFactory
|
||||||
) {
|
) {
|
||||||
|
mStatusBarFragmentComponentFactory = statusBarFragmentComponentFactory;
|
||||||
mOngoingCallController = ongoingCallController;
|
mOngoingCallController = ongoingCallController;
|
||||||
mAnimationScheduler = animationScheduler;
|
mAnimationScheduler = animationScheduler;
|
||||||
mLocationPublisher = locationPublisher;
|
mLocationPublisher = locationPublisher;
|
||||||
@@ -169,6 +180,9 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
|||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
mStatusBarFragmentComponent = mStatusBarFragmentComponentFactory.create(this);
|
||||||
|
mStatusBarFragmentComponent.init();
|
||||||
|
|
||||||
mStatusBar = (PhoneStatusBarView) view;
|
mStatusBar = (PhoneStatusBarView) view;
|
||||||
View contents = mStatusBar.findViewById(R.id.status_bar_contents);
|
View contents = mStatusBar.findViewById(R.id.status_bar_contents);
|
||||||
contents.addOnLayoutChangeListener(mStatusBarLayoutListener);
|
contents.addOnLayoutChangeListener(mStatusBarLayoutListener);
|
||||||
@@ -252,6 +266,17 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
|||||||
updateNotificationIconAreaAndCallChip(mDisabled1, false);
|
updateNotificationIconAreaAndCallChip(mDisabled1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the dagger component for this fragment.
|
||||||
|
*
|
||||||
|
* TODO(b/205609837): Eventually, the dagger component should encapsulate all status bar
|
||||||
|
* fragment functionality and we won't need to expose it here anymore.
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
public StatusBarFragmentComponent getStatusBarFragmentComponent() {
|
||||||
|
return mStatusBarFragmentComponent;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void disable(int displayId, int state1, int state2, boolean animate) {
|
public void disable(int displayId, int state1, int state2, boolean animate) {
|
||||||
if (displayId != getContext().getDisplayId()) {
|
if (displayId != getContext().getDisplayId()) {
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.systemui.statusbar.phone
|
package com.android.systemui.statusbar.phone.fragment
|
||||||
|
|
||||||
import com.android.systemui.log.LogBuffer
|
import com.android.systemui.log.LogBuffer
|
||||||
import com.android.systemui.log.LogLevel
|
import com.android.systemui.log.LogLevel
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.systemui.statusbar.phone.fragment.dagger;
|
||||||
|
|
||||||
|
import com.android.systemui.battery.BatteryMeterViewController;
|
||||||
|
import com.android.systemui.dagger.qualifiers.RootView;
|
||||||
|
import com.android.systemui.statusbar.phone.PhoneStatusBarView;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
|
||||||
|
|
||||||
|
import dagger.BindsInstance;
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A subcomponent that gets re-created each time we create a new {@link CollapsedStatusBarFragment}.
|
||||||
|
*
|
||||||
|
* This component will also re-create all classes that depend on {@link CollapsedStatusBarFragment}
|
||||||
|
* and friends. Specifically, the fragment creates a new {@link PhoneStatusBarView} and multiple
|
||||||
|
* controllers need access to that view, so those controllers will be re-created whenever the
|
||||||
|
* fragment is recreated.
|
||||||
|
*
|
||||||
|
* Note that this is completely separate from
|
||||||
|
* {@link com.android.systemui.statusbar.phone.dagger.StatusBarComponent}. This component gets
|
||||||
|
* re-created on each new fragment creation, whereas
|
||||||
|
* {@link com.android.systemui.statusbar.phone.dagger.StatusBarComponent} is only created once in
|
||||||
|
* {@link com.android.systemui.statusbar.phone.StatusBar} and never re-created.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Subcomponent(modules = {StatusBarFragmentModule.class})
|
||||||
|
@StatusBarFragmentScope
|
||||||
|
public interface StatusBarFragmentComponent {
|
||||||
|
/** Simple factory. */
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
StatusBarFragmentComponent create(
|
||||||
|
@BindsInstance CollapsedStatusBarFragment collapsedStatusBarFragment);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize anything extra for the component. Must be called after the component is created.
|
||||||
|
*/
|
||||||
|
default void init() {
|
||||||
|
// No one accesses this controller, so we need to make sure we reference it here so it does
|
||||||
|
// get initialized.
|
||||||
|
getBatteryMeterViewController().init();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@StatusBarFragmentScope
|
||||||
|
BatteryMeterViewController getBatteryMeterViewController();
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@StatusBarFragmentScope
|
||||||
|
@RootView
|
||||||
|
PhoneStatusBarView getPhoneStatusBarView();
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.systemui.statusbar.phone.fragment.dagger;
|
||||||
|
|
||||||
|
import com.android.systemui.R;
|
||||||
|
import com.android.systemui.battery.BatteryMeterView;
|
||||||
|
import com.android.systemui.dagger.qualifiers.RootView;
|
||||||
|
import com.android.systemui.statusbar.phone.PhoneStatusBarView;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
/** Dagger module for {@link StatusBarFragmentComponent}. */
|
||||||
|
@Module
|
||||||
|
public interface StatusBarFragmentModule {
|
||||||
|
/** */
|
||||||
|
@Provides
|
||||||
|
@RootView
|
||||||
|
@StatusBarFragmentScope
|
||||||
|
static PhoneStatusBarView providePhoneStatusBarView(
|
||||||
|
CollapsedStatusBarFragment collapsedStatusBarFragment) {
|
||||||
|
return (PhoneStatusBarView) collapsedStatusBarFragment.getView();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@Provides
|
||||||
|
@StatusBarFragmentScope
|
||||||
|
static BatteryMeterView provideBatteryMeterView(@RootView PhoneStatusBarView view) {
|
||||||
|
return view.findViewById(R.id.battery);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.systemui.statusbar.phone.fragment.dagger;
|
||||||
|
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
|
import java.lang.annotation.Documented;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
|
||||||
|
import javax.inject.Scope;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scope annotation for singleton items within the {@link StatusBarFragmentComponent}.
|
||||||
|
*/
|
||||||
|
@Documented
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
@Scope
|
||||||
|
public @interface StatusBarFragmentScope {}
|
||||||
@@ -131,6 +131,8 @@ import com.android.systemui.statusbar.notification.stack.NotificationListContain
|
|||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
|
||||||
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragmentLogger;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentComponent;
|
||||||
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
||||||
import com.android.systemui.statusbar.policy.BatteryController;
|
import com.android.systemui.statusbar.policy.BatteryController;
|
||||||
@@ -241,6 +243,8 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private CollapsedStatusBarFragmentLogger mCollapsedStatusBarFragmentLogger;
|
@Mock private CollapsedStatusBarFragmentLogger mCollapsedStatusBarFragmentLogger;
|
||||||
@Mock private StatusBarComponent.Factory mStatusBarComponentFactory;
|
@Mock private StatusBarComponent.Factory mStatusBarComponentFactory;
|
||||||
@Mock private StatusBarComponent mStatusBarComponent;
|
@Mock private StatusBarComponent mStatusBarComponent;
|
||||||
|
@Mock private StatusBarFragmentComponent.Factory mStatusBarFragmentComponentFactory;
|
||||||
|
@Mock private StatusBarFragmentComponent mStatusBarFragmentComponent;
|
||||||
@Mock private PluginManager mPluginManager;
|
@Mock private PluginManager mPluginManager;
|
||||||
@Mock private LegacySplitScreen mLegacySplitScreen;
|
@Mock private LegacySplitScreen mLegacySplitScreen;
|
||||||
@Mock private LightsOutNotifController mLightsOutNotifController;
|
@Mock private LightsOutNotifController mLightsOutNotifController;
|
||||||
@@ -345,6 +349,8 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
when(mBiometricUnlockControllerLazy.get()).thenReturn(mBiometricUnlockController);
|
when(mBiometricUnlockControllerLazy.get()).thenReturn(mBiometricUnlockController);
|
||||||
|
|
||||||
when(mStatusBarComponentFactory.create()).thenReturn(mStatusBarComponent);
|
when(mStatusBarComponentFactory.create()).thenReturn(mStatusBarComponent);
|
||||||
|
when(mStatusBarFragmentComponentFactory.create(any()))
|
||||||
|
.thenReturn(mStatusBarFragmentComponent);
|
||||||
when(mStatusBarComponent.getNotificationShadeWindowViewController()).thenReturn(
|
when(mStatusBarComponent.getNotificationShadeWindowViewController()).thenReturn(
|
||||||
mNotificationShadeWindowViewController);
|
mNotificationShadeWindowViewController);
|
||||||
|
|
||||||
@@ -414,6 +420,7 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
mCommandQueue,
|
mCommandQueue,
|
||||||
mCollapsedStatusBarFragmentLogger,
|
mCollapsedStatusBarFragmentLogger,
|
||||||
mStatusBarComponentFactory,
|
mStatusBarComponentFactory,
|
||||||
|
mStatusBarFragmentComponentFactory,
|
||||||
mPluginManager,
|
mPluginManager,
|
||||||
Optional.of(mLegacySplitScreen),
|
Optional.of(mLegacySplitScreen),
|
||||||
mLightsOutNotifController,
|
mLightsOutNotifController,
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.systemui.statusbar.phone
|
package com.android.systemui.statusbar.phone.fragment
|
||||||
|
|
||||||
import androidx.test.filters.SmallTest
|
import androidx.test.filters.SmallTest
|
||||||
import com.android.systemui.SysuiTestCase
|
import com.android.systemui.SysuiTestCase
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
* permissions and limitations under the License.
|
* permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.systemui.statusbar.phone;
|
package com.android.systemui.statusbar.phone.fragment;
|
||||||
|
|
||||||
import static android.view.Display.DEFAULT_DISPLAY;
|
import static android.view.Display.DEFAULT_DISPLAY;
|
||||||
|
|
||||||
@@ -48,6 +48,13 @@ import com.android.systemui.statusbar.DisableFlagsLogger;
|
|||||||
import com.android.systemui.statusbar.OperatorNameViewController;
|
import com.android.systemui.statusbar.OperatorNameViewController;
|
||||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||||
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
||||||
|
import com.android.systemui.statusbar.phone.NotificationIconAreaController;
|
||||||
|
import com.android.systemui.statusbar.phone.NotificationPanelViewController;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBar;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarHideIconsForBouncerManager;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarLocationPublisher;
|
||||||
|
import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentComponent;
|
||||||
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
|
||||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
||||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||||
@@ -83,6 +90,9 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
|||||||
private OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
|
private OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
|
||||||
private OperatorNameViewController mOperatorNameViewController;
|
private OperatorNameViewController mOperatorNameViewController;
|
||||||
|
|
||||||
|
private StatusBarFragmentComponent.Factory mStatusBarFragmentComponentFactory;
|
||||||
|
private StatusBarFragmentComponent mStatusBarFragmentComponent;
|
||||||
|
|
||||||
public CollapsedStatusBarFragmentTest() {
|
public CollapsedStatusBarFragmentTest() {
|
||||||
super(CollapsedStatusBarFragment.class);
|
super(CollapsedStatusBarFragment.class);
|
||||||
}
|
}
|
||||||
@@ -243,8 +253,22 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
|||||||
Mockito.verify(mNotificationAreaInner, atLeast(1)).setVisibility(eq(View.VISIBLE));
|
Mockito.verify(mNotificationAreaInner, atLeast(1)).setVisibility(eq(View.VISIBLE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setUp_fragmentCreatesDaggerComponent() {
|
||||||
|
mFragments.dispatchResume();
|
||||||
|
processAllMessages();
|
||||||
|
CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;
|
||||||
|
|
||||||
|
assertEquals(mStatusBarFragmentComponent, fragment.getStatusBarFragmentComponent());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Fragment instantiate(Context context, String className, Bundle arguments) {
|
protected Fragment instantiate(Context context, String className, Bundle arguments) {
|
||||||
|
mStatusBarFragmentComponentFactory =
|
||||||
|
mock(StatusBarFragmentComponent.Factory.class);
|
||||||
|
mStatusBarFragmentComponent = mock(StatusBarFragmentComponent.class);
|
||||||
|
when(mStatusBarFragmentComponentFactory.create(any()))
|
||||||
|
.thenReturn(mStatusBarFragmentComponent);
|
||||||
mOngoingCallController = mock(OngoingCallController.class);
|
mOngoingCallController = mock(OngoingCallController.class);
|
||||||
mAnimationScheduler = mock(SystemStatusAnimationScheduler.class);
|
mAnimationScheduler = mock(SystemStatusAnimationScheduler.class);
|
||||||
mLocationPublisher = mock(StatusBarLocationPublisher.class);
|
mLocationPublisher = mock(StatusBarLocationPublisher.class);
|
||||||
@@ -259,6 +283,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
|||||||
|
|
||||||
setUpNotificationIconAreaController();
|
setUpNotificationIconAreaController();
|
||||||
return new CollapsedStatusBarFragment(
|
return new CollapsedStatusBarFragment(
|
||||||
|
mStatusBarFragmentComponentFactory,
|
||||||
mOngoingCallController,
|
mOngoingCallController,
|
||||||
mAnimationScheduler,
|
mAnimationScheduler,
|
||||||
mLocationPublisher,
|
mLocationPublisher,
|
||||||
Reference in New Issue
Block a user