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