xuxiuxi
2017-07-19 aa8353fe661ee9d3bac0538070458a30af28dc41


git-svn-id: http://192.168.1.226/svn/proxy@724 454eff88-639b-444f-9e54-f578c98de674
2个文件已添加
9个文件已修改
223 ■■■■ 已修改文件
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SurveillancePhotoDialog.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/common/CommonVariables.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/UnknownQueryItem.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DictionaryMng.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/FileUtil.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UnknownSurveillanceQueryItemUtil.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java
@@ -98,5 +98,15 @@
        return !connected;
    }
    public boolean networkAvailable() {
        boolean connected = false;
        ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
                connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
            connected = true;
        }
        return connected;
    }
}
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java
@@ -128,7 +128,6 @@
        }
        initDb();
        initSqlMap();
        TestDao.getInstance().test();
    }
    public static MainActivity getInstance() {
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SurveillancePhotoDialog.java
@@ -19,6 +19,7 @@
import java.util.ArrayList;
import java.util.List;
import cn.com.basic.face.base.BaseApplication;
import cn.com.basic.face.base.MainActivity;
import cn.com.basic.face.dialog.wheelview.adapter.BaseWheelAdapter;
import cn.com.basic.face.dialog.wheelview.widget.WheelView;
@@ -26,6 +27,7 @@
import cn.com.basic.face.util.Constant;
import cn.com.basic.face.util.OkClickedListener;
import cn.com.basic.face.util.SurveillanceQueryItemUtil;
import cn.com.basic.face.util.UnknownSurveillanceQueryItemUtil;
import cn.com.basic.face.widget.surveilance.SurveillancePhotoSelectListView;
public class SurveillancePhotoDialog extends PopupWindow {
@@ -39,10 +41,18 @@
        View view = LayoutInflater.from(MainActivity.getInstance()).inflate(R.layout.dialog_surveillance_photo_select,null);
        ViewUtils.inject(this, view);
        if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
            dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
        if (BaseApplication.getInstance().networkAvailable()) {
            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
                dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
            } else {
                dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterAttenderTwoRowsForSelect(selectedId));
            }
        } else {
            dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterAttenderTwoRowsForSelect(selectedId));
            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
                dialog_surveillance_photo_select_list_view.show(UnknownSurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
            } else {
                dialog_surveillance_photo_select_list_view.show(UnknownSurveillanceQueryItemUtil.getInstance().getAllUnregisterAttenderTwoRowsForSelect(selectedId));
            }
        }
        setTitleAndList(type);
        WheelView.WheelViewStyle style = new WheelView.WheelViewStyle();
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/common/CommonVariables.java
@@ -73,6 +73,7 @@
        public static final int VISIT_ATTENDANCE_IN = 5;
        public static final int VISIT_ATTENDANCE_OUT = 6;
        public static final int VISIT_ATTENDANCE_BLANK = 7;
        public static final int VISIT_UNKNOWN_ITEM_TYPE = 8;
        public static final int REGISTER_CELL_VIEW_INDEX = 0;
        public static final int CHECK_IN_CELL_VIEW_INDEX = 1;
@@ -112,7 +113,7 @@
    public static boolean FACE_SERVER = false;
    public static boolean ID_CARD = false;
    public static boolean EMULATOR = false;
    public static boolean EMULATOR = true;
    public static boolean androidOffline() {
        return true;
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/UnknownQueryItem.java
New file
@@ -0,0 +1,32 @@
package cn.com.basic.face.discern.query.item;
public class UnknownQueryItem {
    private String rawDataPath;
    private String cameraInOrOut;
    private String createTime;
    public String getRawDataPath() {
        return rawDataPath;
    }
    public void setRawDataPath(String rawDataPath) {
        this.rawDataPath = rawDataPath;
    }
    public String getCameraInOrOut() {
        return cameraInOrOut;
    }
    public void setCameraInOrOut(String cameraInOrOut) {
        this.cameraInOrOut = cameraInOrOut;
    }
    public String getCreateTime() {
        return createTime;
    }
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
}
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DictionaryMng.java
@@ -7,6 +7,7 @@
import cn.com.basic.face.dialog.CountryDialog;
import cn.com.basic.face.dialog.SelectDialog;
import cn.com.basic.face.discern.query.condition.DictionaryQueryCondition;
import cn.com.basic.face.service.sqlite.TestDao;
import cn.com.basic.face.util.AppApi;
import org.xutils.http.RequestParams;
@@ -37,6 +38,7 @@
        if (!BaseApplication.deviceAvailable) {
            return;
        }
        TestDao.getInstance().test();
        loadCountries();
        loadIdTypeList();
        loadGenderList();
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
@@ -11,9 +11,12 @@
import cn.com.basic.face.base.MainActivity;
import cn.com.basic.face.discern.common.BaseCommonCallBack;
import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
import cn.com.basic.face.discern.query.item.UnknownQueryItem;
import cn.com.basic.face.service.sqlite.SurveillanceDao;
import cn.com.basic.face.util.AppApi;
import cn.com.basic.face.util.FileUtil;
import cn.com.basic.face.util.SurveillanceQueryItemUtil;
import cn.com.basic.face.util.UnknownSurveillanceQueryItemUtil;
public class SurveillanceMng {
@@ -31,7 +34,11 @@
                    MainActivity.getInstance().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            SurveillanceQueryItemUtil.getInstance().removeTimeoutItemAndShow();
                            if (BaseApplication.getInstance().networkAvailable()) {
                                SurveillanceQueryItemUtil.getInstance().removeTimeoutItemAndShow();
                            } else {
                                UnknownSurveillanceQueryItemUtil.getInstance().removeTimeoutItemAndShow();
                            }
                        }
                    });
                    Thread.sleep(1000*60*5);
@@ -93,4 +100,14 @@
        }
    }
    public void sendOfflineUnknownToInternet() {
        UnknownQueryItem item = SurveillanceDao.getInstance().readOfflineUnknownFromLocal();
        if (item == null) {
            return;
        }
    }
}
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java
@@ -1,5 +1,7 @@
package cn.com.basic.face.service.sqlite;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import java.text.SimpleDateFormat;
@@ -7,9 +9,13 @@
import java.util.List;
import java.util.UUID;
import cn.com.basic.face.base.Config;
import cn.com.basic.face.discern.query.item.SurveillancePhotoQueryItem;
import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
import cn.com.basic.face.discern.query.item.UnknownQueryItem;
import cn.com.basic.face.util.FileUtil;
import cn.com.basic.face.util.SurveillanceQueryItemUtil;
import cn.com.basic.face.util.UnknownSurveillanceQueryItemUtil;
public class SurveillanceDao {
@@ -17,35 +23,52 @@
    public static SurveillanceDao getInstance() {
        return instance;
    }
    //companyId
    //offline_           (headPicture, cameraInOrOut, createTime, visitId)
    public void addBitmap(final List<SurveillanceQueryItem> bitmapList, final byte[] byteArray, int len, final String cameraInOrOut, byte[] surveillancePhotoBytes) {
        for (SurveillanceQueryItem item : bitmapList) {
            Bitmap bitmap = item.getBitmap();
            String fileName = UUID.randomUUID().toString()+".bmp";
            FileUtil.writeToFile(fileName, new byte[]{});
    public void saveOfflineUnknownToLocal(final List<SurveillanceQueryItem> bitmapList, final byte[] rawData, final String cameraInOrOut) {
        if (bitmapList == null || bitmapList.size() == 0) {
            return;
        }
        String rawDataFileName = UUID.randomUUID().toString()+"";
        FileUtil.writeToFile(rawDataFileName, rawData);
        String headPicture = "";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String createTime = sdf.format(new Date());
        String sql = "insert offline_temp(head_picture, camera_in_or_out, create_time, visit_id) values('"+
                headPicture+"','"+
        String sql = "insert offline_unknown(raw_data_path, camera_in_or_out, create_time) values('"+
                rawDataFileName+"','"+
                cameraInOrOut+"','"+
                createTime+"','"+
               "null" +"')";
        //存入数据库
        //把图片存入本地文件
                "null" +"')";
        SQLiteDatabase db = Config.sqlMap.getDb();
        db.beginTransaction();
        db.execSQL(sql);
        db.endTransaction();
        UnknownSurveillanceQueryItemUtil.getInstance().addItems(bitmapList);
        //人员注册可以选择本地图片
        //同步临时表
        //同步访客登记表
        //删除本地文件(循环删除)
    }
    public UnknownQueryItem readOfflineUnknownFromLocal() {
        UnknownQueryItem item = null;
        String sql = "select raw_data,camera_in_or_out,create_time from offline_unknown order by create_time create_time limit 1";
        SQLiteDatabase db = Config.sqlMap.getDb();
        db.beginTransaction();
        Cursor c = db.rawQuery(sql, new String[]{});
        if (c.moveToFirst()) {
            item = new UnknownQueryItem();
            item.setRawDataPath(c.getString(c.getColumnIndex("raw_data_path")));
            item.setCameraInOrOut(c.getString(c.getColumnIndex("camera_in_or_out")));
            item.setCreateTime(c.getString(c.getColumnIndex("create_time")));
        }
        c.close();
        db.endTransaction();
        return item;
    }
}
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/FileUtil.java
@@ -13,6 +13,16 @@
    public static File writeToFile(String fileName, byte[] fileBytes) {
        try {
            writeToFile(fileName, fileBytes, 0, fileBytes.length);
        }catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    public static File writeToFile(String fileName, byte[] fileBytes, int offset, int size) {
        try {
            if (fileBytes == null) {
                fileBytes = new byte[]{};
            }
@@ -24,7 +34,7 @@
            }
            file.createNewFile();
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dir, fileName)));
            bos.write(fileBytes);
            bos.write(fileBytes, offset, size);
            bos.flush();
            bos.close();
            return new File(dir, fileName);
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java
@@ -1,18 +1,17 @@
package cn.com.basic.face.util;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.widget.ImageButton;
import android.graphics.Bitmap;
import android.widget.ImageView;
import java.util.Date;
import java.util.List;
import cn.com.basic.face.base.BaseApplication;
import cn.com.basic.face.discern.common.CommonVariables;
import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
import cn.com.basic.face.service.SurveillanceMng;
import cn.com.basic.face.service.sqlite.SurveillanceDao;
import java.nio.ByteBuffer;
@@ -144,16 +143,23 @@
                //byteBuffer.rewind();
                bitmap.copyPixelsFromBuffer(byteBuffer);
//                String str = Base64.encodeToString(item.image, offset, size, Base64.DEFAULT);
//                System.out.println(str.length());
//                System.out.println(str);
//                surveillanceQueryItem.setBase64Image(str);
                surveillanceQueryItem.setNativeImg(item);
                surveillanceQueryItem.setBitmap(bitmap);
                surveillanceQueryItem.setWidth(item.width+"");
                surveillanceQueryItem.setHeight(item.height+"");
                surveillanceQueryItem.setCreateTime(new Date());
                surveillanceQueryItem.setInOrOutCamera(cameraIdx+"");
                if (BaseApplication.getInstance().networkNotAvailable()) {
                    surveillanceQueryItem.setRegisterOrCheckIn(CommonVariables.Surveillance.VISIT_UNKNOWN_ITEM_TYPE);
                }
                bitmapList.add(surveillanceQueryItem);
            }
            SurveillanceMng.getInstance().addBitmap(bitmapList, faceListPb.arr, s, cameraIdx+"", new byte[]{});
            if (BaseApplication.getInstance().networkAvailable()) {
                SurveillanceMng.getInstance().addBitmap(bitmapList, faceListPb.arr, s, cameraIdx+"", new byte[]{});
            } else {
                SurveillanceDao.getInstance().saveOfflineUnknownToLocal(bitmapList, faceListPb.arr, cameraIdx+"");
            }
        }catch(Exception e){
            e.printStackTrace();
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UnknownSurveillanceQueryItemUtil.java
New file
@@ -0,0 +1,53 @@
package cn.com.basic.face.util;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
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;
    }
    List<SurveillanceQueryItem> allItems = new ArrayList<>();
    public void addItems(List<SurveillanceQueryItem> unknownItems) {
        allItems.addAll(unknownItems);
    }
    public void removeTimeoutItemAndShow() {
        List itemsToRemove = new ArrayList();
        for (SurveillanceQueryItem item : allItems) {
            if (item.getRegisterOrCheckIn() == CommonVariables.Surveillance.VISIT_UNKNOWN_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);
        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) {
        return allItems;
    }
    public List getAllUnregisterAttenderTwoRowsForSelect(long selectedId) {
        return allItems;
    }
}