diff options
11 files changed, 49 insertions, 2 deletions
diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/ComposedDigitalLayerController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/ComposedDigitalLayerController.kt index 98cf68468151..f90552796e9f 100644 --- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/ComposedDigitalLayerController.kt +++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/ComposedDigitalLayerController.kt @@ -137,6 +137,10 @@ class ComposedDigitalLayerController(private val clockCtx: ClockContext) : override fun onPositionUpdated(distance: Float, fraction: Float) {} override fun onPickerCarouselSwiping(swipingFraction: Float) {} + + override fun onFidgetTap(x: Float, y: Float) { + view.animateFidget(x, y) + } } override val faceEvents = diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt index 74d595ce65e6..f24ad1c10c4a 100644 --- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt +++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt @@ -284,6 +284,8 @@ class DefaultClockController( override fun onPositionUpdated(fromLeft: Int, direction: Int, fraction: Float) {} override fun onPositionUpdated(distance: Float, fraction: Float) {} + + override fun onFidgetTap(x: Float, y: Float) {} } inner class LargeClockAnimations( diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt index cfcf201796da..b2dbd6552955 100644 --- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt +++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/FlexClockFaceController.kt @@ -230,7 +230,10 @@ class FlexClockFaceController(clockCtx: ClockContext, private val isLargeClock: override fun onPositionUpdated(distance: Float, fraction: Float) { layerController.animations.onPositionUpdated(distance, fraction) - // TODO(b/378128811) port stepping animation + } + + override fun onFidgetTap(x: Float, y: Float) { + layerController.animations.onFidgetTap(x, y) } } diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/SimpleDigitalHandLayerController.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/SimpleDigitalHandLayerController.kt index 1659814b74eb..a5adfa2a1ac6 100644 --- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/SimpleDigitalHandLayerController.kt +++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/SimpleDigitalHandLayerController.kt @@ -207,6 +207,10 @@ open class SimpleDigitalHandLayerController( override fun onPositionUpdated(fromLeft: Int, direction: Int, fraction: Float) {} override fun onPositionUpdated(distance: Float, fraction: Float) {} + + override fun onFidgetTap(x: Float, y: Float) { + view.animateFidget(x, y) + } } override val faceEvents = diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/FlexClockView.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/FlexClockView.kt index f0f344a605a9..a9f91e077651 100644 --- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/FlexClockView.kt +++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/FlexClockView.kt @@ -281,6 +281,10 @@ class FlexClockView(clockCtx: ClockContext) : FrameLayout(clockCtx.context) { } } + fun animateFidget(x: Float, y: Float) { + digitalClockTextViewMap.forEach { _, view -> view.animateFidget(x, y) } + } + private fun updateLocale(locale: Locale) { isMonoVerticalNumericLineSpacing = !NON_MONO_VERTICAL_NUMERIC_LINE_SPACING_LANGUAGES.any { diff --git a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt index 13f563389e19..c6d31a58bc7d 100644 --- a/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt +++ b/packages/SystemUI/customization/src/com/android/systemui/shared/clocks/view/SimpleDigitalClockTextView.kt @@ -304,6 +304,11 @@ open class SimpleDigitalClockTextView( updateTextBoundsForTextAnimator() } + fun animateFidget(x: Float, y: Float) { + // TODO(b/374306512): Implement Fidget Animation + logger.animateFidget(x, y) + } + fun refreshText() { lockScreenPaint.getTextBounds(text, 0, text.length, textBounds) if (this::textAnimator.isInitialized) { diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockAnimations.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockAnimations.kt index 2df14a86e77c..77c18eac289c 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockAnimations.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockAnimations.kt @@ -58,4 +58,7 @@ interface ClockAnimations { * 0.0 -> clock is scaled down in the shade; previewRatio is previewSize / screenSize */ fun onPickerCarouselSwiping(swipingFraction: Float) + + /** Runs when an animation when the view is tapped on the lockscreen */ + fun onFidgetTap(x: Float, y: Float) } diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockLogger.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockLogger.kt index 6a9bbca1d4e1..9a837446a802 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockLogger.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockLogger.kt @@ -90,6 +90,13 @@ class ClockLogger(private val view: View?, buffer: MessageBuffer, tag: String) : } } + fun animateFidget(x: Float, y: Float) { + d({ "animateFidget($str1, $str2)" }) { + str1 = x.toString() + str2 = y.toString() + } + } + companion object { // Used when MessageBuffers are not provided by the host application val DEFAULT_MESSAGE_BUFFER = LogcatOnlyMessageBuffer(LogLevel.INFO) diff --git a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt index 71b622aa0608..6753b37bf1ec 100644 --- a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt +++ b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt @@ -564,6 +564,13 @@ constructor( } } + fun handleFidgetTap(x: Float, y: Float) { + clock?.run { + smallClock.animations.onFidgetTap(x, y) + largeClock.animations.onFidgetTap(x, y) + } + } + private fun handleDoze(doze: Float) { dozeAmount = doze clock?.run { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractor.kt index dab4b5f4183c..96e05cb7cd63 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardClockInteractor.kt @@ -177,6 +177,14 @@ constructor( } } + fun handleFidgetTap(x: Float, y: Float) { + if (selectedClockSize.value == ClockSizeSetting.DYNAMIC) { + clockEventController.handleFidgetTap(x, y) + } else { + wallpaperFocalAreaInteractor.setTapPosition(x, y) + } + } + fun animateFoldToAod(foldFraction: Float) { clock?.let { clock -> clock.smallClock.animations.fold(foldFraction) diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index 10d76fbd13a1..69a421473c05 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -2095,7 +2095,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump mLockscreenGestureLogger .log(LockscreenUiEvent.LOCKSCREEN_LOCK_SHOW_HINT); mKeyguardIndicationController.showActionToUnlock(); - mWallpaperFocalAreaViewModel.setTapPosition(x, y); + mKeyguardClockInteractor.handleFidgetTap(x, y); } } break; |