lmw
2023-03-11 4df5bb59e5fe9f9d140e5610f7772dd8a05a28d4
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
package com.beloo.widget.chipslayoutmanager.util.log;
 
import android.util.SparseArray;
import android.view.View;
 
import com.beloo.widget.chipslayoutmanager.anchor.AnchorViewState;
 
import java.util.Locale;
 
class FillLogger implements IFillLogger {
    private SparseArray<View> viewCache;
    private int requestedItems;
    private int recycledItems;
    private int startCacheSize;
    private int recycledSize;
 
    FillLogger(SparseArray<View> viewCache) {
        this.viewCache = viewCache;
    }
 
    @Override
    public void onStartLayouter(int startPosition) {
        requestedItems = 0;
        recycledItems = 0;
        startCacheSize = viewCache.size();
 
        Log.d("fillWithLayouter", "start position = " + startPosition, LogSwitcherFactory.FILL);
        Log.d("fillWithLayouter", "cached items = " + startCacheSize, LogSwitcherFactory.FILL);
    }
 
    @Override
    public void onItemRequested() {
        requestedItems++;
    }
 
    @Override
    public void onItemRecycled() {
        recycledItems++;
    }
 
    @Override
    public void onFinishedLayouter() {
        Log.d("fillWithLayouter",
                String.format(Locale.getDefault(), "reattached items = %d : requested items = %d recycledItems = %d", startCacheSize - viewCache.size(), requestedItems, recycledItems),
                LogSwitcherFactory.FILL);
    }
 
    @Override
    public void onAfterLayouter() {
        recycledSize = viewCache.size();
    }
 
    @Override
    public void onRemovedAndRecycled(int position) {
        Log.d("fillWithLayouter", " recycle position =" + viewCache.keyAt(position), LogSwitcherFactory.FILL);
        recycledSize++;
    }
 
    @Override
    public void onAfterRemovingViews() {
        Log.d("fillWithLayouter", "recycled count = " + recycledSize, LogSwitcherFactory.FILL);
    }
 
    @Override
    public void onBeforeLayouter(AnchorViewState anchorView) {
        if (anchorView.getAnchorViewRect() != null) {
            Log.d("fill",  "anchorPos " + anchorView.getPosition(), LogSwitcherFactory.FILL);
            Log.d("fill", "anchorTop " + anchorView.getAnchorViewRect().top, LogSwitcherFactory.FILL);
        }
    }
 
}