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

Commit 8b9becf5 authored by Maryam Dehaini's avatar Maryam Dehaini Committed by Android (Google) Code Review
Browse files

Merge "Set CaptionController to null when views are released" into main

parents 8ff038e4 b5379deb
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -290,7 +290,8 @@ abstract class WindowDecoration2<T>(
    private fun releaseCaptionController() {
    private fun releaseCaptionController() {
        val wct = windowContainerTransactionSupplier()
        val wct = windowContainerTransactionSupplier()
        val t = surfaceControlTransactionSupplier()
        val t = surfaceControlTransactionSupplier()
        captionController?.releaseViews(wct, t)
        captionController?.close(wct, t)
        captionController = null
        t.apply()
        t.apply()
        if (!wct.isEmpty) {
        if (!wct.isEmpty) {
            if (DesktopExperienceFlags.ENABLE_DESKTOP_WINDOWING_PIP.isTrue) {
            if (DesktopExperienceFlags.ENABLE_DESKTOP_WINDOWING_PIP.isTrue) {
@@ -527,7 +528,8 @@ abstract class WindowDecoration2<T>(
                released = true
                released = true
            }
            }


            released = released or (captionController?.releaseViews(wct, t) == true)
            released = released or (captionController?.close(wct, t) == true)
            captionController = null


            if (released) {
            if (released) {
                t.apply()
                t.apply()
@@ -538,7 +540,6 @@ abstract class WindowDecoration2<T>(
        traceSection(traceTag = Trace.TRACE_TAG_WINDOW_MANAGER, name = "WindowDecoration2#close") {
        traceSection(traceTag = Trace.TRACE_TAG_WINDOW_MANAGER, name = "WindowDecoration2#close") {
            displayController.removeDisplayWindowListener(onDisplaysChangedListener)
            displayController.removeDisplayWindowListener(onDisplaysChangedListener)
            taskDragResizer?.close()
            taskDragResizer?.close()
            captionController?.close()
            val wct = windowContainerTransactionSupplier()
            val wct = windowContainerTransactionSupplier()
            releaseViews(wct)
            releaseViews(wct)
            if (!wct.isEmpty) {
            if (!wct.isEmpty) {
+2 −11
Original line number Original line Diff line number Diff line
@@ -498,21 +498,12 @@ class AppHandleController(


    override val occludingElements: List<OccludingElement> = emptyList()
    override val occludingElements: List<OccludingElement> = emptyList()


    override fun releaseViews(
    override fun close(wct: WindowContainerTransaction, t: SurfaceControl.Transaction): Boolean {
        wct: WindowContainerTransaction,
        t: SurfaceControl.Transaction,
    ): Boolean {
        closeHandleMenu()
        closeManageWindowsMenu()
        disposeStatusBarInputLayer()
        return super.releaseViews(wct, t)
    }

    override fun close() {
        closeHandleMenu()
        closeHandleMenu()
        closeManageWindowsMenu()
        closeManageWindowsMenu()
        disposeStatusBarInputLayer()
        disposeStatusBarInputLayer()
        viewHolder.close()
        viewHolder.close()
        notifyNoCaption()
        notifyNoCaption()
        return super.close(wct, t)
    }
    }
}
}
+2 −11
Original line number Original line Diff line number Diff line
@@ -725,17 +725,7 @@ class AppHeaderController(
        viewHolder.a11yAnnounceFocused()
        viewHolder.a11yAnnounceFocused()
    }
    }


    override fun releaseViews(
    override fun close(wct: WindowContainerTransaction, t: SurfaceControl.Transaction): Boolean {
        wct: WindowContainerTransaction,
        t: SurfaceControl.Transaction,
    ): Boolean {
        closeHandleMenu()
        closeManageWindowsMenu()
        closeMaximizeMenu()
        return super.releaseViews(wct, t)
    }

    override fun close() {
        loadAppInfoJob?.cancel()
        loadAppInfoJob?.cancel()
        closeHandleMenu()
        closeHandleMenu()
        closeManageWindowsMenu()
        closeManageWindowsMenu()
@@ -744,6 +734,7 @@ class AppHeaderController(
        if (desktopState.canEnterDesktopMode && isEducationEnabled) {
        if (desktopState.canEnterDesktopMode && isEducationEnabled) {
            notifyNoCaption()
            notifyNoCaption()
        }
        }
        return super.close(wct, t)
    }
    }


    private companion object {
    private companion object {
+1 −4
Original line number Original line Diff line number Diff line
@@ -92,9 +92,6 @@ abstract class CaptionController<T>(
    /** Type of caption. */
    /** Type of caption. */
    abstract val captionType: CaptionType
    abstract val captionType: CaptionType


    /** Called when [WindowDecoration2] is closing. */
    abstract fun close()

    /**
    /**
     * Returns the caption height including any additional padding that will be added to the
     * Returns the caption height including any additional padding that will be added to the
     * caption.
     * caption.
@@ -497,7 +494,7 @@ abstract class CaptionController<T>(
    }
    }


    /** Releases all caption views. Returns true if caption view host is released. */
    /** Releases all caption views. Returns true if caption view host is released. */
    open fun releaseViews(wct: WindowContainerTransaction, t: SurfaceControl.Transaction): Boolean =
    open fun close(wct: WindowContainerTransaction, t: SurfaceControl.Transaction): Boolean =
        traceSection(
        traceSection(
            traceTag = Trace.TRACE_TAG_WINDOW_MANAGER,
            traceTag = Trace.TRACE_TAG_WINDOW_MANAGER,
            name = "CaptionController#releaseViews",
            name = "CaptionController#releaseViews",