Avoid syncing voice interaction background window for skipAnim=true.

Test: Manual
Fix: 236924161
Change-Id: Iaf95221678d36f9b5782fd8c4bda626b946565a9
This commit is contained in:
Brian Isganitis
2022-09-27 22:00:00 +00:00
parent cdadbaa225
commit c7c2e8d7e6

View File

@@ -77,7 +77,7 @@ class VoiceInteractionWindowController(val context: TaskbarActivityContext)
fadeStashedHandle.end()
}
moveTaskbarBackgroundToAppropriateLayer()
moveTaskbarBackgroundToAppropriateLayer(skipAnim)
}
/**
@@ -86,24 +86,28 @@ class VoiceInteractionWindowController(val context: TaskbarActivityContext)
* OR
* Removes the temporary window and show the TaskbarDragLayer background again.
*/
private fun moveTaskbarBackgroundToAppropriateLayer() {
private fun moveTaskbarBackgroundToAppropriateLayer(skipAnim: Boolean) {
val taskbarBackgroundOverride = controllers.taskbarDragLayerController
.overrideBackgroundAlpha
val moveToLowerLayer = isVoiceInteractionWindowVisible
if (moveToLowerLayer) {
val onWindowsSynchronized = if (moveToLowerLayer) {
// First add the temporary window, then hide the overlapping taskbar background.
context.addWindowView(separateWindowForTaskbarBackground, separateWindowLayoutParams)
ViewRootSync.synchronizeNextDraw(separateWindowForTaskbarBackground, context.dragLayer
) {
taskbarBackgroundOverride.updateValue(0f)
}
context.addWindowView(separateWindowForTaskbarBackground, separateWindowLayoutParams);
{ taskbarBackgroundOverride.updateValue(0f) }
} else {
// First reapply the original taskbar background, then remove the temporary window.
taskbarBackgroundOverride.updateValue(1f)
ViewRootSync.synchronizeNextDraw(separateWindowForTaskbarBackground, context.dragLayer
) {
context.removeWindowView(separateWindowForTaskbarBackground)
}
taskbarBackgroundOverride.updateValue(1f);
{ context.removeWindowView(separateWindowForTaskbarBackground) }
}
if (skipAnim) {
onWindowsSynchronized()
} else {
ViewRootSync.synchronizeNextDraw(
separateWindowForTaskbarBackground,
context.dragLayer,
onWindowsSynchronized
)
}
}