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

Commit d7fb7f37 authored by Tony Wickham's avatar Tony Wickham Committed by Android (Google) Code Review
Browse files

Merge "Cleanup taskbar+assistant interactions" into tm-qpr-dev

parents 8848152b eeb66e41
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -627,8 +627,10 @@ public class TaskbarActivityContext extends BaseTaskbarContext {

    /** Adds the given view to WindowManager with the provided LayoutParams (creates new window). */
    public void addWindowView(View view, WindowManager.LayoutParams windowLayoutParams) {
        if (!view.isAttachedToWindow()) {
            mWindowManager.addView(view, windowLayoutParams);
        }
    }

    /** Removes the given view from WindowManager. See {@link #addWindowView}. */
    public void removeWindowView(View view) {
+11 −6
Original line number Diff line number Diff line
@@ -36,9 +36,12 @@ class VoiceInteractionWindowController(val context: TaskbarActivityContext)

                override fun draw(canvas: Canvas) {
                    super.draw(canvas)
                    if (this@VoiceInteractionWindowController.context.isGestureNav
                        && controllers.taskbarStashController.isInAppAndNotStashed) {
                        taskbarBackgroundRenderer.draw(canvas)
                    }
                }
            }
        separateWindowForTaskbarBackground.recreateControllers()
        separateWindowForTaskbarBackground.setWillNotDraw(false)

@@ -74,18 +77,20 @@ class VoiceInteractionWindowController(val context: TaskbarActivityContext)
            fadeStashedHandle.end()
        }

        if (context.isGestureNav && controllers.taskbarStashController.isInAppAndNotStashed) {
            moveTaskbarBackgroundToLowerLayer()
        }
        moveTaskbarBackgroundToAppropriateLayer()
    }

    /**
     * Either:
     * Hides the TaskbarDragLayer background and creates a new window to draw just that background.
     * OR
     * Removes the temporary window and show the TaskbarDragLayer background again.
     */
    private fun moveTaskbarBackgroundToLowerLayer() {
    private fun moveTaskbarBackgroundToAppropriateLayer() {
        val taskbarBackgroundOverride = controllers.taskbarDragLayerController
            .overrideBackgroundAlpha
        if (isVoiceInteractionWindowVisible) {
        val moveToLowerLayer = isVoiceInteractionWindowVisible
        if (moveToLowerLayer) {
            // First add the temporary window, then hide the overlapping taskbar background.
            context.addWindowView(separateWindowForTaskbarBackground, separateWindowLayoutParams)
            ViewRootSync.synchronizeNextDraw(separateWindowForTaskbarBackground, context.dragLayer