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

Commit f733a716 authored by Brian Isganitis's avatar Brian Isganitis Committed by Android (Google) Code Review
Browse files

Merge "Avoid syncing voice interaction background window for skipAnim=true." into tm-qpr-dev

parents 7f31d4c0 c7c2e8d7
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
            )
        }
    }