Set default background color for home icon.

- the previous change to update the adaptive home page icon has removed
the default background color for the icon. Set it back to the correct
default if we do not find any background color set from the tile.

Fixes: 124183074
Test: make RunSettingsRoboTests
Change-Id: Idafc08ff1a3b20659c5f275d1a6c404f6c7ef2c0
This commit is contained in:
Doris Ling
2019-02-12 15:39:46 -08:00
parent ca5786fd27
commit 18cb6feee4
2 changed files with 16 additions and 0 deletions

View File

@@ -72,11 +72,13 @@ public class AdaptiveHomepageIcon extends LayerDrawable {
// If found anything, use it.
if (bgColor != 0) {
setBackgroundColor(bgColor);
return;
}
}
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Failed to set background color for " + tile.getPackageName());
}
setBackgroundColor(context.getColor(R.color.homepage_generic_icon_background));
}
public void setBackgroundColor(int color) {

View File

@@ -96,6 +96,20 @@ public class AdaptiveHomepageIconTest {
assertThat(icon.mBackgroundColor).isEqualTo(0xff0000);
}
@Test
public void setBackgroundColor_tileWithoutBackgroundColor_shouldSetDefaultBackgroundColor() {
final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
doReturn(Icon.createWithResource(mContext, R.drawable.ic_settings))
.when(tile).getIcon(mContext);
final AdaptiveHomepageIcon icon =
new AdaptiveHomepageIcon(mContext, new ColorDrawable(Color.BLACK));
icon.setBackgroundColor(mContext, tile);
assertThat(icon.mBackgroundColor).isEqualTo(
mContext.getColor(R.color.homepage_generic_icon_background));
}
@Test
public void onBindTile_externalTileWithBackgroundColorHint_shouldUpdateIcon() {
final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));