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

Commit 138d5e8c authored by Orhan Uysal's avatar Orhan Uysal Committed by Android (Google) Code Review
Browse files

Merge "Add trace markers to monitor persistence updates" into main

parents 77015f66 29665284
Loading
Loading
Loading
Loading
+68 −53
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@ import android.window.DesktopExperienceFlags
import android.window.DesktopModeFlags
import androidx.core.util.forEach
import androidx.core.util.valueIterator
import androidx.tracing.Trace
import com.android.app.tracing.traceSection
import com.android.internal.annotations.VisibleForTesting
import com.android.internal.protolog.ProtoLog
import com.android.wm.shell.common.WorkSerializer
@@ -1180,25 +1182,32 @@ class DesktopRepository(
            }
            .toTypedArray()

    private fun updatePersistentRepository(displayId: Int) {
    private fun updatePersistentRepository(displayId: Int): Unit =
        traceSection("DesktopRepository#updatePersistentRepository") {
            logD("updatePersistentRepository: displayId=%d", displayId)
            if (displayId == INVALID_DISPLAY) return

            val desks = desktopData.desksSequence(displayId).map { it.deepCopy() }.toList()
            if (desks.isEmpty()) {
            logD("updatePersistentRepository: no desks found for displayId=%d, skipping", displayId)
                logD(
                    "updatePersistentRepository: no desks found for displayId=%d, skipping",
                    displayId,
                )
                return
            }
            if (DesktopExperienceFlags.REPOSITORY_BASED_PERSISTENCE.isTrue) {
                persistentUpdateQueue.post {
                try {
                    Trace.beginSection("DesktopRepository#UpdateRepoWork")
                    logD("updatePersistentRepository user=%d display=%d", userId, displayId)
                    try {
                        persistentRepository.addOrUpdateRepository(userId, desks)
                    } catch (exception: Exception) {
                        logE(
                            "An exception occurred while updating the persistent repository \n%s",
                            exception.stackTrace,
                        )
                    } finally {
                        Trace.endSection()
                    }
                }
            } else {
@@ -1212,7 +1221,8 @@ class DesktopRepository(
        "Use updatePersistentRepository() instead.",
        ReplaceWith("updatePersistentRepository()"),
    )
    private fun updatePersistentRepositoryForDesk(deskId: Int) {
    private fun updatePersistentRepositoryForDesk(deskId: Int): Unit =
        traceSection("DesktopRepository#updatePersistentRepositoryForDeskId") {
            val desk = desktopData.getDesk(deskId)?.deepCopy() ?: return
            mainCoroutineScope.launch { updatePersistentRepositoryForDesk(desk) }
        }
@@ -1221,7 +1231,8 @@ class DesktopRepository(
        "Use updatePersistentRepository() instead.",
        ReplaceWith("updatePersistentRepository()"),
    )
    private suspend fun updatePersistentRepositoryForDesk(desk: Desk) {
    private suspend fun updatePersistentRepositoryForDesk(desk: Desk) =
        traceSection("DesktopRepository#updatePersistentRepositoryForDesk") {
            try {
                persistentRepository.addOrUpdateDesktop(
                    userId = userId,
@@ -1244,20 +1255,24 @@ class DesktopRepository(
        "Use updatePersistentRepository() instead.",
        ReplaceWith("updatePersistentRepository()"),
    )
    private fun removeDeskFromPersistentRepository(desk: Desk) {
    private fun removeDeskFromPersistentRepository(desk: Desk) =
        traceSection("DesktopRepository#removeDeskFromPersistentRepository") {
            mainCoroutineScope.launch {
            try {
                logD(
                    "updatePersistentRepositoryForRemovedDesk user=%d desk=%d",
                    userId,
                    desk.deskId,
                )
                Trace.beginSection("DesktopRepository#removeDeskWork")
                try {
                    persistentRepository.removeDesktop(userId = userId, desktopId = desk.deskId)
                } catch (throwable: Throwable) {
                    logE(
                        "An exception occurred while updating the persistent repository \n%s",
                        throwable.stackTrace,
                    )
                } finally {
                    Trace.endSection()
                }
            }
        }