package com.doumee.keyCabinet.ui.view;
|
|
import android.content.Context;
|
import android.graphics.drawable.BitmapDrawable;
|
import android.util.AttributeSet;
|
import android.view.Gravity;
|
import android.view.View;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import androidx.annotation.NonNull;
|
import androidx.annotation.Nullable;
|
|
import com.doumee.keyCabinet.R;
|
import com.scwang.smart.refresh.layout.api.RefreshHeader;
|
import com.scwang.smart.refresh.layout.api.RefreshKernel;
|
import com.scwang.smart.refresh.layout.api.RefreshLayout;
|
import com.scwang.smart.refresh.layout.constant.RefreshState;
|
import com.scwang.smart.refresh.layout.constant.SpinnerStyle;
|
import com.doumee.lib_coremodel.util.RxTimerUtil;
|
|
public class MyRefreshHeader extends LinearLayout implements RefreshHeader {
|
private TextView textView;
|
private boolean mSrlPrimaryColor;
|
private RxTimerUtil rxTimerUtil;
|
|
public MyRefreshHeader(Context context) {
|
this(context,null);
|
}
|
|
public MyRefreshHeader(Context context, @Nullable AttributeSet attrs) {
|
super(context, attrs);
|
textView=new TextView(context);
|
textView.setTextColor(0xFF666666);
|
textView.setText(context.getString(R.string.refreshing));
|
addView(textView);
|
setGravity(Gravity.CENTER);
|
}
|
|
@NonNull
|
@Override
|
public View getView() {
|
return this;
|
}
|
|
@NonNull
|
@Override
|
public SpinnerStyle getSpinnerStyle() {
|
return SpinnerStyle.Translate;
|
}
|
|
@Override
|
public void setPrimaryColors(int... colors) {
|
//srlPrimaryColor
|
if(colors.length>0){
|
if(!mSrlPrimaryColor&&!(getBackground() instanceof BitmapDrawable)){
|
setBackgroundColor(colors[0]);
|
mSrlPrimaryColor=true;
|
}
|
}
|
}
|
|
@Override
|
public void onInitialized(@NonNull RefreshKernel kernel, int height, int maxDragHeight) {
|
|
}
|
|
@Override
|
public void onMoving(boolean isDragging, float percent, int offset, int height, int maxDragHeight) {
|
|
}
|
|
@Override
|
public void onReleased(@NonNull RefreshLayout refreshLayout, int height, int maxDragHeight) {
|
|
}
|
|
@Override
|
public void onStartAnimator(@NonNull RefreshLayout refreshLayout, int height, int maxDragHeight) {
|
|
}
|
|
@Override
|
public int onFinish(@NonNull RefreshLayout refreshLayout, boolean success) {
|
if(rxTimerUtil==null){
|
rxTimerUtil = new RxTimerUtil();
|
}
|
rxTimerUtil.timer(200, new RxTimerUtil.IRxNext() {
|
@Override
|
public void doNext(long number) {
|
textView.setVisibility(GONE);
|
}
|
});
|
|
return 200;
|
}
|
|
@Override
|
public void onHorizontalDrag(float percentX, int offsetX, int offsetMax) {
|
|
}
|
|
@Override
|
public boolean isSupportHorizontalDrag() {
|
return false;
|
}
|
|
@Override
|
public void onStateChanged(@NonNull RefreshLayout refreshLayout, @NonNull RefreshState oldState, @NonNull RefreshState newState) {
|
switch (newState) {
|
case None:
|
case PullDownToRefresh:
|
case Refreshing:
|
//anim.start();
|
textView.setVisibility(VISIBLE);
|
break;
|
case ReleaseToRefresh:
|
|
break;
|
}
|
}
|
|
@Override
|
protected void onDetachedFromWindow() {
|
super.onDetachedFromWindow();
|
if(rxTimerUtil!=null) {
|
rxTimerUtil.cancel();
|
}
|
}
|
}
|