doum
2 天以前 6c12dd77bc481aeabec568bfed3dd68e81b80f8b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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();
        }
    }
}