From 9e5babf9db52e64bdae60137be7696e56241fca6 Mon Sep 17 00:00:00 2001 From: xingzilong <xingzilong@454eff88-639b-444f-9e54-f578c98de674> Date: 星期五, 18 八月 2017 18:12:17 +0800 Subject: [PATCH] H264 NALU解析 并在RTSPServer判断 --- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UnknownSurveillanceQueryItemUtil.java | 56 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 43 insertions(+), 13 deletions(-) diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UnknownSurveillanceQueryItemUtil.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UnknownSurveillanceQueryItemUtil.java index 3d4481f..466c526 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UnknownSurveillanceQueryItemUtil.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UnknownSurveillanceQueryItemUtil.java @@ -4,6 +4,7 @@ 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; @@ -15,28 +16,46 @@ return instance; } - List<SurveillanceQueryItem> allItems = new ArrayList<>(); + static List<SurveillanceQueryItem> allItems = new ArrayList<>(); public void addItems(List<SurveillanceQueryItem> unknownItems) { - allItems.addAll(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() { - 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); + 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); } - allItems.removeAll(itemsToRemove); - 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()); + 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() { @@ -44,10 +63,21 @@ } 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; } -- Gitblit v1.8.0