diff options
author | Lucas Dupin <dupin@google.com> | 2017-07-17 15:45:06 -0700 |
---|---|---|
committer | Lucas Dupin <dupin@google.com> | 2017-07-20 22:44:36 -0700 |
commit | e5d0b9dddbcd8e6be7725a89b82fb990db2dade7 (patch) | |
tree | b906874815c19b9a184a12566c6f93fb59524a88 /tests/Internal | |
parent | 6b4f0bb6fee89b7df85759389583eeabe6f645c5 (diff) |
Fix jank when switching themes
Turning overlays on and off takes time,
it also doesn't allow us to have fine control
over which view is using which theme.
Lock screen colors are now driven by themes.
Change-Id: I4b5db6234cafebbe8eaa952781c038370a11488b
Fixes: 63751714
Test: Visual. Set wallpapers, unlock.
Test: runtest -x tests/Internal/src/com/android/internal/colorextraction/ColorExtractorTest.java
Test: systrace
Diffstat (limited to 'tests/Internal')
-rw-r--r-- | tests/Internal/src/com/android/internal/colorextraction/ColorExtractorTest.java | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/tests/Internal/src/com/android/internal/colorextraction/ColorExtractorTest.java b/tests/Internal/src/com/android/internal/colorextraction/ColorExtractorTest.java index 0060901578cd..cb6a83d2644b 100644 --- a/tests/Internal/src/com/android/internal/colorextraction/ColorExtractorTest.java +++ b/tests/Internal/src/com/android/internal/colorextraction/ColorExtractorTest.java @@ -16,12 +16,14 @@ package com.android.internal.colorextraction; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.mockito.Mockito.any; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import android.app.WallpaperColors; import android.app.WallpaperManager; import android.content.Context; import android.graphics.Color; @@ -29,7 +31,6 @@ import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; -import com.android.internal.colorextraction.ColorExtractor; import com.android.internal.colorextraction.ColorExtractor.GradientColors; import com.android.internal.colorextraction.types.ExtractionType; import com.android.internal.colorextraction.types.Tonal; @@ -78,10 +79,10 @@ public class ColorExtractorTest { ExtractionType type = (inWallpaperColors, outGradientColorsNormal, outGradientColorsDark, outGradientColorsExtraDark) -> { - outGradientColorsNormal.set(colorsExpectedNormal); - outGradientColorsDark.set(colorsExpectedDark); - outGradientColorsExtraDark.set(colorsExpectedExtraDark); - }; + outGradientColorsNormal.set(colorsExpectedNormal); + outGradientColorsDark.set(colorsExpectedDark); + outGradientColorsExtraDark.set(colorsExpectedExtraDark); + }; ColorExtractor extractor = new ColorExtractor(mContext, type); GradientColors colors = extractor.getColors(WallpaperManager.FLAG_SYSTEM, @@ -92,4 +93,22 @@ public class ColorExtractorTest { colors = extractor.getColors(WallpaperManager.FLAG_SYSTEM, ColorExtractor.TYPE_EXTRA_DARK); assertEquals("Extracted colors not being used!", colors, colorsExpectedExtraDark); } + + @Test + public void addOnColorsChangedListener_invokesListener() { + ColorExtractor.OnColorsChangedListener mockedListeners = + mock(ColorExtractor.OnColorsChangedListener.class); + ColorExtractor extractor = new ColorExtractor(mContext, new Tonal(mContext)); + extractor.addOnColorsChangedListener(mockedListeners); + + extractor.onColorsChanged(new WallpaperColors(Color.valueOf(Color.RED), null, null), + WallpaperManager.FLAG_LOCK); + verify(mockedListeners, times(1)).onColorsChanged(any(), + eq(WallpaperManager.FLAG_LOCK)); + + extractor.removeOnColorsChangedListener(mockedListeners); + extractor.onColorsChanged(new WallpaperColors(Color.valueOf(Color.RED), null, null), + WallpaperManager.FLAG_LOCK); + verifyNoMoreInteractions(mockedListeners); + } } |