Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c7c2e8d7 authored by Brian Isganitis's avatar Brian Isganitis
Browse files

Avoid syncing voice interaction background window for skipAnim=true.

Test: Manual
Fix: 236924161
Change-Id: Iaf95221678d36f9b5782fd8c4bda626b946565a9
parent cdadbaa2
Loading
Loading
Loading
Loading
+17 −13
Original line number Diff line number Diff line
@@ -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
            )
        }
    }