package com.kickstarter.ui.views;
import android.content.Context;
import android.content.res.TypedArray;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.AppCompatTextView;
import android.util.AttributeSet;
import com.kickstarter.KSApplication;
import com.kickstarter.R;
import com.kickstarter.libs.Font;
import javax.inject.Inject;
public class IconTextView extends AppCompatTextView {
@Inject Font font;
// Enum for the iconType XML parameter
private static final int MATERIAL = 0;
private static final int SS_KICKSTARTER = 1;
private static final int DEFAULT_ICON_TYPE = MATERIAL;
private int iconType;
public IconTextView(final @NonNull Context context) {
super(context);
initialize(context, null, 0, 0);
}
public IconTextView(final @NonNull Context context, final @Nullable AttributeSet attrs) {
super(context, attrs);
initialize(context, attrs, 0, 0);
}
public IconTextView(final @NonNull Context context, final @Nullable AttributeSet attrs, final int defStyleAttr) {
super(context, attrs, defStyleAttr);
initialize(context, attrs, defStyleAttr, 0);
}
protected void initialize(final @NonNull Context context, final @Nullable AttributeSet attrs, final int defStyleAttr,
final int defStyleRes) {
final TypedArray attributes = context.obtainStyledAttributes(attrs, R.styleable.IconTextView, defStyleAttr, defStyleRes);
iconType = attributes.getInt(R.styleable.IconTextView_iconType, DEFAULT_ICON_TYPE);
attributes.recycle();
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
if (isInEditMode()) {
return;
}
((KSApplication) getContext().getApplicationContext()).component().inject(this);
switch (iconType) {
case MATERIAL:
setTypeface(font.materialIconsTypeface());
break;
case SS_KICKSTARTER:
setTypeface(font.ssKickstarterTypeface());
break;
}
}
}