Merge "[DO NOT MERGE] Unfold refactor" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6bd4a6638a
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* 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.keyguard
|
||||
|
||||
import android.view.ViewGroup
|
||||
import com.android.systemui.unfold.SysUIUnfoldScope
|
||||
import com.android.systemui.unfold.UnfoldTransitionProgressProvider
|
||||
import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
* Translates items away/towards the hinge when the device is opened/closed.
|
||||
*/
|
||||
@SysUIUnfoldScope
|
||||
class KeyguardUnfoldTransition @Inject constructor(
|
||||
val unfoldProgressProvider: UnfoldTransitionProgressProvider
|
||||
) {
|
||||
init {
|
||||
unfoldProgressProvider.addCallback(
|
||||
object : TransitionProgressListener {
|
||||
override fun onTransitionStarted() {
|
||||
}
|
||||
|
||||
override fun onTransitionProgress(progress: Float) {
|
||||
}
|
||||
|
||||
override fun onTransitionFinished() {
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun setup(parent: ViewGroup) {
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,8 @@ import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.keyguard.KeyguardSliceProvider;
|
||||
import com.android.systemui.people.PeopleProvider;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.unfold.SysUIUnfoldComponent;
|
||||
import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider;
|
||||
import com.android.wm.shell.ShellCommandHandler;
|
||||
import com.android.wm.shell.TaskViewFactory;
|
||||
import com.android.wm.shell.apppairs.AppPairs;
|
||||
@@ -112,7 +114,14 @@ public interface SysUIComponent {
|
||||
* Initializes all the SysUI components.
|
||||
*/
|
||||
default void init() {
|
||||
// Do nothing
|
||||
// Initialize components that have no direct tie to the dagger dependency graph,
|
||||
// but are critical to this component's operation
|
||||
// TODO(b/205034537): I think this is a good idea?
|
||||
getSysUIUnfoldComponent().ifPresent(c -> {
|
||||
c.getUnfoldLightRevealOverlayAnimation().init();
|
||||
c.getUnfoldTransitionWallpaperController().init();
|
||||
});
|
||||
getNaturalRotationUnfoldProgressProvider().ifPresent(o -> o.init());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -149,6 +158,16 @@ public interface SysUIComponent {
|
||||
@SysUISingleton
|
||||
InitController getInitController();
|
||||
|
||||
/**
|
||||
* For devices with a hinge: access objects within this component
|
||||
*/
|
||||
Optional<SysUIUnfoldComponent> getSysUIUnfoldComponent();
|
||||
|
||||
/**
|
||||
* For devices with a hinge: the rotation animation
|
||||
*/
|
||||
Optional<NaturalRotationUnfoldProgressProvider> getNaturalRotationUnfoldProgressProvider();
|
||||
|
||||
/**
|
||||
* Member injection into the supplied argument.
|
||||
*/
|
||||
|
||||
@@ -73,6 +73,7 @@ import com.android.systemui.statusbar.policy.dagger.SmartRepliesInflationModule;
|
||||
import com.android.systemui.statusbar.policy.dagger.StatusBarPolicyModule;
|
||||
import com.android.systemui.statusbar.window.StatusBarWindowModule;
|
||||
import com.android.systemui.tuner.dagger.TunerModule;
|
||||
import com.android.systemui.unfold.SysUIUnfoldModule;
|
||||
import com.android.systemui.user.UserModule;
|
||||
import com.android.systemui.util.concurrency.SysUIConcurrencyModule;
|
||||
import com.android.systemui.util.dagger.UtilModule;
|
||||
@@ -115,6 +116,7 @@ import dagger.Provides;
|
||||
StatusBarPolicyModule.class,
|
||||
StatusBarWindowModule.class,
|
||||
SysUIConcurrencyModule.class,
|
||||
SysUIUnfoldModule.class,
|
||||
TunerModule.class,
|
||||
UserModule.class,
|
||||
UtilModule.class,
|
||||
|
||||
@@ -122,13 +122,14 @@ import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController
|
||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||
import com.android.systemui.unfold.SysUIUnfoldComponent;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.unfold.config.UnfoldTransitionConfig;
|
||||
import com.android.systemui.util.DeviceConfigProxy;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
@@ -814,8 +815,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
|
||||
private DeviceConfigProxy mDeviceConfig;
|
||||
private DozeParameters mDozeParameters;
|
||||
|
||||
private final UnfoldTransitionConfig mUnfoldTransitionConfig;
|
||||
private final Lazy<UnfoldLightRevealOverlayAnimation> mUnfoldLightRevealAnimation;
|
||||
private final Optional<UnfoldLightRevealOverlayAnimation> mUnfoldLightRevealAnimation;
|
||||
private final AtomicInteger mPendingDrawnTasks = new AtomicInteger();
|
||||
|
||||
private final KeyguardStateController mKeyguardStateController;
|
||||
@@ -840,8 +840,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
|
||||
NavigationModeController navigationModeController,
|
||||
KeyguardDisplayManager keyguardDisplayManager,
|
||||
DozeParameters dozeParameters,
|
||||
UnfoldTransitionConfig unfoldTransitionConfig,
|
||||
Lazy<UnfoldLightRevealOverlayAnimation> unfoldLightRevealOverlayAnimation,
|
||||
Optional<SysUIUnfoldComponent> unfoldComponent,
|
||||
SysuiStatusBarStateController statusBarStateController,
|
||||
KeyguardStateController keyguardStateController,
|
||||
Lazy<KeyguardUnlockAnimationController> keyguardUnlockAnimationControllerLazy,
|
||||
@@ -875,8 +874,8 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
|
||||
mInGestureNavigationMode = QuickStepContract.isGesturalMode(mode);
|
||||
}));
|
||||
mDozeParameters = dozeParameters;
|
||||
mUnfoldTransitionConfig = unfoldTransitionConfig;
|
||||
mUnfoldLightRevealAnimation = unfoldLightRevealOverlayAnimation;
|
||||
mUnfoldLightRevealAnimation = unfoldComponent.map(
|
||||
c -> c.getUnfoldLightRevealOverlayAnimation());
|
||||
mStatusBarStateController = statusBarStateController;
|
||||
statusBarStateController.addCallback(this);
|
||||
|
||||
@@ -2560,7 +2559,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
|
||||
synchronized (KeyguardViewMediator.this) {
|
||||
if (DEBUG) Log.d(TAG, "handleNotifyScreenTurningOn");
|
||||
|
||||
if (mUnfoldTransitionConfig.isEnabled()) {
|
||||
if (mUnfoldLightRevealAnimation.isPresent()) {
|
||||
mPendingDrawnTasks.set(2); // unfold overlay and keyguard drawn
|
||||
|
||||
mUnfoldLightRevealAnimation.get()
|
||||
|
||||
@@ -49,11 +49,11 @@ import com.android.systemui.statusbar.phone.StatusBar;
|
||||
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.unfold.config.UnfoldTransitionConfig;
|
||||
import com.android.systemui.unfold.SysUIUnfoldComponent;
|
||||
import com.android.systemui.util.DeviceConfigProxy;
|
||||
import com.android.systemui.util.sensors.AsyncSensorManager;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import dagger.Lazy;
|
||||
@@ -92,8 +92,7 @@ public class KeyguardModule {
|
||||
NavigationModeController navigationModeController,
|
||||
KeyguardDisplayManager keyguardDisplayManager,
|
||||
DozeParameters dozeParameters,
|
||||
UnfoldTransitionConfig unfoldTransitionConfig,
|
||||
Lazy<UnfoldLightRevealOverlayAnimation> unfoldLightRevealOverlayAnimation,
|
||||
Optional<SysUIUnfoldComponent> unfoldComponent,
|
||||
SysuiStatusBarStateController statusBarStateController,
|
||||
KeyguardStateController keyguardStateController,
|
||||
Lazy<KeyguardUnlockAnimationController> keyguardUnlockAnimationController,
|
||||
@@ -116,8 +115,7 @@ public class KeyguardModule {
|
||||
navigationModeController,
|
||||
keyguardDisplayManager,
|
||||
dozeParameters,
|
||||
unfoldTransitionConfig,
|
||||
unfoldLightRevealOverlayAnimation,
|
||||
unfoldComponent,
|
||||
statusBarStateController,
|
||||
keyguardStateController,
|
||||
keyguardUnlockAnimationController,
|
||||
|
||||
@@ -99,6 +99,7 @@ import com.android.internal.policy.SystemBarUtils;
|
||||
import com.android.internal.util.LatencyTracker;
|
||||
import com.android.keyguard.KeyguardStatusView;
|
||||
import com.android.keyguard.KeyguardStatusViewController;
|
||||
import com.android.keyguard.KeyguardUnfoldTransition;
|
||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.keyguard.LockIconViewController;
|
||||
import com.android.keyguard.dagger.KeyguardQsUserSwitchComponent;
|
||||
@@ -178,6 +179,7 @@ import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardUserSwitcherController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardUserSwitcherView;
|
||||
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
|
||||
import com.android.systemui.unfold.SysUIUnfoldComponent;
|
||||
import com.android.systemui.util.Utils;
|
||||
import com.android.systemui.util.settings.SecureSettings;
|
||||
import com.android.systemui.wallet.controller.QuickAccessWalletController;
|
||||
@@ -188,6 +190,7 @@ import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@@ -605,6 +608,8 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
|
||||
private boolean mStatusViewCentered = true;
|
||||
|
||||
private Optional<KeyguardUnfoldTransition> mKeyguardUnfoldTransition;
|
||||
|
||||
private View.AccessibilityDelegate mAccessibilityDelegate = new View.AccessibilityDelegate() {
|
||||
@Override
|
||||
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
|
||||
@@ -694,6 +699,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
LockscreenGestureLogger lockscreenGestureLogger,
|
||||
PanelExpansionStateManager panelExpansionStateManager,
|
||||
NotificationRemoteInputManager remoteInputManager,
|
||||
Optional<SysUIUnfoldComponent> unfoldComponent,
|
||||
ControlsComponent controlsComponent,
|
||||
FeatureFlags featureFlags) {
|
||||
super(view,
|
||||
@@ -809,6 +815,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
}
|
||||
|
||||
mMaxKeyguardNotifications = resources.getInteger(R.integer.keyguard_max_notification_count);
|
||||
mKeyguardUnfoldTransition = unfoldComponent.map(c -> c.getKeyguardUnfoldTransition());
|
||||
updateUserSwitcherFlags();
|
||||
onFinishInflate();
|
||||
|
||||
@@ -839,11 +846,12 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
.getKeyguardStatusBarViewController();
|
||||
mKeyguardStatusBarViewController.init();
|
||||
|
||||
mNotificationContainerParent = mView.findViewById(R.id.notification_container_parent);
|
||||
updateViewControllers(
|
||||
mView.findViewById(R.id.keyguard_status_view),
|
||||
userAvatarContainer,
|
||||
keyguardUserSwitcherView);
|
||||
mNotificationContainerParent = mView.findViewById(R.id.notification_container_parent);
|
||||
|
||||
NotificationStackScrollLayout stackScrollLayout = mView.findViewById(
|
||||
R.id.notification_stack_scroller);
|
||||
mNotificationStackScrollLayoutController.attach(stackScrollLayout);
|
||||
@@ -894,6 +902,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
}
|
||||
|
||||
mTapAgainViewController.init();
|
||||
mKeyguardUnfoldTransition.ifPresent(u -> u.setup(mNotificationContainerParent));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1137,6 +1146,8 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
mBarState);
|
||||
}
|
||||
setKeyguardBottomAreaVisibility(mBarState, false);
|
||||
|
||||
mKeyguardUnfoldTransition.ifPresent(u -> u.setup(mNotificationContainerParent));
|
||||
}
|
||||
|
||||
private void attachSplitShadeMediaPlayerContainer(FrameLayout container) {
|
||||
|
||||
@@ -21,21 +21,21 @@ import android.view.ViewGroup
|
||||
import android.view.ViewTreeObserver
|
||||
import com.android.systemui.R
|
||||
import com.android.systemui.shared.animation.UnfoldMoveFromCenterAnimator
|
||||
import com.android.systemui.statusbar.CommandQueue
|
||||
import com.android.systemui.unfold.SysUIUnfoldComponent
|
||||
import com.android.systemui.unfold.UNFOLD_STATUS_BAR
|
||||
import com.android.systemui.unfold.config.UnfoldTransitionConfig
|
||||
import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider
|
||||
import com.android.systemui.util.ViewController
|
||||
import com.android.systemui.util.kotlin.getOrNull
|
||||
import java.util.Optional
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Named
|
||||
import dagger.Lazy
|
||||
|
||||
/** Controller for [PhoneStatusBarView]. */
|
||||
class PhoneStatusBarViewController private constructor(
|
||||
view: PhoneStatusBarView,
|
||||
@Named(UNFOLD_STATUS_BAR) private val progressProvider: ScopedUnfoldTransitionProgressProvider?,
|
||||
private val moveFromCenterAnimationController: StatusBarMoveFromCenterAnimationController?,
|
||||
touchEventHandler: PhoneStatusBarView.TouchEventHandler,
|
||||
touchEventHandler: PhoneStatusBarView.TouchEventHandler
|
||||
) : ViewController<PhoneStatusBarView>(view) {
|
||||
|
||||
override fun onViewAttached() {
|
||||
@@ -115,21 +115,21 @@ class PhoneStatusBarViewController private constructor(
|
||||
}
|
||||
|
||||
class Factory @Inject constructor(
|
||||
private val unfoldComponent: Optional<SysUIUnfoldComponent>,
|
||||
@Named(UNFOLD_STATUS_BAR)
|
||||
private val progressProvider: Lazy<ScopedUnfoldTransitionProgressProvider>,
|
||||
private val moveFromCenterController: Lazy<StatusBarMoveFromCenterAnimationController>,
|
||||
private val unfoldConfig: UnfoldTransitionConfig,
|
||||
private val progressProvider: Optional<ScopedUnfoldTransitionProgressProvider>
|
||||
) {
|
||||
fun create(
|
||||
view: PhoneStatusBarView,
|
||||
touchEventHandler: PhoneStatusBarView.TouchEventHandler
|
||||
): PhoneStatusBarViewController {
|
||||
return PhoneStatusBarViewController(
|
||||
) =
|
||||
PhoneStatusBarViewController(
|
||||
view,
|
||||
if (unfoldConfig.isEnabled) progressProvider.get() else null,
|
||||
if (unfoldConfig.isEnabled) moveFromCenterController.get() else null,
|
||||
progressProvider.getOrNull(),
|
||||
unfoldComponent.map {
|
||||
it.getStatusBarMoveFromCenterAnimationController()
|
||||
}.getOrNull(),
|
||||
touchEventHandler
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,10 +232,6 @@ import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||
import com.android.systemui.statusbar.window.StatusBarWindowController;
|
||||
import com.android.systemui.statusbar.window.StatusBarWindowView;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.unfold.UnfoldTransitionWallpaperController;
|
||||
import com.android.systemui.unfold.config.UnfoldTransitionConfig;
|
||||
import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider;
|
||||
import com.android.systemui.util.DumpUtilsKt;
|
||||
import com.android.systemui.util.WallpaperController;
|
||||
import com.android.systemui.util.concurrency.DelayableExecutor;
|
||||
@@ -542,10 +538,7 @@ public class StatusBar extends SystemUI implements
|
||||
protected final NotificationInterruptStateProvider mNotificationInterruptStateProvider;
|
||||
private final BrightnessSliderController.Factory mBrightnessSliderFactory;
|
||||
private final FeatureFlags mFeatureFlags;
|
||||
private final UnfoldTransitionConfig mUnfoldTransitionConfig;
|
||||
private final Lazy<UnfoldLightRevealOverlayAnimation> mUnfoldLightRevealOverlayAnimation;
|
||||
private final Lazy<NaturalRotationUnfoldProgressProvider> mNaturalUnfoldProgressProvider;
|
||||
private final Lazy<UnfoldTransitionWallpaperController> mUnfoldWallpaperController;
|
||||
|
||||
private final WallpaperController mWallpaperController;
|
||||
private final KeyguardUnlockAnimationController mKeyguardUnlockAnimationController;
|
||||
private final MessageRouter mMessageRouter;
|
||||
@@ -780,10 +773,6 @@ public class StatusBar extends SystemUI implements
|
||||
StatusBarTouchableRegionManager statusBarTouchableRegionManager,
|
||||
NotificationIconAreaController notificationIconAreaController,
|
||||
BrightnessSliderController.Factory brightnessSliderFactory,
|
||||
UnfoldTransitionConfig unfoldTransitionConfig,
|
||||
Lazy<UnfoldLightRevealOverlayAnimation> unfoldLightRevealOverlayAnimation,
|
||||
Lazy<UnfoldTransitionWallpaperController> unfoldTransitionWallpaperController,
|
||||
Lazy<NaturalRotationUnfoldProgressProvider> naturalRotationUnfoldProgressProvider,
|
||||
WallpaperController wallpaperController,
|
||||
OngoingCallController ongoingCallController,
|
||||
SystemStatusAnimationScheduler animationScheduler,
|
||||
@@ -880,10 +869,6 @@ public class StatusBar extends SystemUI implements
|
||||
mDemoModeController = demoModeController;
|
||||
mNotificationIconAreaController = notificationIconAreaController;
|
||||
mBrightnessSliderFactory = brightnessSliderFactory;
|
||||
mUnfoldTransitionConfig = unfoldTransitionConfig;
|
||||
mUnfoldLightRevealOverlayAnimation = unfoldLightRevealOverlayAnimation;
|
||||
mNaturalUnfoldProgressProvider = naturalRotationUnfoldProgressProvider;
|
||||
mUnfoldWallpaperController = unfoldTransitionWallpaperController;
|
||||
mWallpaperController = wallpaperController;
|
||||
mOngoingCallController = ongoingCallController;
|
||||
mAnimationScheduler = animationScheduler;
|
||||
@@ -1071,12 +1056,6 @@ public class StatusBar extends SystemUI implements
|
||||
|
||||
mFalsingManager.addFalsingBeliefListener(mFalsingBeliefListener);
|
||||
|
||||
if (mUnfoldTransitionConfig.isEnabled()) {
|
||||
mUnfoldLightRevealOverlayAnimation.get().init();
|
||||
mUnfoldWallpaperController.get().init();
|
||||
mNaturalUnfoldProgressProvider.get().init();
|
||||
}
|
||||
|
||||
mPluginManager.addPluginListener(
|
||||
new PluginListener<OverlayPlugin>() {
|
||||
private final ArraySet<OverlayPlugin> mOverlays = new ArraySet<>();
|
||||
@@ -4517,5 +4496,4 @@ public class StatusBar extends SystemUI implements
|
||||
return mStartingSurfaceOptional.get().getBackgroundColor(task);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -17,19 +17,17 @@ package com.android.systemui.statusbar.phone
|
||||
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import com.android.systemui.dagger.SysUISingleton
|
||||
import com.android.systemui.shared.animation.UnfoldMoveFromCenterAnimator
|
||||
import com.android.systemui.shared.animation.UnfoldMoveFromCenterAnimator.ViewCenterProvider
|
||||
import com.android.systemui.unfold.UNFOLD_STATUS_BAR
|
||||
import com.android.systemui.unfold.SysUIUnfoldScope
|
||||
import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener
|
||||
import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Named
|
||||
|
||||
@SysUISingleton
|
||||
@SysUIUnfoldScope
|
||||
class StatusBarMoveFromCenterAnimationController @Inject constructor(
|
||||
@Named(UNFOLD_STATUS_BAR) private val progressProvider: ScopedUnfoldTransitionProgressProvider,
|
||||
private val windowManager: WindowManager,
|
||||
private val progressProvider: ScopedUnfoldTransitionProgressProvider,
|
||||
private val windowManager: WindowManager
|
||||
) {
|
||||
|
||||
private val transitionListener = TransitionListener()
|
||||
|
||||
@@ -95,7 +95,6 @@ import com.android.systemui.statusbar.phone.StatusBar;
|
||||
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
||||
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||
import com.android.systemui.statusbar.phone.StatusBarLocationPublisher;
|
||||
import com.android.systemui.statusbar.phone.StatusBarMoveFromCenterAnimationController;
|
||||
import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter;
|
||||
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
|
||||
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
|
||||
@@ -110,10 +109,6 @@ import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||
import com.android.systemui.statusbar.window.StatusBarWindowController;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.unfold.UnfoldTransitionWallpaperController;
|
||||
import com.android.systemui.unfold.config.UnfoldTransitionConfig;
|
||||
import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider;
|
||||
import com.android.systemui.util.WallpaperController;
|
||||
import com.android.systemui.util.concurrency.DelayableExecutor;
|
||||
import com.android.systemui.util.concurrency.MessageRouter;
|
||||
@@ -224,11 +219,6 @@ public interface StatusBarPhoneModule {
|
||||
StatusBarTouchableRegionManager statusBarTouchableRegionManager,
|
||||
NotificationIconAreaController notificationIconAreaController,
|
||||
BrightnessSliderController.Factory brightnessSliderFactory,
|
||||
UnfoldTransitionConfig unfoldTransitionConfig,
|
||||
Lazy<UnfoldLightRevealOverlayAnimation> unfoldLightRevealOverlayAnimation,
|
||||
Lazy<NaturalRotationUnfoldProgressProvider> naturalRotationUnfoldProgressProvider,
|
||||
Lazy<UnfoldTransitionWallpaperController> unfoldTransitionWallpaperController,
|
||||
Lazy<StatusBarMoveFromCenterAnimationController> statusBarMoveFromCenterAnimation,
|
||||
WallpaperController wallpaperController,
|
||||
OngoingCallController ongoingCallController,
|
||||
SystemStatusAnimationScheduler animationScheduler,
|
||||
@@ -327,10 +317,6 @@ public interface StatusBarPhoneModule {
|
||||
statusBarTouchableRegionManager,
|
||||
notificationIconAreaController,
|
||||
brightnessSliderFactory,
|
||||
unfoldTransitionConfig,
|
||||
unfoldLightRevealOverlayAnimation,
|
||||
unfoldTransitionWallpaperController,
|
||||
naturalRotationUnfoldProgressProvider,
|
||||
wallpaperController,
|
||||
ongoingCallController,
|
||||
animationScheduler,
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* 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.unfold
|
||||
|
||||
import com.android.keyguard.KeyguardUnfoldTransition
|
||||
import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider
|
||||
import com.android.systemui.dagger.SysUISingleton
|
||||
import com.android.systemui.statusbar.phone.StatusBarMoveFromCenterAnimationController
|
||||
import dagger.BindsInstance
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.Subcomponent
|
||||
import java.util.Optional
|
||||
import javax.inject.Named
|
||||
import javax.inject.Scope
|
||||
|
||||
@Scope
|
||||
@MustBeDocumented
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
annotation class SysUIUnfoldScope
|
||||
|
||||
/**
|
||||
* Creates an injectable [SysUIUnfoldComponent] that provides objects that have been scoped with
|
||||
* [@SysUIUnfoldScope]. Since [SysUIUnfoldComponent] depends upon:
|
||||
* * [Optional<UnfoldTransitionProgressProvider>]
|
||||
* * [Optional<ScopedUnfoldTransitionProgressProvider>]
|
||||
* no objects will get constructed if these parameters are empty.
|
||||
*/
|
||||
@Module(subcomponents = [SysUIUnfoldComponent::class])
|
||||
object SysUIUnfoldModule {
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
fun provideSysUIUnfoldComponent(
|
||||
provider: Optional<UnfoldTransitionProgressProvider>,
|
||||
@Named(UNFOLD_STATUS_BAR) scopedProvider: Optional<ScopedUnfoldTransitionProgressProvider>,
|
||||
factory: SysUIUnfoldComponent.Factory
|
||||
) =
|
||||
provider.flatMap {
|
||||
p -> scopedProvider.map { sp -> factory.create(p, sp) }
|
||||
}
|
||||
}
|
||||
|
||||
@SysUIUnfoldScope
|
||||
@Subcomponent
|
||||
interface SysUIUnfoldComponent {
|
||||
|
||||
@Subcomponent.Factory
|
||||
interface Factory {
|
||||
fun create(
|
||||
@BindsInstance provider: UnfoldTransitionProgressProvider,
|
||||
@BindsInstance scopedProvider: ScopedUnfoldTransitionProgressProvider
|
||||
): SysUIUnfoldComponent
|
||||
}
|
||||
|
||||
fun getKeyguardUnfoldTransition(): KeyguardUnfoldTransition
|
||||
|
||||
fun getStatusBarMoveFromCenterAnimationController(): StatusBarMoveFromCenterAnimationController
|
||||
|
||||
fun getUnfoldTransitionWallpaperController(): UnfoldTransitionWallpaperController
|
||||
|
||||
fun getUnfoldLightRevealOverlayAnimation(): UnfoldLightRevealOverlayAnimation
|
||||
}
|
||||
@@ -31,7 +31,6 @@ import android.view.SurfaceControlViewHost
|
||||
import android.view.SurfaceSession
|
||||
import android.view.WindowManager
|
||||
import android.view.WindowlessWindowManager
|
||||
import com.android.systemui.dagger.SysUISingleton
|
||||
import com.android.systemui.dagger.qualifiers.Main
|
||||
import com.android.systemui.dagger.qualifiers.UiBackground
|
||||
import com.android.systemui.statusbar.LightRevealEffect
|
||||
@@ -44,7 +43,7 @@ import java.util.concurrent.Executor
|
||||
import java.util.function.Consumer
|
||||
import javax.inject.Inject
|
||||
|
||||
@SysUISingleton
|
||||
@SysUIUnfoldScope
|
||||
class UnfoldLightRevealOverlayAnimation @Inject constructor(
|
||||
private val context: Context,
|
||||
private val deviceStateManager: DeviceStateManager,
|
||||
|
||||
@@ -21,7 +21,7 @@ import com.android.wm.shell.unfold.ShellUnfoldProgressProvider
|
||||
import com.android.wm.shell.unfold.ShellUnfoldProgressProvider.UnfoldListener
|
||||
import java.util.concurrent.Executor
|
||||
|
||||
class ShellUnfoldProgressProvider(
|
||||
class UnfoldProgressProvider(
|
||||
private val unfoldProgressProvider: UnfoldTransitionProgressProvider
|
||||
) : ShellUnfoldProgressProvider {
|
||||
|
||||
@@ -43,21 +43,27 @@ class UnfoldTransitionModule {
|
||||
fun provideUnfoldTransitionProgressProvider(
|
||||
context: Context,
|
||||
config: UnfoldTransitionConfig,
|
||||
screenStatusProvider: LifecycleScreenStatusProvider,
|
||||
screenStatusProvider: Lazy<LifecycleScreenStatusProvider>,
|
||||
deviceStateManager: DeviceStateManager,
|
||||
sensorManager: SensorManager,
|
||||
@Main executor: Executor,
|
||||
@Main handler: Handler
|
||||
): UnfoldTransitionProgressProvider =
|
||||
createUnfoldTransitionProgressProvider(
|
||||
context,
|
||||
config,
|
||||
screenStatusProvider,
|
||||
deviceStateManager,
|
||||
sensorManager,
|
||||
handler,
|
||||
executor
|
||||
)
|
||||
) =
|
||||
if (config.isEnabled) {
|
||||
Optional.of(
|
||||
createUnfoldTransitionProgressProvider(
|
||||
context,
|
||||
config,
|
||||
screenStatusProvider.get(),
|
||||
deviceStateManager,
|
||||
sensorManager,
|
||||
handler,
|
||||
executor
|
||||
)
|
||||
)
|
||||
} else {
|
||||
Optional.empty()
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
@@ -69,33 +75,37 @@ class UnfoldTransitionModule {
|
||||
fun provideNaturalRotationProgressProvider(
|
||||
context: Context,
|
||||
windowManager: IWindowManager,
|
||||
unfoldTransitionProgressProvider: UnfoldTransitionProgressProvider
|
||||
): NaturalRotationUnfoldProgressProvider =
|
||||
NaturalRotationUnfoldProgressProvider(
|
||||
context,
|
||||
windowManager,
|
||||
unfoldTransitionProgressProvider
|
||||
)
|
||||
unfoldTransitionProgressProvider: Optional<UnfoldTransitionProgressProvider>
|
||||
) =
|
||||
unfoldTransitionProgressProvider.map {
|
||||
provider -> NaturalRotationUnfoldProgressProvider(
|
||||
context,
|
||||
windowManager,
|
||||
provider
|
||||
)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Named(UNFOLD_STATUS_BAR)
|
||||
@Singleton
|
||||
fun provideStatusBarScopedTransitionProvider(
|
||||
source: NaturalRotationUnfoldProgressProvider
|
||||
): ScopedUnfoldTransitionProgressProvider =
|
||||
ScopedUnfoldTransitionProgressProvider(source)
|
||||
source: Optional<NaturalRotationUnfoldProgressProvider>
|
||||
) =
|
||||
source.map {
|
||||
provider -> ScopedUnfoldTransitionProgressProvider(provider)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideShellProgressProvider(
|
||||
config: UnfoldTransitionConfig,
|
||||
provider: Lazy<UnfoldTransitionProgressProvider>
|
||||
provider: Optional<UnfoldTransitionProgressProvider>
|
||||
): Optional<ShellUnfoldProgressProvider> =
|
||||
if (config.isEnabled) {
|
||||
Optional.ofNullable(ShellUnfoldProgressProvider(provider.get()))
|
||||
if (config.isEnabled && provider.isPresent()) {
|
||||
Optional.of(UnfoldProgressProvider(provider.get()))
|
||||
} else {
|
||||
Optional.empty()
|
||||
}
|
||||
}
|
||||
|
||||
const val UNFOLD_STATUS_BAR = "unfold_status_bar"
|
||||
const val UNFOLD_STATUS_BAR = "unfold_status_bar"
|
||||
|
||||
@@ -16,12 +16,11 @@
|
||||
|
||||
package com.android.systemui.unfold
|
||||
|
||||
import com.android.systemui.dagger.SysUISingleton
|
||||
import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener
|
||||
import com.android.systemui.util.WallpaperController
|
||||
import javax.inject.Inject
|
||||
|
||||
@SysUISingleton
|
||||
@SysUIUnfoldScope
|
||||
class UnfoldTransitionWallpaperController @Inject constructor(
|
||||
private val unfoldTransitionProgressProvider: UnfoldTransitionProgressProvider,
|
||||
private val wallpaperController: WallpaperController
|
||||
|
||||
@@ -16,7 +16,14 @@
|
||||
|
||||
package com.android.systemui.util.kotlin
|
||||
|
||||
import java.util.Optional
|
||||
|
||||
/**
|
||||
* If [value] is not null, then returns block(value). Otherwise returns null.
|
||||
*/
|
||||
inline fun <T : Any, R> transform(value: T?, block: (T) -> R): R? = value?.let(block)
|
||||
|
||||
/**
|
||||
* Assists type-checking to unpack a Java Optional into T?
|
||||
*/
|
||||
inline fun <T> Optional<T>.getOrNull(): T? = orElse(null)
|
||||
|
||||
@@ -57,17 +57,21 @@ import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||
import com.android.systemui.unfold.SysUIUnfoldComponent;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.unfold.config.UnfoldTransitionConfig;
|
||||
import com.android.systemui.util.DeviceConfigProxy;
|
||||
import com.android.systemui.util.DeviceConfigProxyFake;
|
||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||
import com.android.systemui.util.time.FakeSystemClock;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.ArgumentMatchers;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
@@ -90,7 +94,8 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
||||
private @Mock NavigationModeController mNavigationModeController;
|
||||
private @Mock KeyguardDisplayManager mKeyguardDisplayManager;
|
||||
private @Mock DozeParameters mDozeParameters;
|
||||
private @Mock UnfoldTransitionConfig mUnfoldTransitionConfig;
|
||||
private @Mock Optional<SysUIUnfoldComponent> mSysUIUnfoldComponent;
|
||||
private @Mock Optional<UnfoldLightRevealOverlayAnimation> mUnfoldAnimationOptional;
|
||||
private @Mock UnfoldLightRevealOverlayAnimation mUnfoldAnimation;
|
||||
private @Mock SysuiStatusBarStateController mStatusBarStateController;
|
||||
private @Mock KeyguardStateController mKeyguardStateController;
|
||||
@@ -110,6 +115,12 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
||||
|
||||
when(mLockPatternUtils.getDevicePolicyManager()).thenReturn(mDevicePolicyManager);
|
||||
when(mPowerManager.newWakeLock(anyInt(), any())).thenReturn(mock(WakeLock.class));
|
||||
when(mSysUIUnfoldComponent.map(
|
||||
ArgumentMatchers.<Function<SysUIUnfoldComponent, UnfoldLightRevealOverlayAnimation>>
|
||||
any()))
|
||||
.thenReturn(mUnfoldAnimationOptional);
|
||||
when(mUnfoldAnimationOptional.isPresent()).thenReturn(true);
|
||||
when(mUnfoldAnimationOptional.get()).thenReturn(mUnfoldAnimation);
|
||||
|
||||
mViewMediator = new KeyguardViewMediator(
|
||||
mContext,
|
||||
@@ -128,8 +139,7 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
||||
mNavigationModeController,
|
||||
mKeyguardDisplayManager,
|
||||
mDozeParameters,
|
||||
mUnfoldTransitionConfig,
|
||||
() -> mUnfoldAnimation,
|
||||
mSysUIUnfoldComponent,
|
||||
mStatusBarStateController,
|
||||
mKeyguardStateController,
|
||||
() -> mKeyguardUnlockAnimationController,
|
||||
@@ -161,8 +171,6 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
||||
@TestableLooper.RunWithLooper(setAsMainLooper = true)
|
||||
public void testUnfoldTransitionEnabledDrawnTasksReady_onScreenTurningOn_callsDrawnCallback()
|
||||
throws RemoteException {
|
||||
when(mUnfoldTransitionConfig.isEnabled()).thenReturn(true);
|
||||
|
||||
mViewMediator.onScreenTurningOn(mKeyguardDrawnCallback);
|
||||
TestableLooper.get(this).processAllMessages();
|
||||
onUnfoldOverlayReady();
|
||||
@@ -175,7 +183,7 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
||||
@TestableLooper.RunWithLooper(setAsMainLooper = true)
|
||||
public void testUnfoldTransitionDisabledDrawnTasksReady_onScreenTurningOn_callsDrawnCallback()
|
||||
throws RemoteException {
|
||||
when(mUnfoldTransitionConfig.isEnabled()).thenReturn(false);
|
||||
when(mUnfoldAnimationOptional.isPresent()).thenReturn(false);
|
||||
|
||||
mViewMediator.onScreenTurningOn(mKeyguardDrawnCallback);
|
||||
TestableLooper.get(this).processAllMessages();
|
||||
|
||||
@@ -125,6 +125,7 @@ import com.android.systemui.statusbar.notification.stack.NotificationStackScroll
|
||||
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.unfold.SysUIUnfoldComponent;
|
||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||
import com.android.systemui.util.settings.SecureSettings;
|
||||
import com.android.systemui.util.time.FakeSystemClock;
|
||||
@@ -140,6 +141,7 @@ import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.stubbing.Answer;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@SmallTest
|
||||
@RunWith(AndroidTestingRunner.class)
|
||||
@@ -306,7 +308,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
||||
private NotificationsQSContainerController mNotificationsQSContainerController;
|
||||
@Mock
|
||||
private FeatureFlags mFeatureFlags;
|
||||
|
||||
private Optional<SysUIUnfoldComponent> mSysUIUnfoldComponent;
|
||||
private SysuiStatusBarStateController mStatusBarStateController;
|
||||
private NotificationPanelViewController mNotificationPanelViewController;
|
||||
private View.AccessibilityDelegate mAccessibiltyDelegate;
|
||||
@@ -450,6 +452,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
||||
mLockscreenGestureLogger,
|
||||
new PanelExpansionStateManager(),
|
||||
mNotificationRemoteInputManager,
|
||||
mSysUIUnfoldComponent,
|
||||
mControlsComponent,
|
||||
mFeatureFlags);
|
||||
mNotificationPanelViewController.initDependencies(
|
||||
|
||||
@@ -26,6 +26,7 @@ import androidx.test.filters.SmallTest
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import com.android.systemui.R
|
||||
import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.unfold.SysUIUnfoldComponent
|
||||
import com.android.systemui.unfold.config.UnfoldTransitionConfig
|
||||
import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider
|
||||
import com.android.systemui.util.mockito.any
|
||||
@@ -39,6 +40,7 @@ import org.mockito.Mockito.mock
|
||||
import org.mockito.Mockito.`when`
|
||||
import org.mockito.Mockito.verify
|
||||
import org.mockito.MockitoAnnotations
|
||||
import java.util.Optional
|
||||
|
||||
@SmallTest
|
||||
class PhoneStatusBarViewControllerTest : SysuiTestCase() {
|
||||
@@ -51,10 +53,11 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() {
|
||||
private lateinit var panelView: ViewGroup
|
||||
@Mock
|
||||
private lateinit var scrimController: ScrimController
|
||||
|
||||
@Mock
|
||||
private lateinit var moveFromCenterAnimation: StatusBarMoveFromCenterAnimationController
|
||||
@Mock
|
||||
private lateinit var sysuiUnfoldComponent: SysUIUnfoldComponent
|
||||
@Mock
|
||||
private lateinit var progressProvider: ScopedUnfoldTransitionProgressProvider
|
||||
|
||||
private lateinit var view: PhoneStatusBarView
|
||||
@@ -66,7 +69,8 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() {
|
||||
fun setUp() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
`when`(panelViewController.view).thenReturn(panelView)
|
||||
|
||||
`when`(sysuiUnfoldComponent.getStatusBarMoveFromCenterAnimationController())
|
||||
.thenReturn(moveFromCenterAnimation)
|
||||
// create the view on main thread as it requires main looper
|
||||
InstrumentationRegistry.getInstrumentation().runOnMainSync {
|
||||
val parent = FrameLayout(mContext) // add parent to keep layout params
|
||||
@@ -112,9 +116,8 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() {
|
||||
|
||||
private fun createController(view: PhoneStatusBarView): PhoneStatusBarViewController {
|
||||
return PhoneStatusBarViewController.Factory(
|
||||
{ progressProvider },
|
||||
{ moveFromCenterAnimation },
|
||||
unfoldConfig
|
||||
Optional.of(sysuiUnfoldComponent),
|
||||
Optional.of(progressProvider)
|
||||
).create(view, touchEventHandler)
|
||||
}
|
||||
|
||||
|
||||
@@ -143,10 +143,6 @@ import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||
import com.android.systemui.statusbar.window.StatusBarWindowController;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||
import com.android.systemui.unfold.UnfoldTransitionWallpaperController;
|
||||
import com.android.systemui.unfold.config.UnfoldTransitionConfig;
|
||||
import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider;
|
||||
import com.android.systemui.util.WallpaperController;
|
||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||
import com.android.systemui.util.concurrency.MessageRouterImpl;
|
||||
@@ -261,10 +257,6 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
@Mock private DemoModeController mDemoModeController;
|
||||
@Mock private Lazy<NotificationShadeDepthController> mNotificationShadeDepthControllerLazy;
|
||||
@Mock private BrightnessSliderController.Factory mBrightnessSliderFactory;
|
||||
@Mock private UnfoldTransitionConfig mUnfoldTransitionConfig;
|
||||
@Mock private Lazy<UnfoldLightRevealOverlayAnimation> mUnfoldLightRevealOverlayAnimationLazy;
|
||||
@Mock private Lazy<NaturalRotationUnfoldProgressProvider> mNaturalRotationProgressProvider;
|
||||
@Mock private Lazy<UnfoldTransitionWallpaperController> mUnfoldWallpaperController;
|
||||
@Mock private WallpaperController mWallpaperController;
|
||||
@Mock private OngoingCallController mOngoingCallController;
|
||||
@Mock private SystemStatusAnimationScheduler mAnimationScheduler;
|
||||
@@ -443,10 +435,6 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
mStatusBarTouchableRegionManager,
|
||||
mNotificationIconAreaController,
|
||||
mBrightnessSliderFactory,
|
||||
mUnfoldTransitionConfig,
|
||||
mUnfoldLightRevealOverlayAnimationLazy,
|
||||
mUnfoldWallpaperController,
|
||||
mNaturalRotationProgressProvider,
|
||||
mWallpaperController,
|
||||
mOngoingCallController,
|
||||
mAnimationScheduler,
|
||||
|
||||
Reference in New Issue
Block a user