Loading packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaCarouselController.kt +13 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ import com.android.systemui.util.concurrency.DelayableExecutor import com.android.systemui.util.time.SystemClock import com.android.systemui.util.traceSection import java.io.PrintWriter import java.util.Locale import java.util.TreeMap import javax.inject.Inject import javax.inject.Provider Loading Loading @@ -166,6 +167,8 @@ constructor( } } private var carouselLocale: Locale? = null /** Whether the media card currently has the "expanded" layout */ @VisibleForTesting var currentlyExpanded = true Loading Loading @@ -218,6 +221,15 @@ constructor( updatePlayers(recreateMedia = false) inflateSettingsButton() } override fun onLocaleListChanged() { // Update players only if system primary language changes. if (carouselLocale != context.resources.configuration.locales.get(0)) { carouselLocale = context.resources.configuration.locales.get(0) updatePlayers(recreateMedia = true) inflateSettingsButton() } } } private val keyguardUpdateMonitorCallback = Loading Loading @@ -262,6 +274,7 @@ constructor( this::logSmartspaceImpression, logger ) carouselLocale = context.resources.configuration.locales.get(0) isRtl = context.resources.configuration.layoutDirection == View.LAYOUT_DIRECTION_RTL inflateSettingsButton() mediaContent = mediaCarousel.requireViewById(R.id.media_carousel) Loading packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaCarouselControllerTest.kt +21 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.media.controls.ui import android.app.PendingIntent import android.content.res.ColorStateList import android.content.res.Configuration import android.os.LocaleList import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.util.MathUtils.abs Loading Loading @@ -56,6 +57,7 @@ import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.capture import com.android.systemui.util.mockito.eq import com.android.systemui.util.time.FakeSystemClock import java.util.Locale import javax.inject.Provider import junit.framework.Assert.assertEquals import junit.framework.Assert.assertFalse Loading @@ -71,6 +73,7 @@ import org.mockito.Captor import org.mockito.Mock import org.mockito.Mockito.floatThat import org.mockito.Mockito.mock import org.mockito.Mockito.never import org.mockito.Mockito.reset import org.mockito.Mockito.times import org.mockito.Mockito.verify Loading Loading @@ -123,6 +126,7 @@ class MediaCarouselControllerTest : SysuiTestCase() { @Before fun setup() { MockitoAnnotations.initMocks(this) context.resources.configuration.locales = LocaleList(Locale.US, Locale.UK) transitionRepository = FakeKeyguardTransitionRepository() mediaCarouselController = MediaCarouselController( Loading Loading @@ -712,6 +716,23 @@ class MediaCarouselControllerTest : SysuiTestCase() { verify(pageIndicator, times(2)).setNumPages(any()) } @Test fun testOnLocaleListChanged_playersAreAddedBack() { context.resources.configuration.locales = LocaleList(Locale.US, Locale.UK, Locale.CANADA) testConfigurationChange(configListener.value::onLocaleListChanged) verify(pageIndicator, never()).tintList = ColorStateList.valueOf(context.getColor(R.color.media_paging_indicator)) context.resources.configuration.locales = LocaleList(Locale.UK, Locale.US, Locale.CANADA) testConfigurationChange(configListener.value::onLocaleListChanged) verify(pageIndicator).tintList = ColorStateList.valueOf(context.getColor(R.color.media_paging_indicator)) // When recreateMedia is set to true, page indicator is updated on removal and addition. verify(pageIndicator, times(4)).setNumPages(any()) } @Test fun testRecommendation_persistentEnabled_newSmartspaceLoaded_updatesSort() { testRecommendation_persistentEnabled_inactiveSmartspaceDataLoaded_isAdded() Loading Loading
packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaCarouselController.kt +13 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ import com.android.systemui.util.concurrency.DelayableExecutor import com.android.systemui.util.time.SystemClock import com.android.systemui.util.traceSection import java.io.PrintWriter import java.util.Locale import java.util.TreeMap import javax.inject.Inject import javax.inject.Provider Loading Loading @@ -166,6 +167,8 @@ constructor( } } private var carouselLocale: Locale? = null /** Whether the media card currently has the "expanded" layout */ @VisibleForTesting var currentlyExpanded = true Loading Loading @@ -218,6 +221,15 @@ constructor( updatePlayers(recreateMedia = false) inflateSettingsButton() } override fun onLocaleListChanged() { // Update players only if system primary language changes. if (carouselLocale != context.resources.configuration.locales.get(0)) { carouselLocale = context.resources.configuration.locales.get(0) updatePlayers(recreateMedia = true) inflateSettingsButton() } } } private val keyguardUpdateMonitorCallback = Loading Loading @@ -262,6 +274,7 @@ constructor( this::logSmartspaceImpression, logger ) carouselLocale = context.resources.configuration.locales.get(0) isRtl = context.resources.configuration.layoutDirection == View.LAYOUT_DIRECTION_RTL inflateSettingsButton() mediaContent = mediaCarousel.requireViewById(R.id.media_carousel) Loading
packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaCarouselControllerTest.kt +21 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.media.controls.ui import android.app.PendingIntent import android.content.res.ColorStateList import android.content.res.Configuration import android.os.LocaleList import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.util.MathUtils.abs Loading Loading @@ -56,6 +57,7 @@ import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.capture import com.android.systemui.util.mockito.eq import com.android.systemui.util.time.FakeSystemClock import java.util.Locale import javax.inject.Provider import junit.framework.Assert.assertEquals import junit.framework.Assert.assertFalse Loading @@ -71,6 +73,7 @@ import org.mockito.Captor import org.mockito.Mock import org.mockito.Mockito.floatThat import org.mockito.Mockito.mock import org.mockito.Mockito.never import org.mockito.Mockito.reset import org.mockito.Mockito.times import org.mockito.Mockito.verify Loading Loading @@ -123,6 +126,7 @@ class MediaCarouselControllerTest : SysuiTestCase() { @Before fun setup() { MockitoAnnotations.initMocks(this) context.resources.configuration.locales = LocaleList(Locale.US, Locale.UK) transitionRepository = FakeKeyguardTransitionRepository() mediaCarouselController = MediaCarouselController( Loading Loading @@ -712,6 +716,23 @@ class MediaCarouselControllerTest : SysuiTestCase() { verify(pageIndicator, times(2)).setNumPages(any()) } @Test fun testOnLocaleListChanged_playersAreAddedBack() { context.resources.configuration.locales = LocaleList(Locale.US, Locale.UK, Locale.CANADA) testConfigurationChange(configListener.value::onLocaleListChanged) verify(pageIndicator, never()).tintList = ColorStateList.valueOf(context.getColor(R.color.media_paging_indicator)) context.resources.configuration.locales = LocaleList(Locale.UK, Locale.US, Locale.CANADA) testConfigurationChange(configListener.value::onLocaleListChanged) verify(pageIndicator).tintList = ColorStateList.valueOf(context.getColor(R.color.media_paging_indicator)) // When recreateMedia is set to true, page indicator is updated on removal and addition. verify(pageIndicator, times(4)).setNumPages(any()) } @Test fun testRecommendation_persistentEnabled_newSmartspaceLoaded_updatesSort() { testRecommendation_persistentEnabled_inactiveSmartspaceDataLoaded_isAdded() Loading