Move color extraction to ImageWallpaper

Currently, the color extraction of ImageWallpaper is done in
system-server and not in ImageWallpaper itself.

This was previously mandatory since the lockscreen wallpaper could be an
ImageView and not an ImageWallpaper engine. Now that all static
wallpapers are ImageWallpaper instances, we can do the color extraction
directly in ImageWallpaper.

This will avoid IO operations in system_server and deflake some tests
related to color change listeners.

Flag: ACONFIG com.android.window.flags.offload_color_extraction DEVELOPMENT
Bug: 328791519
Test: atest WallpaperManagerTest --iterations 10
Test: atest ImageWallpaperTest
Test: atest WallpaperLocalColorExtractorTest

Change-Id: I381767aae470fa132e8841a4e97f1e3923084a3a
6 files changed