Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/data/DesktopRepository.kt +68 −53 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 { Loading @@ -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) } } Loading @@ -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, Loading @@ -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() } } } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/data/DesktopRepository.kt +68 −53 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 { Loading @@ -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) } } Loading @@ -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, Loading @@ -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() } } } Loading