mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 03:08:19 +00:00
Avoid syncing voice interaction background window for skipAnim=true.
Test: Manual Fix: 236924161 Change-Id: Iaf95221678d36f9b5782fd8c4bda626b946565a9
This commit is contained in:
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user