package com.alorma.github.ui.view; import android.annotation.TargetApi; import android.content.Context; import android.content.Intent; import android.content.res.TypedArray; import android.graphics.Color; import android.os.Build; import android.util.AttributeSet; import android.view.View; import com.alorma.github.R; import com.alorma.github.sdk.bean.dto.response.UserType; import com.alorma.github.ui.activity.OrganizationActivity; import com.alorma.github.ui.activity.ProfileActivity; import com.alorma.github.ui.utils.UniversalImageLoaderUtils; import com.alorma.timeline.RoundTimelineView; import com.crashlytics.android.answers.Answers; import com.crashlytics.android.answers.ContentViewEvent; import core.User; import io.fabric.sdk.android.Fabric; public class UserAvatarView extends RoundTimelineView implements View.OnClickListener { private User user; public UserAvatarView(Context context) { this(context, null); } public UserAvatarView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public UserAvatarView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context, attrs, defStyle); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public UserAvatarView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); init(context, attrs, defStyleAttr); } private void init(Context context, AttributeSet attrs, int defStyle) { if (!isInEditMode()) { final TypedArray typedArray = context.getTheme().obtainStyledAttributes(attrs, R.styleable.UserAvatarView, defStyle, 0); boolean showLine = typedArray.getBoolean(R.styleable.UserAvatarView_uav_show_timeline, false); if (showLine) { setTimelineType(TYPE_MIDDLE); setLineColor(Color.GRAY); } else { setTimelineType(TYPE_HIDDEN); } setIndicatorSize(getResources().getDimensionPixelOffset(R.dimen.user_avatar)); setIndicatorColor(Color.TRANSPARENT); setLineWidth(1.5f); setTimelineAlignment(ALIGNMENT_START); } } public void setUser(User user) { this.user = user; UniversalImageLoaderUtils.loadUserAvatar(this, user); setOnClickListener(this); } @Override public void onClick(final View v) { if (Fabric.isInitialized()) { Answers.getInstance().logContentView(new ContentViewEvent().putContentName("UserAvatarViewClick")); } if (UserType.Organization.name().equals(user.getType())) { v.getContext().startActivity(OrganizationActivity.launchIntent(v.getContext(), user.getLogin())); } else { final Intent intent = ProfileActivity.createLauncherIntent(v.getContext(), user); if (getTag() != null) { int color = (int) getTag(); intent.putExtra(ProfileActivity.EXTRA_COLOR, color); } v.getContext().startActivity(intent); } } }