Allow for disabled chip animation configuration - Add config for different form factors to disable chip animation and go directly to the persistent dot - Pass status event to notifyTransitionToPersistentDot when animation is disabled (since currentlyDisplayedEvent will always be null) Bug: 289425128 Test: manual Change-Id: I876b0ee17fe8dc4840f7732173d3b02f52488f7f
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 9c864ab..540ae43 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml
@@ -775,6 +775,9 @@ <!-- Flag to enable privacy dot views, it shall be true for normal case --> <bool name="config_enablePrivacyDot">true</bool> + <!-- Flag to enable privacy chip animation, it shall be true for normal case --> + <bool name="config_enablePrivacyChipAnimation">true</bool> + <!-- Class for the communal source connector to be used --> <string name="config_communalSourceConnector" translatable="false"></string>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventCoordinator.kt index 23edf17..2403920 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventCoordinator.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventCoordinator.kt
@@ -164,7 +164,9 @@ } private fun isChipAnimationEnabled(): Boolean { - return DeviceConfig.getBoolean(NAMESPACE_PRIVACY, CHIP_ANIMATION_ENABLED, true) + val defaultValue = + context.resources.getBoolean(R.bool.config_enablePrivacyChipAnimation) + return DeviceConfig.getBoolean(NAMESPACE_PRIVACY, CHIP_ANIMATION_ENABLED, defaultValue) } } }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemStatusAnimationSchedulerImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemStatusAnimationSchedulerImpl.kt index 6fc715a..ea16fc4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemStatusAnimationSchedulerImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemStatusAnimationSchedulerImpl.kt
@@ -243,7 +243,7 @@ if (!event.showAnimation && event.forceVisible) { // If animations are turned off, we'll transition directly to the dot animationState.value = SHOWING_PERSISTENT_DOT - notifyTransitionToPersistentDot() + notifyTransitionToPersistentDot(event) return } @@ -335,7 +335,7 @@ } animators.add(chipAnimationController.onSystemEventAnimationFinish(hasPersistentDot)) if (hasPersistentDot) { - val dotAnim = notifyTransitionToPersistentDot() + val dotAnim = notifyTransitionToPersistentDot(currentlyDisplayedEvent) if (dotAnim != null) { animators.add(dotAnim) } @@ -344,12 +344,12 @@ return AnimatorSet().also { it.playTogether(animators) } } - private fun notifyTransitionToPersistentDot(): Animator? { + private fun notifyTransitionToPersistentDot(event: StatusEvent?): Animator? { logger?.logTransitionToPersistentDotCallbackInvoked() val anims: List<Animator> = listeners.mapNotNull { it.onSystemStatusAnimationTransitionToPersistentDot( - currentlyDisplayedEvent?.contentDescription + event?.contentDescription ) } if (anims.isNotEmpty()) {