private static ExpandIndicatorController setupExpandToggleController(@NonNull Context context, TypedArray typedArray) { final int expandToggleType = typedArray.getInt(R.styleable.ExpandableTextView_expandToggleType, DEFAULT_TOGGLE_TYPE); final ExpandIndicatorController expandIndicatorController; switch (expandToggleType) { case EXPAND_INDICATOR_IMAGE_BUTTON: Drawable expandDrawable = typedArray.getDrawable(R.styleable.ExpandableTextView_expandIndicator); Drawable collapseDrawable = typedArray.getDrawable(R.styleable.ExpandableTextView_collapseIndicator); if (expandDrawable == null) { expandDrawable = getDrawable(context, R.drawable.ic_expand_more_black_12dp); } if (collapseDrawable == null) { collapseDrawable = getDrawable(context, R.drawable.ic_expand_less_black_12dp); } expandIndicatorController = new ImageButtonExpandController(expandDrawable, collapseDrawable); break; case EXPAND_INDICATOR_TEXT_VIEW: String expandText = typedArray.getString(R.styleable.ExpandableTextView_expandIndicator); String collapseText = typedArray.getString(R.styleable.ExpandableTextView_collapseIndicator); expandIndicatorController = new TextViewExpandController(expandText, collapseText); break; default: throw new IllegalStateException("Must be of enum: ExpandableTextView_expandToggleType, one of EXPAND_INDICATOR_IMAGE_BUTTON or EXPAND_INDICATOR_TEXT_VIEW."); } return expandIndicatorController; }