package com.aspsine.swipetoloadlayout.demo.view.header;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.aspsine.swipetoloadlayout.SwipeRefreshHeaderLayout;
import com.aspsine.swipetoloadlayout.demo.R;
/**
* Created by Aspsine on 2015/9/9.
*/
public class TwitterRefreshHeaderView extends SwipeRefreshHeaderLayout {
private ImageView ivArrow;
private ImageView ivSuccess;
private TextView tvRefresh;
private ProgressBar progressBar;
private int mHeaderHeight;
private Animation rotateUp;
private Animation rotateDown;
private boolean rotated = false;
public TwitterRefreshHeaderView(Context context) {
this(context, null);
}
public TwitterRefreshHeaderView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public TwitterRefreshHeaderView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mHeaderHeight = getResources().getDimensionPixelOffset(R.dimen.refresh_header_height_twitter);
rotateUp = AnimationUtils.loadAnimation(context, R.anim.rotate_up);
rotateDown = AnimationUtils.loadAnimation(context, R.anim.rotate_down);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
tvRefresh = (TextView) findViewById(R.id.tvRefresh);
ivArrow = (ImageView) findViewById(R.id.ivArrow);
ivSuccess = (ImageView) findViewById(R.id.ivSuccess);
progressBar = (ProgressBar) findViewById(R.id.progressbar);
}
@Override
public void onRefresh() {
ivSuccess.setVisibility(GONE);
ivArrow.clearAnimation();
ivArrow.setVisibility(GONE);
progressBar.setVisibility(VISIBLE);
tvRefresh.setText("REFRESHING");
}
@Override
public void onPrepare() {
Log.d("TwitterRefreshHeader", "onPrepare()");
}
@Override
public void onMove(int y, boolean isComplete, boolean automatic) {
if (!isComplete) {
ivArrow.setVisibility(VISIBLE);
progressBar.setVisibility(GONE);
ivSuccess.setVisibility(GONE);
if (y > mHeaderHeight) {
tvRefresh.setText("RELEASE TO REFRESH");
if (!rotated) {
ivArrow.clearAnimation();
ivArrow.startAnimation(rotateUp);
rotated = true;
}
} else if (y < mHeaderHeight) {
if (rotated) {
ivArrow.clearAnimation();
ivArrow.startAnimation(rotateDown);
rotated = false;
}
tvRefresh.setText("SWIPE TO REFRESH");
}
}
}
@Override
public void onRelease() {
Log.d("TwitterRefreshHeader", "onRelease()");
}
@Override
public void onComplete() {
rotated = false;
ivSuccess.setVisibility(VISIBLE);
ivArrow.clearAnimation();
ivArrow.setVisibility(GONE);
progressBar.setVisibility(GONE);
tvRefresh.setText("COMPLETE");
}
@Override
public void onReset() {
rotated = false;
ivSuccess.setVisibility(GONE);
ivArrow.clearAnimation();
ivArrow.setVisibility(GONE);
progressBar.setVisibility(GONE);
}
}