Merge "[Status Bar Refactor] Define a new dagger component that gets re-created each time CollapsedStatusBarFragment is re-created." into sc-v2-dev am: fe4103f50d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16211208 Change-Id: I244ab9130fda27bbdd91bd0b6dcd8aa4df0915dc
This commit is contained in:
@@ -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.StatusBar;
|
||||
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.HeadsUpManager;
|
||||
import com.android.systemui.statusbar.policy.ZenModeController;
|
||||
@@ -124,6 +125,7 @@ import dagger.Provides;
|
||||
},
|
||||
subcomponents = {
|
||||
StatusBarComponent.class,
|
||||
StatusBarFragmentComponent.class,
|
||||
NotificationRowComponent.class,
|
||||
DozeComponent.class,
|
||||
ExpandableNotificationRowComponent.class,
|
||||
|
||||
@@ -24,7 +24,7 @@ import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
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 java.io.FileDescriptor;
|
||||
|
||||
@@ -26,8 +26,8 @@ import java.lang.annotation.Retention;
|
||||
import javax.inject.Qualifier;
|
||||
|
||||
/**
|
||||
* A {@link LogBuffer} for
|
||||
* {@link com.android.systemui.statusbar.phone.CollapsedStatusBarFragment}-related messages.
|
||||
* A {@link LogBuffer} for {@link
|
||||
* com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment}-related messages.
|
||||
*/
|
||||
@Qualifier
|
||||
@Documented
|
||||
|
||||
@@ -102,7 +102,7 @@ public class LogModule {
|
||||
|
||||
/**
|
||||
* Provides a logging buffer for
|
||||
* {@link com.android.systemui.statusbar.phone.CollapsedStatusBarFragment}.
|
||||
* {@link com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment}.
|
||||
*/
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.android.systemui.log.LogBuffer
|
||||
import com.android.systemui.log.LogLevel
|
||||
import com.android.systemui.log.dagger.QSFragmentDisableLog
|
||||
import com.android.systemui.statusbar.DisableFlagsLogger
|
||||
import com.android.systemui.statusbar.phone.CollapsedStatusBarFragment
|
||||
import javax.inject.Inject
|
||||
|
||||
/** 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.phone.LockscreenGestureLogger.LockscreenUiEvent;
|
||||
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.PanelState;
|
||||
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.DelegateLaunchAnimatorController;
|
||||
import com.android.systemui.assist.AssistManager;
|
||||
import com.android.systemui.battery.BatteryMeterViewController;
|
||||
import com.android.systemui.biometrics.AuthRippleController;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
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.phone.dagger.StatusBarComponent;
|
||||
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.panelstate.PanelExpansionStateManager;
|
||||
import com.android.systemui.statusbar.policy.BatteryController;
|
||||
@@ -487,6 +489,7 @@ public class StatusBar extends SystemUI implements
|
||||
private final DozeParameters mDozeParameters;
|
||||
private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
|
||||
private final StatusBarComponent.Factory mStatusBarComponentFactory;
|
||||
private final StatusBarFragmentComponent.Factory mStatusBarFragmentComponentFactory;
|
||||
private final PluginManager mPluginManager;
|
||||
private final Optional<LegacySplitScreen> mSplitScreenOptional;
|
||||
private final StatusBarNotificationActivityStarter.Builder
|
||||
@@ -671,7 +674,6 @@ public class StatusBar extends SystemUI implements
|
||||
|
||||
private final ActivityIntentHelper mActivityIntentHelper;
|
||||
private NotificationStackScrollLayoutController mStackScrollerController;
|
||||
private BatteryMeterViewController mBatteryMeterViewController;
|
||||
|
||||
private final ColorExtractor.OnColorsChangedListener mOnColorsChangedListener =
|
||||
(extractor, which) -> updateTheme();
|
||||
@@ -743,6 +745,7 @@ public class StatusBar extends SystemUI implements
|
||||
CommandQueue commandQueue,
|
||||
CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
|
||||
StatusBarComponent.Factory statusBarComponentFactory,
|
||||
StatusBarFragmentComponent.Factory statusBarFragmentComponentFactory,
|
||||
PluginManager pluginManager,
|
||||
Optional<LegacySplitScreen> splitScreenOptional,
|
||||
LightsOutNotifController lightsOutNotifController,
|
||||
@@ -847,6 +850,7 @@ public class StatusBar extends SystemUI implements
|
||||
mCommandQueue = commandQueue;
|
||||
mCollapsedStatusBarFragmentLogger = collapsedStatusBarFragmentLogger;
|
||||
mStatusBarComponentFactory = statusBarComponentFactory;
|
||||
mStatusBarFragmentComponentFactory = statusBarFragmentComponentFactory;
|
||||
mPluginManager = pluginManager;
|
||||
mSplitScreenOptional = splitScreenOptional;
|
||||
mStatusBarNotificationActivityStarterBuilder = statusBarNotificationActivityStarterBuilder;
|
||||
@@ -1131,28 +1135,21 @@ public class StatusBar extends SystemUI implements
|
||||
mPluginDependencyProvider.allowPluginDependency(StatusBarStateController.class);
|
||||
mStatusBarWindowController.getFragmentHostManager()
|
||||
.addTagListener(CollapsedStatusBarFragment.TAG, (tag, fragment) -> {
|
||||
CollapsedStatusBarFragment statusBarFragment =
|
||||
(CollapsedStatusBarFragment) fragment;
|
||||
StatusBarFragmentComponent statusBarFragmentComponent =
|
||||
((CollapsedStatusBarFragment) fragment).getStatusBarFragmentComponent();
|
||||
if (statusBarFragmentComponent == null) {
|
||||
throw new IllegalStateException(
|
||||
"CollapsedStatusBarFragment should have a valid component");
|
||||
}
|
||||
|
||||
PhoneStatusBarView oldStatusBarView = mStatusBarView;
|
||||
mStatusBarView = (PhoneStatusBarView) statusBarFragment.getView();
|
||||
mStatusBarView = statusBarFragmentComponent.getPhoneStatusBarView();
|
||||
|
||||
// TODO(b/205609837): Migrate this to StatusBarFragmentComponent.
|
||||
mPhoneStatusBarViewController = mPhoneStatusBarViewControllerFactory
|
||||
.create(mStatusBarView, mNotificationPanelViewController
|
||||
.getStatusBarTouchEventHandler());
|
||||
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
|
||||
// any listeners it may have, such as PanelBar. This will also ensure we
|
||||
// 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
|
||||
mHeadsUpAppearanceController.destroy();
|
||||
}
|
||||
// TODO: this should probably be scoped to the StatusBarComponent
|
||||
// TODO (b/136993073) Separate notification shade and status bar
|
||||
// TODO(b/205609837): Migrate this to StatusBarFragmentComponent.
|
||||
mHeadsUpAppearanceController = new HeadsUpAppearanceController(
|
||||
mNotificationIconAreaController, mHeadsUpManager,
|
||||
mStackScrollerController,
|
||||
@@ -1184,6 +1181,7 @@ public class StatusBar extends SystemUI implements
|
||||
.beginTransaction()
|
||||
.replace(R.id.status_bar_container,
|
||||
new CollapsedStatusBarFragment(
|
||||
mStatusBarFragmentComponentFactory,
|
||||
mOngoingCallController,
|
||||
mAnimationScheduler,
|
||||
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.phone.AutoHideController;
|
||||
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.DozeScrimController;
|
||||
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.StatusBarTouchableRegionManager;
|
||||
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.panelstate.PanelExpansionStateManager;
|
||||
import com.android.systemui.statusbar.policy.BatteryController;
|
||||
@@ -197,6 +198,7 @@ public interface StatusBarPhoneModule {
|
||||
CommandQueue commandQueue,
|
||||
CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
|
||||
StatusBarComponent.Factory statusBarComponentFactory,
|
||||
StatusBarFragmentComponent.Factory statusBarFragmentComponentFactory,
|
||||
PluginManager pluginManager,
|
||||
Optional<LegacySplitScreen> splitScreenOptional,
|
||||
LightsOutNotifController lightsOutNotifController,
|
||||
@@ -297,6 +299,7 @@ public interface StatusBarPhoneModule {
|
||||
commandQueue,
|
||||
collapsedStatusBarFragmentLogger,
|
||||
statusBarComponentFactory,
|
||||
statusBarFragmentComponentFactory,
|
||||
pluginManager,
|
||||
splitScreenOptional,
|
||||
lightsOutNotifController,
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* 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.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.events.SystemStatusAnimationCallback;
|
||||
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.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.OngoingCallListener;
|
||||
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 int FADE_IN_DURATION = 320;
|
||||
public static final int FADE_IN_DELAY = 50;
|
||||
private StatusBarFragmentComponent mStatusBarFragmentComponent;
|
||||
private PhoneStatusBarView mStatusBar;
|
||||
private final StatusBarStateController mStatusBarStateController;
|
||||
private final KeyguardStateController mKeyguardStateController;
|
||||
@@ -96,6 +104,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
private int mDisabled2;
|
||||
private Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
private DarkIconManager mDarkIconManager;
|
||||
private final StatusBarFragmentComponent.Factory mStatusBarFragmentComponentFactory;
|
||||
private final CommandQueue mCommandQueue;
|
||||
private final CollapsedStatusBarFragmentLogger mCollapsedStatusBarFragmentLogger;
|
||||
private final OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
|
||||
@@ -127,6 +136,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
|
||||
@Inject
|
||||
public CollapsedStatusBarFragment(
|
||||
StatusBarFragmentComponent.Factory statusBarFragmentComponentFactory,
|
||||
OngoingCallController ongoingCallController,
|
||||
SystemStatusAnimationScheduler animationScheduler,
|
||||
StatusBarLocationPublisher locationPublisher,
|
||||
@@ -143,6 +153,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
CollapsedStatusBarFragmentLogger collapsedStatusBarFragmentLogger,
|
||||
OperatorNameViewController.Factory operatorNameViewControllerFactory
|
||||
) {
|
||||
mStatusBarFragmentComponentFactory = statusBarFragmentComponentFactory;
|
||||
mOngoingCallController = ongoingCallController;
|
||||
mAnimationScheduler = animationScheduler;
|
||||
mLocationPublisher = locationPublisher;
|
||||
@@ -169,6 +180,9 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
@Override
|
||||
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
mStatusBarFragmentComponent = mStatusBarFragmentComponentFactory.create(this);
|
||||
mStatusBarFragmentComponent.init();
|
||||
|
||||
mStatusBar = (PhoneStatusBarView) view;
|
||||
View contents = mStatusBar.findViewById(R.id.status_bar_contents);
|
||||
contents.addOnLayoutChangeListener(mStatusBarLayoutListener);
|
||||
@@ -252,6 +266,17 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
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
|
||||
public void disable(int displayId, int state1, int state2, boolean animate) {
|
||||
if (displayId != getContext().getDisplayId()) {
|
||||
@@ -14,7 +14,7 @@
|
||||
* 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.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.NotificationStackScrollLayoutController;
|
||||
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.panelstate.PanelExpansionStateManager;
|
||||
import com.android.systemui.statusbar.policy.BatteryController;
|
||||
@@ -241,6 +243,8 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
@Mock private CollapsedStatusBarFragmentLogger mCollapsedStatusBarFragmentLogger;
|
||||
@Mock private StatusBarComponent.Factory mStatusBarComponentFactory;
|
||||
@Mock private StatusBarComponent mStatusBarComponent;
|
||||
@Mock private StatusBarFragmentComponent.Factory mStatusBarFragmentComponentFactory;
|
||||
@Mock private StatusBarFragmentComponent mStatusBarFragmentComponent;
|
||||
@Mock private PluginManager mPluginManager;
|
||||
@Mock private LegacySplitScreen mLegacySplitScreen;
|
||||
@Mock private LightsOutNotifController mLightsOutNotifController;
|
||||
@@ -345,6 +349,8 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
when(mBiometricUnlockControllerLazy.get()).thenReturn(mBiometricUnlockController);
|
||||
|
||||
when(mStatusBarComponentFactory.create()).thenReturn(mStatusBarComponent);
|
||||
when(mStatusBarFragmentComponentFactory.create(any()))
|
||||
.thenReturn(mStatusBarFragmentComponent);
|
||||
when(mStatusBarComponent.getNotificationShadeWindowViewController()).thenReturn(
|
||||
mNotificationShadeWindowViewController);
|
||||
|
||||
@@ -414,6 +420,7 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
mCommandQueue,
|
||||
mCollapsedStatusBarFragmentLogger,
|
||||
mStatusBarComponentFactory,
|
||||
mStatusBarFragmentComponentFactory,
|
||||
mPluginManager,
|
||||
Optional.of(mLegacySplitScreen),
|
||||
mLightsOutNotifController,
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.statusbar.phone
|
||||
package com.android.systemui.statusbar.phone.fragment
|
||||
|
||||
import androidx.test.filters.SmallTest
|
||||
import com.android.systemui.SysuiTestCase
|
||||
@@ -12,7 +12,7 @@
|
||||
* 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;
|
||||
|
||||
@@ -48,6 +48,13 @@ import com.android.systemui.statusbar.DisableFlagsLogger;
|
||||
import com.android.systemui.statusbar.OperatorNameViewController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
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.panelstate.PanelExpansionStateManager;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
@@ -83,6 +90,9 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
private OperatorNameViewController.Factory mOperatorNameViewControllerFactory;
|
||||
private OperatorNameViewController mOperatorNameViewController;
|
||||
|
||||
private StatusBarFragmentComponent.Factory mStatusBarFragmentComponentFactory;
|
||||
private StatusBarFragmentComponent mStatusBarFragmentComponent;
|
||||
|
||||
public CollapsedStatusBarFragmentTest() {
|
||||
super(CollapsedStatusBarFragment.class);
|
||||
}
|
||||
@@ -243,8 +253,22 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
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
|
||||
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);
|
||||
mAnimationScheduler = mock(SystemStatusAnimationScheduler.class);
|
||||
mLocationPublisher = mock(StatusBarLocationPublisher.class);
|
||||
@@ -259,6 +283,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
|
||||
setUpNotificationIconAreaController();
|
||||
return new CollapsedStatusBarFragment(
|
||||
mStatusBarFragmentComponentFactory,
|
||||
mOngoingCallController,
|
||||
mAnimationScheduler,
|
||||
mLocationPublisher,
|
||||
Reference in New Issue
Block a user