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