Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a5cafaad authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Catch error when we fail to get slice icon."

parents f80e5b56 69a56b42
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -449,6 +449,12 @@ public class SliceBuilderUtils {
        if (iconResource == 0) {
            iconResource = R.drawable.ic_settings;
        }
        try {
            return IconCompat.createWithResource(context, iconResource);
        } catch (Exception e) {
            Log.w(TAG, "Falling back to settings icon because there is an error getting slice icon "
                    + data.getUri(), e);
            return IconCompat.createWithResource(context, R.drawable.ic_settings);
        }
    }
}
+13 −0
Original line number Diff line number Diff line
@@ -505,6 +505,19 @@ public class SliceBuilderUtilsTest {
        assertThat(actualIconResource).isEqualTo(settingsIcon);
    }

    @Test
    public void getSafeIcon_invalidResource_shouldFallbackToSettingsIcon() {
        final int settingsIcon = R.drawable.ic_settings;
        final int badIcon = 0x12345678;
        final SliceData data = getDummyData(TOGGLE_CONTROLLER, SliceData.SliceType.SWITCH,
                badIcon);

        final IconCompat actualIcon = SliceBuilderUtils.getSafeIcon(mContext, data);

        final int actualIconResource = actualIcon.toIcon().getResId();
        assertThat(actualIconResource).isEqualTo(settingsIcon);
    }

    private SliceData getDummyData() {
        return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE,
                ICON, IS_DYNAMIC_SUMMARY_ALLOWED);