diff --git a/src/com/android/settings/widget/AdaptiveHomepageIcon.java b/src/com/android/settings/widget/AdaptiveHomepageIcon.java index bec5d8da2c6..bc7aaa7f22e 100644 --- a/src/com/android/settings/widget/AdaptiveHomepageIcon.java +++ b/src/com/android/settings/widget/AdaptiveHomepageIcon.java @@ -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) { diff --git a/tests/robotests/src/com/android/settings/widget/AdaptiveHomepageIconTest.java b/tests/robotests/src/com/android/settings/widget/AdaptiveHomepageIconTest.java index db8a85cc2b6..45860bf0535 100644 --- a/tests/robotests/src/com/android/settings/widget/AdaptiveHomepageIconTest.java +++ b/tests/robotests/src/com/android/settings/widget/AdaptiveHomepageIconTest.java @@ -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));