Loading packages/SystemUI/src/com/android/keyguard/KeyguardUnfoldTransition.kt 0 → 100644 +49 −0 Original line number Diff line number Diff line /* * 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) { } } packages/SystemUI/src/com/android/systemui/dagger/SysUIComponent.java +20 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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()); } /** Loading Loading @@ -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. */ Loading packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -115,6 +116,7 @@ import dagger.Provides; StatusBarPolicyModule.class, StatusBarWindowModule.class, SysUIConcurrencyModule.class, SysUIUnfoldModule.class, TunerModule.class, UserModule.class, UtilModule.class, Loading packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +7 −8 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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, Loading Loading @@ -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); Loading Loading @@ -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() Loading packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java +4 −6 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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, Loading @@ -116,8 +115,7 @@ public class KeyguardModule { navigationModeController, keyguardDisplayManager, dozeParameters, unfoldTransitionConfig, unfoldLightRevealOverlayAnimation, unfoldComponent, statusBarStateController, keyguardStateController, keyguardUnlockAnimationController, Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUnfoldTransition.kt 0 → 100644 +49 −0 Original line number Diff line number Diff line /* * 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) { } }
packages/SystemUI/src/com/android/systemui/dagger/SysUIComponent.java +20 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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()); } /** Loading Loading @@ -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. */ Loading
packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -115,6 +116,7 @@ import dagger.Provides; StatusBarPolicyModule.class, StatusBarWindowModule.class, SysUIConcurrencyModule.class, SysUIUnfoldModule.class, TunerModule.class, UserModule.class, UtilModule.class, Loading
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +7 −8 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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, Loading Loading @@ -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); Loading Loading @@ -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() Loading
packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java +4 −6 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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, Loading @@ -116,8 +115,7 @@ public class KeyguardModule { navigationModeController, keyguardDisplayManager, dozeParameters, unfoldTransitionConfig, unfoldLightRevealOverlayAnimation, unfoldComponent, statusBarStateController, keyguardStateController, keyguardUnlockAnimationController, Loading