From dc99480f8b346a9e7c8e2d2541b3630919fe373a Mon Sep 17 00:00:00 2001 From: Nick Chameyev Date: Mon, 28 Jun 2021 19:10:08 +0100 Subject: [PATCH] Add initial unfold animation prototype under feature flag Introduces interfaces and classes for subscribing to hinge update events, unfold transition progress controller that uses dynamic animations to calculate current transition progress. Added linear light reveal scrim overlay as an example of transition progress subscriber. Bug: 190818044 Test: manual Change-Id: Ibf73a8c7dfa534432e0ed3ad637f0277bc7aafb9 --- core/res/res/values/config.xml | 3 + core/res/res/values/symbols.xml | 1 + packages/SystemUI/shared/Android.bp | 1 + .../statusbar/policy/CallbackController.java | 0 .../android/unfold/UnfoldTransitionFactory.kt | 77 ++++++++ .../UnfoldTransitionProgressProvider.kt | 38 ++++ .../config/ResourceUnfoldTransitionConfig.kt | 41 ++++ .../unfold/config/UnfoldTransitionConfig.kt | 38 ++++ .../FixedTimingTransitionProgressProvider.kt | 117 +++++++++++ ...csBasedUnfoldTransitionProgressProvider.kt | 184 ++++++++++++++++++ .../unfold/updates/DeviceFoldStateProvider.kt | 124 ++++++++++++ .../unfold/updates/FoldStateProvider.kt | 55 ++++++ .../updates/hinge/EmptyHingeAngleProvider.kt | 17 ++ .../updates/hinge/HingeAngleProvider.kt | 12 ++ .../hinge/RotationSensorHingeAngleProvider.kt | 67 +++++++ .../updates/screen/ScreenStatusProvider.kt | 29 +++ .../systemui/dagger/DependencyProvider.java | 37 ++++ .../dagger/FrameworkServicesModule.java | 7 + .../keyguard/LifecycleScreenStatusProvider.kt | 44 +++++ .../systemui/statusbar/LightRevealScrim.kt | 29 +++ .../systemui/statusbar/phone/StatusBar.java | 12 ++ .../phone/dagger/StatusBarPhoneModule.java | 6 + .../UnfoldLightRevealOverlayAnimation.kt | 127 ++++++++++++ .../statusbar/phone/StatusBarTest.java | 6 + 24 files changed, 1072 insertions(+) rename packages/SystemUI/{ => shared}/src/com/android/systemui/statusbar/policy/CallbackController.java (100%) create mode 100644 packages/SystemUI/shared/src/com/android/unfold/UnfoldTransitionFactory.kt create mode 100644 packages/SystemUI/shared/src/com/android/unfold/UnfoldTransitionProgressProvider.kt create mode 100644 packages/SystemUI/shared/src/com/android/unfold/config/ResourceUnfoldTransitionConfig.kt create mode 100644 packages/SystemUI/shared/src/com/android/unfold/config/UnfoldTransitionConfig.kt create mode 100644 packages/SystemUI/shared/src/com/android/unfold/progress/FixedTimingTransitionProgressProvider.kt create mode 100644 packages/SystemUI/shared/src/com/android/unfold/progress/PhysicsBasedUnfoldTransitionProgressProvider.kt create mode 100644 packages/SystemUI/shared/src/com/android/unfold/updates/DeviceFoldStateProvider.kt create mode 100644 packages/SystemUI/shared/src/com/android/unfold/updates/FoldStateProvider.kt create mode 100644 packages/SystemUI/shared/src/com/android/unfold/updates/hinge/EmptyHingeAngleProvider.kt create mode 100644 packages/SystemUI/shared/src/com/android/unfold/updates/hinge/HingeAngleProvider.kt create mode 100644 packages/SystemUI/shared/src/com/android/unfold/updates/hinge/RotationSensorHingeAngleProvider.kt create mode 100644 packages/SystemUI/shared/src/com/android/unfold/updates/screen/ScreenStatusProvider.kt create mode 100644 packages/SystemUI/src/com/android/systemui/keyguard/LifecycleScreenStatusProvider.kt create mode 100644 packages/SystemUI/src/com/android/systemui/unfold/UnfoldLightRevealOverlayAnimation.kt diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 99d15160bec64..ef8e938cbca76 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -657,6 +657,9 @@ + + false +