package org.qii.weiciyuan.support.lib;
import org.qii.weiciyuan.R;
import org.qii.weiciyuan.bean.UserBean;
import org.qii.weiciyuan.support.asyncdrawable.IWeiciyuanDrawable;
import org.qii.weiciyuan.support.utils.Utility;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.ProgressBar;
/**
* User: qii
* Date: 12-12-19
*/
public class TimeLineAvatarImageView extends PerformanceImageView implements IWeiciyuanDrawable {
private Paint paint = new Paint();
private boolean showPressedState = true;
private boolean pressed = false;
private int vType = UserBean.V_TYPE_NONE;
public TimeLineAvatarImageView(Context context) {
this(context, null);
}
public TimeLineAvatarImageView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public TimeLineAvatarImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initLayout(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Bitmap bitmap;
switch (vType) {
case UserBean.V_TYPE_PERSONAL:
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.avatar_vip);
canvas.drawBitmap(bitmap, getWidth() - bitmap.getWidth(),
getHeight() - bitmap.getHeight(), paint);
break;
case UserBean.V_TYPE_ENTERPRISE:
bitmap = BitmapFactory
.decodeResource(getResources(), R.drawable.avatar_enterprise_vip);
canvas.drawBitmap(bitmap, getWidth() - bitmap.getWidth(),
getHeight() - bitmap.getHeight(), paint);
break;
default:
break;
}
if (pressed) {
canvas.drawColor(getResources().getColor(R.color.transparent_cover));
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (!showPressedState || !isClickable() || !isLongClickable()) {
return super.onTouchEvent(event);
}
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
pressed = true;
invalidate();
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
pressed = false;
invalidate();
break;
}
return super.onTouchEvent(event);
}
protected void initLayout(Context context) {
setPadding(Utility.dip2px(5), Utility.dip2px(5), Utility.dip2px(5), Utility.dip2px(5));
}
@Override
public void setImageDrawable(Drawable drawable) {
super.setImageDrawable(drawable);
}
@Override
public void setImageBitmap(Bitmap bm) {
super.setImageBitmap(bm);
}
@Override
public ImageView getImageView() {
return this;
}
@Override
public void setProgress(int value, int max) {
}
@Override
public ProgressBar getProgressBar() {
return null;
}
@Override
public void setGifFlag(boolean value) {
}
public void checkVerified(UserBean user) {
if (user != null && user.isVerified() && !TextUtils.isEmpty(user.getVerified_reason())) {
if (user.isPersonalV()) {
verifiedPersonal();
} else {
verifiedEnterprise();
}
} else {
reset();
}
}
private void verifiedPersonal() {
if (vType != UserBean.V_TYPE_PERSONAL) {
vType = UserBean.V_TYPE_PERSONAL;
invalidate();
}
}
private void verifiedEnterprise() {
if (vType != UserBean.V_TYPE_ENTERPRISE) {
vType = UserBean.V_TYPE_ENTERPRISE;
invalidate();
}
}
private void reset() {
if (vType != UserBean.V_TYPE_NONE) {
vType = UserBean.V_TYPE_NONE;
invalidate();
}
}
@Override
public void setPressesStateVisibility(boolean value) {
if (showPressedState == value) {
return;
}
showPressedState = value;
invalidate();
}
}