From 38492bbaa63586e2f4877da0eaa01a082fd565a6 Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期三, 25 十二月 2019 08:42:58 +0800
Subject: [PATCH] a

---
 app/src/main/java/com/basic/security/fragment/HomeFragment.java |  151 ++++++++++++++++++++++++++++++++++---------------
 1 files changed, 104 insertions(+), 47 deletions(-)

diff --git a/app/src/main/java/com/basic/security/fragment/HomeFragment.java b/app/src/main/java/com/basic/security/fragment/HomeFragment.java
index dd63bec..64d72ca 100644
--- a/app/src/main/java/com/basic/security/fragment/HomeFragment.java
+++ b/app/src/main/java/com/basic/security/fragment/HomeFragment.java
@@ -1,5 +1,6 @@
 package com.basic.security.fragment;
 
+import android.content.Intent;
 import android.os.SystemClock;
 import android.view.View;
 import android.widget.AbsListView;
@@ -8,11 +9,15 @@
 import android.widget.Spinner;
 
 import com.basic.security.R;
+import com.basic.security.base.BaseApplication;
 import com.basic.security.fragment.helper.HomeGridViewAdapter;
 import com.basic.security.fragment.helper.HomePlayAlarmVideo;
 import com.basic.security.manager.AlarmManager;
 import com.basic.security.manager.SettingManager;
+import com.basic.security.utils.MemoryUtil;
+import com.basic.security.utils.RabbitMQConsumer;
 import com.basic.security.utils.SocketClient;
+import com.basic.security.utils.ThreadUtil;
 
 import org.androidannotations.annotations.AfterInject;
 import org.androidannotations.annotations.AfterViews;
@@ -27,12 +32,14 @@
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 
 @EFragment(R.layout.fragment_home)
 public class HomeFragment extends HomePlayAlarmVideo {
 
-    List<Map<String, String>> newSqliteAlarmList;
+    public List<Map<String, String>> newSqliteAlarmList;
 
     @AfterInject
     void afterInject() {
@@ -64,27 +71,28 @@
         refreshGridView();
         while (true) {
             try{
-                try {
-                    if (1!=1) {
-                        startNewSocketClient();
-                        break;
-                    } else {
-                        List<SocketClient> socketClientListToRemove = new ArrayList<>();
-                        for (SocketClient socketClient1 : socketClientList) {
-                            if (System.currentTimeMillis() - socketClient1.lastUpdateTime > 1000*60*2) {
-//                                socketClient1.closeSocket();
-                                socketClient1.interrupt();
-                                socketClientListToRemove.add(socketClient1);
-                            }
-                        }
-                        socketClientList.removeAll(socketClientListToRemove);
-                        if (socketClientList.size() == 0) {
-                            startNewSocketClient();
-                        }
-                    }
-                } catch (Exception e) {
-                    System.out.println("pullAlarmDataList, " + e.getMessage());
-                }
+                RabbitMQConsumer.init();
+//                try {
+//                    if (1!=1) {
+//                        startNewSocketClient();
+//                        break;
+//                    } else {
+//                        List<SocketClient> socketClientListToRemove = new ArrayList<>();
+//                        for (SocketClient socketClient1 : socketClientList) {
+//                            if (System.currentTimeMillis() - socketClient1.lastUpdateTime > 1000*60*2) {
+////                                socketClient1.closeSocket();
+//                                socketClient1.interrupt();
+//                                socketClientListToRemove.add(socketClient1);
+//                            }
+//                        }
+//                        socketClientList.removeAll(socketClientListToRemove);
+//                        if (socketClientList.size() == 0) {
+//                            startNewSocketClient();
+//                        }
+//                    }
+//                } catch (Exception e) {
+//                    System.out.println("pullAlarmDataList, " + e.getMessage());
+//                }
             } catch (Exception e) {
                 e.printStackTrace();
             } finally {
@@ -96,8 +104,8 @@
     @Override
     public void show() {
         for (AlarmListAdapter.ViewHolder viewHolder : viewHolderSet.keySet()) {
-            if ("true".equals(viewHolder.alarm.get("videoPlaying"))) {
-                viewHolder.alarm.put("videoPlaying", "false");
+            if (AlarmManager.getAlarmPlaying(viewHolder.alarm)) {
+                AlarmManager.putAlarmPlaying(viewHolder.alarm, false);
             }
         }
         refreshGridView();
@@ -117,33 +125,39 @@
         } catch (Exception e) {
             e.printStackTrace();
         }
-        refreshGridViewLocker.lock();
-        newSqliteAlarmList = AlarmManager.findAlarmList();
-        if (newSqliteAlarmList != null) {
-            final Map<String, Map<String, String>> sqliteAlarmListMap = new HashMap<>();
-            sqliteAlarmListLock.lock();
-            for (Map<String, String> alarm : sqliteAlarmList) {
-                sqliteAlarmListMap.put(alarm.get("id"), alarm);
-            }
-            sqliteAlarmListLock.unlock();
-            for (Map<String, String> alarm : newSqliteAlarmList) {
-                alarm.put("videoPlaying", "false");
-                Map<String, String> backupAlarm = sqliteAlarmListMap.get(alarm.get("id"));
-                if (backupAlarm != null) {
-                    if (!"true".equals(backupAlarm.get("videoPlayFinished"))) {
-                        if ("true".equals(backupAlarm.get("videoPlaying"))) {
-                            alarm.put("videoPlaying", backupAlarm.get("videoPlaying"));
+        try {
+            refreshGridViewLocker.lock();
+            newSqliteAlarmList = AlarmManager.findAlarmList();
+            if (newSqliteAlarmList != null) {
+                final Map<String, Map<String, String>> sqliteAlarmListMap = new HashMap<>();
+                sqliteAlarmListLock.lock();
+                for (Map<String, String> alarm : sqliteAlarmList) {
+                    sqliteAlarmListMap.put(alarm.get("id"), alarm);
+                }
+                sqliteAlarmListLock.unlock();
+                for (Map<String, String> alarm : newSqliteAlarmList) {
+                    //AlarmManager.putAlarmPlaying(alarm, false);
+                    Map<String, String> backupAlarm = sqliteAlarmListMap.get(alarm.get("id"));
+                    if (backupAlarm != null) {
+                        if ("true".equals(backupAlarm.get("videoPlayFinished"))) {
+                            if (AlarmManager.getAlarmPlaying(alarm)) {
+                                //alarm.put("videoPlaying", backupAlarm.get("videoPlaying"));
+                            }
                         }
                     }
                 }
+                sqliteAlarmListLock.lock();
+                sqliteAlarmList.clear();
+                sqliteAlarmList.addAll(newSqliteAlarmList);
+                sqliteAlarmListLock.unlock();
+                updateAlarmDataListInUIThread();
             }
-            sqliteAlarmListLock.lock();
-            sqliteAlarmList.clear();
-            sqliteAlarmList.addAll(newSqliteAlarmList);
-            sqliteAlarmListLock.unlock();
-            updateAlarmDataListInUIThread();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            refreshGridViewLocker.unlock();
         }
-        refreshGridViewLocker.unlock();
+
     }
 
     @UiThread
@@ -179,7 +193,7 @@
             public void onScrollStateChanged(AbsListView view, int scrollState) {
                 sqliteAlarmListLock.lock();
                 for (Map<String, String> sqliteAlarm :  sqliteAlarmList) {
-                    sqliteAlarm.put("videoPlaying", "false");
+                    AlarmManager.putAlarmPlaying(sqliteAlarm, false);
                 }
                 sqliteAlarmListLock.unlock();
                 try{
@@ -201,8 +215,51 @@
             public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {}
         });
         saveVideoPlayerCurrentTime();
+//        executorService.execute(new Runnable() {
+//            @Override
+//            public void run() {
+//                while (true) {
+//                    try {
+//                        AlarmManager.updateVideoUrl();
+//                        SystemClock.sleep(1 * 1000);
+//                    } catch (Exception e) {
+////                        e.printStackTrace();
+//                        System.out.println("HomeFragment.run " + e.getMessage());
+//                    }
+//                }
+//            }
+//        });
+        executorService.execute(new Runnable() {
+            @Override
+            public void run() {
+                while (true) {
+                    try {
+                        MemoryUtil.monitorMemory();
+                        sendKeepLife();
+                        ThreadUtil.threadCreateObserver();
+                        SystemClock.sleep(3 * 1000);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        });
     }
+    public static void sendKeepLife() {
+        try {
+            if (System.currentTimeMillis() - lastSendKeepLife > 2 * 1000) {
+                Intent intent = new Intent("keepLife");
+                intent.putExtra("message", "This is my message!");
+                BaseApplication.getApplication().activity.sendBroadcast(intent);
+                lastSendKeepLife = System.currentTimeMillis();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
 
+    }
+    static long lastSendKeepLife = 0;
+    public ExecutorService executorService = Executors.newCachedThreadPool();
     @Click
     public void goto_top() {
         alarmListGridView.smoothScrollToPositionFromTop(0,0);

--
Gitblit v1.8.0