xuxiuxi
2017-08-01 21e08324c323d0c5d1e7cedc36323c554857a239
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
package cn.com.basic.face.util;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
import cn.com.basic.face.base.MainActivity;
import cn.com.basic.face.discern.common.CommonVariables;
import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
import cn.com.basic.face.fragment.SurveillanceFragment;
 
public class UnknownSurveillanceQueryItemUtil {
 
    private static UnknownSurveillanceQueryItemUtil instance = new UnknownSurveillanceQueryItemUtil();
    public static UnknownSurveillanceQueryItemUtil getInstance() {
        return instance;
    }
 
    static List<SurveillanceQueryItem> allItems = new ArrayList<>();
 
    public void addItems(List<SurveillanceQueryItem> unknownItems) {
        allItems.addAll(0, unknownItems);
        limitItemsTo50();
        removeTimeoutItemAndShow();
    }
 
    private void limitItemsTo50() {
        if (allItems.size() > 50) {
            List<SurveillanceQueryItem> itemsToRemove = new ArrayList<>();
            for (int i = 50; i < allItems.size(); i++) {
                itemsToRemove.add(allItems.get(i));
            }
            allItems.removeAll(itemsToRemove);
        }
    }
 
    public void removeTimeoutItemAndShow() {
        synchronized (this) {
            List itemsToRemove = new ArrayList();
            for (SurveillanceQueryItem item : allItems) {
                if (item.getRegisterOrCheckIn() == CommonVariables.Surveillance.OFFLINE_SURVEILLANCE_ITEM_TYPE) {
                    Date now = new Date();
                    Date createTime = item.getCreateTime();
                    double minutes = (now.getTime() - createTime.getTime())*1.0 / 1000 / 60;
                    if (minutes >= 5) {
                        itemsToRemove.add(item);
                    }
                }
            }
            allItems.removeAll(itemsToRemove);
        }
        MainActivity.getInstance().runOnUiThread(new Runnable() {
            @Override
            public void run() {
                SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_visitor_list_view().show(UnknownSurveillanceQueryItemUtil.getInstance().getUnknownTwoRows());
                SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_attendance_list_view().show(new ArrayList());
            }
        });
    }
 
    private List getUnknownTwoRows() {
        return allItems;
    }
 
    public List getAllUnregisterVisitorTwoRowsForSelect(long selectedId) {
        select(allItems, selectedId);
        return allItems;
    }
 
    public void select(List<SurveillanceQueryItem> items, long selectedId) {
        for (SurveillanceQueryItem item : items) {
            item.setSurveillancePhotoSelected(false);
            if (item.getIdForSelect() == selectedId) {
                item.setSurveillancePhotoSelected(true);
            }
        }
    }
 
    public List getAllUnregisterAttenderTwoRowsForSelect(long selectedId) {
        select(allItems, selectedId);
        return allItems;
    }
 
}