Loading packages/SystemUI/aconfig/systemui.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -1340,16 +1340,6 @@ flag { bug: "360196209" } flag { name: "media_controls_umo_inflation_in_background" namespace: "systemui" description: "Inflate UMO in background thread" bug: "368514198" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "media_controls_ui_update" namespace: "systemui" Loading packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaCarouselController.kt +20 −43 Original line number Diff line number Diff line Loading @@ -44,7 +44,6 @@ import com.android.internal.logging.InstanceId import com.android.keyguard.KeyguardUpdateMonitor import com.android.keyguard.KeyguardUpdateMonitorCallback import com.android.systemui.Dumpable import com.android.systemui.Flags.mediaControlsUmoInflationInBackground import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Background Loading Loading @@ -452,16 +451,11 @@ constructor( immediately: Boolean, ) { debugLogger.logMediaLoaded(key, data.active) val onUiExecutionEnd = if (mediaControlsUmoInflationInBackground()) { Runnable { val onUiExecutionEnd = Runnable { if (immediately) { updateHostVisibility() } } } else { null } addOrUpdatePlayer(key, oldKey, data, onUiExecutionEnd) val canRemove = data.isPlaying?.let { !it } ?: data.isClearable && !data.active Loading Loading @@ -757,7 +751,7 @@ constructor( key: String, oldKey: String?, data: MediaData, onUiExecutionEnd: Runnable? = null, onUiExecutionEnd: Runnable, ): Boolean = traceSection("MediaCarouselController#addOrUpdatePlayer") { MediaPlayerData.moveIfExists(oldKey, key) Loading @@ -765,7 +759,6 @@ constructor( val curVisibleMediaKey = MediaPlayerData.visiblePlayerKeys() .elementAtOrNull(mediaCarouselScrollHandler.visibleMediaIndex) if (mediaControlsUmoInflationInBackground()) { if (existingPlayer == null) { bgExecutor.execute { val mediaViewHolder = createMediaViewHolderInBg() Loading @@ -778,34 +771,18 @@ constructor( MediaPlayerData.getFirstActiveMediaData() ) mediaFrame.requiresRemeasuring = true onUiExecutionEnd?.run() } onUiExecutionEnd.run() } } else { updatePlayer(key, data, curVisibleMediaKey, existingPlayer) updatePageIndicator() mediaCarouselScrollHandler.onPlayersChanged() mediaControlChipInteractor.updateMediaControlChipModelLegacy( MediaPlayerData.getFirstActiveMediaData() ) mediaFrame.requiresRemeasuring = true onUiExecutionEnd?.run() } } else { if (existingPlayer == null) { val mediaViewHolder = MediaViewHolder.create(LayoutInflater.from(context), mediaContent) setupNewPlayer(key, data, curVisibleMediaKey, mediaViewHolder) } else { updatePlayer(key, data, curVisibleMediaKey, existingPlayer) } updatePageIndicator() mediaCarouselScrollHandler.onPlayersChanged() mediaControlChipInteractor.updateMediaControlChipModelLegacy( MediaPlayerData.getFirstActiveMediaData() ) mediaFrame.requiresRemeasuring = true onUiExecutionEnd?.run() onUiExecutionEnd.run() } return existingPlayer == null } Loading packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHostStatesManager.kt +3 −8 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.systemui.media.controls.ui.controller import com.android.app.tracing.traceSection import com.android.systemui.Dumpable import com.android.systemui.Flags.mediaControlsUmoInflationInBackground import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dump.DumpManager import com.android.systemui.media.controls.ui.view.MediaHostState Loading Loading @@ -99,15 +98,11 @@ class MediaHostStatesManager @Inject constructor(dumpManager: DumpManager) : Dum } } } if (mediaControlsUmoInflationInBackground()) { // Set carousel size if result measurements changed. This avoids setting carousel // size when this method gets called before the addition of media view controllers if (!carouselSizes.contains(location) || changed) { carouselSizes[location] = result } } else { carouselSizes[location] = result } return carouselSizes[location] ?: result } Loading packages/SystemUI/src/com/android/systemui/media/controls/ui/view/MediaHost.kt +0 −15 Original line number Diff line number Diff line Loading @@ -20,9 +20,7 @@ import android.graphics.Rect import android.util.ArraySet import android.view.View import android.view.View.OnAttachStateChangeListener import com.android.systemui.Flags.mediaControlsUmoInflationInBackground import com.android.systemui.media.controls.domain.pipeline.MediaDataManager import com.android.systemui.media.controls.shared.model.MediaData import com.android.systemui.media.controls.ui.controller.MediaCarouselController import com.android.systemui.media.controls.ui.controller.MediaCarouselControllerLogger import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager Loading Loading @@ -87,19 +85,6 @@ class MediaHost( private val listener = object : MediaDataManager.Listener { override fun onMediaDataLoaded( key: String, oldKey: String?, data: MediaData, immediately: Boolean, ) { if (mediaControlsUmoInflationInBackground()) return if (immediately) { updateViewVisibility() } } override fun onMediaDataRemoved(key: String, userInitiated: Boolean) { updateViewVisibility() } Loading packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaCarouselControllerTest.kt +5 −24 Original line number Diff line number Diff line Loading @@ -21,17 +21,16 @@ import android.content.res.ColorStateList import android.content.res.Configuration import android.database.ContentObserver import android.os.LocaleList import android.platform.test.flag.junit.FlagsParameterization import android.provider.Settings import android.testing.TestableLooper import android.util.MathUtils.abs import android.view.View import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.compose.animation.scene.ObservableTransitionState import com.android.compose.animation.scene.SceneKey import com.android.keyguard.KeyguardUpdateMonitor import com.android.keyguard.KeyguardUpdateMonitorCallback import com.android.systemui.Flags.mediaControlsUmoInflationInBackground import com.android.systemui.SysuiTestCase import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor import com.android.systemui.dump.DumpManager Loading Loading @@ -99,8 +98,6 @@ import org.mockito.MockitoAnnotations import org.mockito.kotlin.any import org.mockito.kotlin.capture import org.mockito.kotlin.eq import platform.test.runner.parameterized.ParameterizedAndroidJunit4 import platform.test.runner.parameterized.Parameters private val DATA = MediaTestUtils.emptyMediaData Loading @@ -109,8 +106,8 @@ private const val PLAYING_LOCAL = "playing local" @SmallTest @TestableLooper.RunWithLooper(setAsMainLooper = true) @RunWith(ParameterizedAndroidJunit4::class) class MediaCarouselControllerTest(flags: FlagsParameterization) : SysuiTestCase() { @RunWith(AndroidJUnit4::class) class MediaCarouselControllerTest : SysuiTestCase() { private val kosmos = testKosmos().useUnconfinedTestDispatcher() private val testDispatcher = kosmos.testDispatcher private val secureSettings = kosmos.fakeSettings Loading Loading @@ -150,20 +147,6 @@ class MediaCarouselControllerTest(flags: FlagsParameterization) : SysuiTestCase( private var originalResumeSetting = Settings.Secure.getInt(context.contentResolver, Settings.Secure.MEDIA_CONTROLS_RESUME, 1) companion object { @JvmStatic @Parameters(name = "{0}") fun getParams(): List<FlagsParameterization> { return FlagsParameterization.progressionOf( com.android.systemui.Flags.FLAG_MEDIA_CONTROLS_UMO_INFLATION_IN_BACKGROUND ) } } init { mSetFlagsRule.setFlagsParameterization(flags) } @Before fun setup() { MockitoAnnotations.initMocks(this) Loading Loading @@ -1000,9 +983,7 @@ class MediaCarouselControllerTest(flags: FlagsParameterization) : SysuiTestCase( } private fun runAllReady() { if (mediaControlsUmoInflationInBackground()) { bgExecutor.runAllReady() uiExecutor.runAllReady() } } } Loading
packages/SystemUI/aconfig/systemui.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -1340,16 +1340,6 @@ flag { bug: "360196209" } flag { name: "media_controls_umo_inflation_in_background" namespace: "systemui" description: "Inflate UMO in background thread" bug: "368514198" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "media_controls_ui_update" namespace: "systemui" Loading
packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaCarouselController.kt +20 −43 Original line number Diff line number Diff line Loading @@ -44,7 +44,6 @@ import com.android.internal.logging.InstanceId import com.android.keyguard.KeyguardUpdateMonitor import com.android.keyguard.KeyguardUpdateMonitorCallback import com.android.systemui.Dumpable import com.android.systemui.Flags.mediaControlsUmoInflationInBackground import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Background Loading Loading @@ -452,16 +451,11 @@ constructor( immediately: Boolean, ) { debugLogger.logMediaLoaded(key, data.active) val onUiExecutionEnd = if (mediaControlsUmoInflationInBackground()) { Runnable { val onUiExecutionEnd = Runnable { if (immediately) { updateHostVisibility() } } } else { null } addOrUpdatePlayer(key, oldKey, data, onUiExecutionEnd) val canRemove = data.isPlaying?.let { !it } ?: data.isClearable && !data.active Loading Loading @@ -757,7 +751,7 @@ constructor( key: String, oldKey: String?, data: MediaData, onUiExecutionEnd: Runnable? = null, onUiExecutionEnd: Runnable, ): Boolean = traceSection("MediaCarouselController#addOrUpdatePlayer") { MediaPlayerData.moveIfExists(oldKey, key) Loading @@ -765,7 +759,6 @@ constructor( val curVisibleMediaKey = MediaPlayerData.visiblePlayerKeys() .elementAtOrNull(mediaCarouselScrollHandler.visibleMediaIndex) if (mediaControlsUmoInflationInBackground()) { if (existingPlayer == null) { bgExecutor.execute { val mediaViewHolder = createMediaViewHolderInBg() Loading @@ -778,34 +771,18 @@ constructor( MediaPlayerData.getFirstActiveMediaData() ) mediaFrame.requiresRemeasuring = true onUiExecutionEnd?.run() } onUiExecutionEnd.run() } } else { updatePlayer(key, data, curVisibleMediaKey, existingPlayer) updatePageIndicator() mediaCarouselScrollHandler.onPlayersChanged() mediaControlChipInteractor.updateMediaControlChipModelLegacy( MediaPlayerData.getFirstActiveMediaData() ) mediaFrame.requiresRemeasuring = true onUiExecutionEnd?.run() } } else { if (existingPlayer == null) { val mediaViewHolder = MediaViewHolder.create(LayoutInflater.from(context), mediaContent) setupNewPlayer(key, data, curVisibleMediaKey, mediaViewHolder) } else { updatePlayer(key, data, curVisibleMediaKey, existingPlayer) } updatePageIndicator() mediaCarouselScrollHandler.onPlayersChanged() mediaControlChipInteractor.updateMediaControlChipModelLegacy( MediaPlayerData.getFirstActiveMediaData() ) mediaFrame.requiresRemeasuring = true onUiExecutionEnd?.run() onUiExecutionEnd.run() } return existingPlayer == null } Loading
packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHostStatesManager.kt +3 −8 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.systemui.media.controls.ui.controller import com.android.app.tracing.traceSection import com.android.systemui.Dumpable import com.android.systemui.Flags.mediaControlsUmoInflationInBackground import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dump.DumpManager import com.android.systemui.media.controls.ui.view.MediaHostState Loading Loading @@ -99,15 +98,11 @@ class MediaHostStatesManager @Inject constructor(dumpManager: DumpManager) : Dum } } } if (mediaControlsUmoInflationInBackground()) { // Set carousel size if result measurements changed. This avoids setting carousel // size when this method gets called before the addition of media view controllers if (!carouselSizes.contains(location) || changed) { carouselSizes[location] = result } } else { carouselSizes[location] = result } return carouselSizes[location] ?: result } Loading
packages/SystemUI/src/com/android/systemui/media/controls/ui/view/MediaHost.kt +0 −15 Original line number Diff line number Diff line Loading @@ -20,9 +20,7 @@ import android.graphics.Rect import android.util.ArraySet import android.view.View import android.view.View.OnAttachStateChangeListener import com.android.systemui.Flags.mediaControlsUmoInflationInBackground import com.android.systemui.media.controls.domain.pipeline.MediaDataManager import com.android.systemui.media.controls.shared.model.MediaData import com.android.systemui.media.controls.ui.controller.MediaCarouselController import com.android.systemui.media.controls.ui.controller.MediaCarouselControllerLogger import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager Loading Loading @@ -87,19 +85,6 @@ class MediaHost( private val listener = object : MediaDataManager.Listener { override fun onMediaDataLoaded( key: String, oldKey: String?, data: MediaData, immediately: Boolean, ) { if (mediaControlsUmoInflationInBackground()) return if (immediately) { updateViewVisibility() } } override fun onMediaDataRemoved(key: String, userInitiated: Boolean) { updateViewVisibility() } Loading
packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaCarouselControllerTest.kt +5 −24 Original line number Diff line number Diff line Loading @@ -21,17 +21,16 @@ import android.content.res.ColorStateList import android.content.res.Configuration import android.database.ContentObserver import android.os.LocaleList import android.platform.test.flag.junit.FlagsParameterization import android.provider.Settings import android.testing.TestableLooper import android.util.MathUtils.abs import android.view.View import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.compose.animation.scene.ObservableTransitionState import com.android.compose.animation.scene.SceneKey import com.android.keyguard.KeyguardUpdateMonitor import com.android.keyguard.KeyguardUpdateMonitorCallback import com.android.systemui.Flags.mediaControlsUmoInflationInBackground import com.android.systemui.SysuiTestCase import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor import com.android.systemui.dump.DumpManager Loading Loading @@ -99,8 +98,6 @@ import org.mockito.MockitoAnnotations import org.mockito.kotlin.any import org.mockito.kotlin.capture import org.mockito.kotlin.eq import platform.test.runner.parameterized.ParameterizedAndroidJunit4 import platform.test.runner.parameterized.Parameters private val DATA = MediaTestUtils.emptyMediaData Loading @@ -109,8 +106,8 @@ private const val PLAYING_LOCAL = "playing local" @SmallTest @TestableLooper.RunWithLooper(setAsMainLooper = true) @RunWith(ParameterizedAndroidJunit4::class) class MediaCarouselControllerTest(flags: FlagsParameterization) : SysuiTestCase() { @RunWith(AndroidJUnit4::class) class MediaCarouselControllerTest : SysuiTestCase() { private val kosmos = testKosmos().useUnconfinedTestDispatcher() private val testDispatcher = kosmos.testDispatcher private val secureSettings = kosmos.fakeSettings Loading Loading @@ -150,20 +147,6 @@ class MediaCarouselControllerTest(flags: FlagsParameterization) : SysuiTestCase( private var originalResumeSetting = Settings.Secure.getInt(context.contentResolver, Settings.Secure.MEDIA_CONTROLS_RESUME, 1) companion object { @JvmStatic @Parameters(name = "{0}") fun getParams(): List<FlagsParameterization> { return FlagsParameterization.progressionOf( com.android.systemui.Flags.FLAG_MEDIA_CONTROLS_UMO_INFLATION_IN_BACKGROUND ) } } init { mSetFlagsRule.setFlagsParameterization(flags) } @Before fun setup() { MockitoAnnotations.initMocks(this) Loading Loading @@ -1000,9 +983,7 @@ class MediaCarouselControllerTest(flags: FlagsParameterization) : SysuiTestCase( } private fun runAllReady() { if (mediaControlsUmoInflationInBackground()) { bgExecutor.runAllReady() uiExecutor.runAllReady() } } }