VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseFragment.java
@@ -6,10 +6,14 @@ import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import com.lidroid.xutils.ViewUtils; import cn.com.basic.face.util.KeyboardUtil; /** * Created by zhangbo on 2017/2/15. @@ -71,4 +75,27 @@ protected void initListeners() {}; protected void initData() {}; public void setupUI(View view) { // Set up touch listener for non-text box views to hide keyboard. if (!(view instanceof EditText)) { view.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { KeyboardUtil.hideSoftKeyboard(); return false; } }); } //If a layout container, iterate over children and seed recursion. if (view instanceof ViewGroup) { for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) { View innerView = ((ViewGroup) view).getChildAt(i); setupUI(innerView); } } } } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/common/BaseCommonCallBack.java
@@ -12,6 +12,7 @@ import java.net.ConnectException; import java.net.SocketTimeoutException; import java.util.ArrayList; import java.util.List; public abstract class BaseCommonCallBack implements Callback.CommonCallback<ResultBean>{ @@ -37,7 +38,7 @@ return JSON.parseArray(jsonArray.toJSONString(), requiredType); } } return null; return new ArrayList<>(); } public <T> List<T> getExtraList(Class<T> requiredType) { @@ -48,7 +49,7 @@ return JSON.parseArray(jsonArray.toJSONString(), requiredType); } } return null; return new ArrayList<>(); } @Override @@ -65,7 +66,6 @@ @Override public void onCancelled(CancelledException cex) { System.out.print("hello"); } @Override @@ -89,7 +89,6 @@ @Override public void onFinished() { System.out.print("hello"); } public int getPageNum() { VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/entity/Visit.java
@@ -114,6 +114,7 @@ private String visitReason; private String deviceId; @@ -354,6 +355,14 @@ this.visitReason = visitReason; } public String getDeviceId() { return deviceId; } public void setDeviceId(String deviceId) { this.deviceId = deviceId; } public String toString() { return ",访问事件主键 ="+ visitId + ",访问事由主键 ="+ visitReasonId + ",访问备注 =" + remark + VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttendanceFragment.java
@@ -76,6 +76,7 @@ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {} public void afterTextChanged(Editable editable) { reloadLeftList(); } }); setupUI(getView()); } @Override VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java
@@ -9,8 +9,11 @@ import android.os.Environment; import android.provider.MediaStore; import android.support.v4.app.Fragment; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; @@ -38,6 +41,7 @@ import cn.com.basic.face.util.IdCard; import cn.com.basic.face.thread.IdCardReaderThread; import cn.com.basic.face.util.KeyboardUtil; import cn.com.basic.face.util.NativeImg; import cn.com.basic.face.util.OkClickedListener; @@ -534,6 +538,7 @@ idCardReaderThread = new IdCardReaderThread(); idCardReaderThread.start(); } setupUI(getView()); } public void fillFormWithIdCard(IdCard idCard) { @@ -588,4 +593,5 @@ }, fragment_attender_register_department.getValue()); } } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java
@@ -131,7 +131,7 @@ reloadCheckInLeftList(); } }); setupUI(getView()); } public void append() { @@ -238,6 +238,7 @@ //offlineVisitItem.setDeviceId(BaseApplication.getInstance().getAndroidDevice().getDeviceId()); offlineVisitItem.setDeviceCompanyId(BaseApplication.getInstance().getAndroidDevice().getCompanyId()); offlineVisitItem.setIsSynchron("N"); offlineVisitItem.setDeviceId(BaseApplication.getInstance().getAndroidDevice().getDeviceId()); } CheckInMng.getInstance().add(params, visitReasonId, offlineVisitItem); } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/DeviceFragment.java
@@ -128,6 +128,8 @@ ViewUtils.inject(this, camera2View); fragment_device_left_wifi_check_box.setChecked(true); loadSharedPreferenceValues(); setupUI(getLeftView()); setupUI(getRightView()); } private void loadSharedPreferenceValues() { VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/PhoneCallFragment.java
@@ -57,7 +57,7 @@ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {} public void afterTextChanged(Editable editable) { loadLeftList(); } }); setupUI(getView()); } @Override VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java
@@ -1,5 +1,6 @@ package cn.com.basic.face.fragment; import android.app.AlarmManager; import android.content.Context; import android.net.wifi.WifiManager; import android.os.Build; @@ -31,6 +32,7 @@ import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; import java.io.DataOutputStream; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; @@ -93,6 +95,32 @@ useNative = false; } if (useNative) { try{ Calendar c = Calendar.getInstance(); c.set(2017, 4, 1, 12, 34, 56); AlarmManager am = (AlarmManager) MainActivity.getInstance().getSystemService(Context.ALARM_SERVICE); am.setTime(c.getTimeInMillis()); Process su = Runtime.getRuntime().exec("su"); DataOutputStream outputStream = new DataOutputStream(su.getOutputStream()); //outputStream.writeBytes("busybox ifconfig wlan0 down\n"); //outputStream.flush(); //Thread.sleep(5000); // outputStream.writeBytes("busybox ifconfig wlan0 hw ether f4:8b:32:62:4f:89\n"); // outputStream.flush(); //outputStream.writeBytes("exit\n"); //outputStream.flush(); //su.waitFor(); /* busybox ifconfig wlan0 hw ether AC:83:F3:42:19:CE */ }catch(Exception e){ e.printStackTrace(); } System.loadLibrary("cvface_api"); System.loadLibrary("opencv_java3"); System.loadLibrary("protobuf-lite"); @@ -118,27 +146,7 @@ } } catch (SocketException ex) {} try{ //Process su = Runtime.getRuntime().exec("su"); //DataOutputStream outputStream = new DataOutputStream(su.getOutputStream()); //outputStream.writeBytes("busybox ifconfig wlan0 down\n"); //outputStream.flush(); //Thread.sleep(5000); // outputStream.writeBytes("busybox ifconfig wlan0 hw ether f4:8b:32:62:4f:89\n"); // outputStream.flush(); //outputStream.writeBytes("exit\n"); //outputStream.flush(); //su.waitFor(); /* busybox ifconfig wlan0 hw ether AC:83:F3:42:19:CE */ }catch(Exception e){ e.printStackTrace(); } // outputStream.writeBytes("busybox ifconfig wlan0 hw ether 00:e0:2c:31:1a:ba\n"); /* sysctl kernel.sched_is_big_little=1 @@ -245,6 +253,7 @@ // reloadBottomList(); } }); setupUI(getView()); } @Override VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitFragment.java
@@ -93,6 +93,7 @@ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {} public void afterTextChanged(Editable editable) { reloadList(); } }); setupUI(getView()); } @Override VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitorRegisterFragment.java
@@ -559,6 +559,7 @@ idCardReaderThread = new IdCardReaderThread(); idCardReaderThread.start(); } setupUI(getView()); } public void fillFormWithIdCard(IdCard idCard) { VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/InternetAccessThread.java
@@ -63,7 +63,7 @@ public static boolean openUrl() { StringBuilder total = new StringBuilder(); StringBuilder javaServerResponse = new StringBuilder(); try { URL url = new URL(AppApi.BASE_URL); URLConnection urlCon = url.openConnection(); @@ -75,18 +75,37 @@ String line; while ((line = bufferedReader.readLine()) != null) { total.append(line).append('\n'); javaServerResponse.append(line).append('\n'); } bufferedReader.close(); bis.close(); is.close(); } catch (Exception e) { //e.printStackTrace(); //System.out.println(e.getMessage()); return false; } StringBuilder cPlusPlusServerResponse = new StringBuilder(); try { URL url = new URL("http://60.205.222.4:8080"); URLConnection urlCon = url.openConnection(); urlCon.setConnectTimeout(1500); InputStream is = urlCon.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); if (total.toString().indexOf("Hello World!") > -1) { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(bis)); String line; while ((line = bufferedReader.readLine()) != null) { cPlusPlusServerResponse.append(line).append('\n'); } bufferedReader.close(); bis.close(); is.close(); } catch (Exception e) { return false; } if (javaServerResponse.toString().indexOf("Hello World!") > -1 && cPlusPlusServerResponse.indexOf("ip") > -1 ) { return true; } else { return false; VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/CheckInDao.java
@@ -259,6 +259,7 @@ contentValues.put("is_synchron",item.getIsSynchron()); contentValues.put("device_company_id",item.getDeviceCompanyId()); contentValues.put("create_time",item.getCreateTime()); contentValues.put("device_id", item.getDeviceId()); long registerId = MainActivity.getInstance().db.insert("visit", "", contentValues); return registerId; VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/down/BaseDownSync.java
@@ -20,7 +20,7 @@ } public void syncNext() { System.out.println("sync."+this.getClass().getName()+" 正在向下同步"); //System.out.println("sync."+this.getClass().getName()+" 正在向下同步"); setSyncComplete(true); if (getNext() != null) { getNext().sync(); VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/BaseSync.java
@@ -14,7 +14,7 @@ } public void sync() { System.out.println("sync."+this.getClass().getName()+" 正在向上同步"); //System.out.println("sync."+this.getClass().getName()+" 正在向上同步"); if (hasMore()) { syncComplete = false; doSync(); VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/FileUpSync.java
@@ -32,9 +32,6 @@ FileWriter fw0 = new FileWriter(f0); fw0.write("test1"); fw0.close(); if (file != null && file.exists()) { System.out.println("exists"); } RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.FILE_SYNCHRON); params.addBodyParameter("f0", f0); params.addBodyParameter("file", file); VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/KeyboardUtil.java
New file @@ -0,0 +1,19 @@ package cn.com.basic.face.util; import android.app.Activity; import android.view.inputmethod.InputMethodManager; import cn.com.basic.face.base.MainActivity; public class KeyboardUtil { public static void hideSoftKeyboard() { Activity activity = MainActivity.getInstance(); InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService( Activity.INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow( activity.getCurrentFocus().getWindowToken(), 0); } } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillanceQueryItemUtil.java
@@ -40,6 +40,7 @@ addItem(returnItem, requestItem, cameraInOrOut); } removeTimeoutItemAndShow(); limitItemsToN(); } public void addItem(SurveillanceQueryItem returnItem, SurveillanceQueryItem requestItem, String cameraInOrOut) { @@ -55,6 +56,44 @@ returnItem.setWidth(requestItem.getWidth()); returnItem.setHeight(requestItem.getHeight()); allItems.add(0, returnItem); } private void limitItemsToN() { int max = 25; int unRegisters = 0; int checkIns = 0; int attenderEnter = 0; int attenderExit = 0; List<SurveillanceQueryItem> itemsToRemove = new ArrayList<>(); for (int i = 0; i < allItems.size(); i++) { SurveillanceQueryItem item = allItems.get(i); int type = item.getRegisterOrCheckIn(); if (type == CommonVariables.Surveillance.VISIT_REGISTER_ITEM_TYPE) { unRegisters++; if (unRegisters > max) { itemsToRemove.add(item); } } if (type == CommonVariables.Surveillance.VISIT_CHECK_IN_ITEM_TYPE) { checkIns++; if (checkIns > max) { itemsToRemove.add(item); } } if (type == CommonVariables.Surveillance.VISIT_ATTENDANCE_IN) { attenderEnter++; if (attenderEnter > max) { itemsToRemove.add(item); } } if (type == CommonVariables.Surveillance.VISIT_ATTENDANCE_OUT) { attenderExit++; if (attenderExit > max) { itemsToRemove.add(item); } } } allItems.removeAll(itemsToRemove); } public List getVisitorTwoRows() { @@ -176,16 +215,16 @@ public void removeTimeoutItemAndShow() { List itemsToRemove = new ArrayList(); // for (SurveillanceQueryItem item : allItems) { // if (item.getRegisterOrCheckIn() == CommonVariables.Surveillance.VISIT_REGISTER_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); // } // } // } for (SurveillanceQueryItem item : allItems) { if (item.getRegisterOrCheckIn() == CommonVariables.Surveillance.VISIT_REGISTER_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(SurveillanceQueryItemUtil.getInstance().getVisitorTwoRows()); SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_attendance_list_view().show(SurveillanceQueryItemUtil.getInstance().getAttendanceTwoRows()); VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/UnknownSurveillanceQueryItemUtil.java
@@ -19,10 +19,21 @@ 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() { synchronized (this) { List itemsToRemove = new ArrayList();