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(); 
 | 
        } 
 | 
    } 
 | 
} 
 |