|
@@ -63,75 +63,81 @@ public enum SyncFaceTool {
|
|
|
}
|
|
|
|
|
|
@WorkerThread
|
|
|
- public void doWork() {
|
|
|
+ public void doWork(boolean isInit) {
|
|
|
// if (AppUtils.isAppDebug()) {
|
|
|
// SyncFaceDeBugTool.INSTANCE.doWork();
|
|
|
// } else {
|
|
|
- if (ThreadUtils.isMainThread()) {
|
|
|
- LogUtils.e("该方法必须在子线程调用");
|
|
|
- return;
|
|
|
- }
|
|
|
- Activity topActivity = ActivityUtils.getTopActivity();
|
|
|
- if (topActivity instanceof ChoiceAuthActivity) {
|
|
|
- LogUtils.d("人脸识别中,不去同步人脸!");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (topActivity instanceof FaceListActivity) {
|
|
|
- LogUtils.d("正在查阅底库,不去同步人脸!");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (isSyncFace) {
|
|
|
- LogUtils.d("正在同步人脸");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (null == downloadManager) {
|
|
|
- downloadManager = (DownloadManager) Utils.getApp().getApplicationContext().getSystemService(Context.DOWNLOAD_SERVICE);
|
|
|
+ if (ThreadUtils.isMainThread()) {
|
|
|
+ LogUtils.e("该方法必须在子线程调用");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Activity topActivity = ActivityUtils.getTopActivity();
|
|
|
+ if (topActivity instanceof ChoiceAuthActivity) {
|
|
|
+ LogUtils.d("人脸识别中,不去同步人脸!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (topActivity instanceof FaceListActivity) {
|
|
|
+ LogUtils.d("正在查阅底库,不去同步人脸!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (isSyncFace) {
|
|
|
+ LogUtils.d("正在同步人脸");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (null == downloadManager) {
|
|
|
+ downloadManager = (DownloadManager) Utils.getApp().getApplicationContext().getSystemService(Context.DOWNLOAD_SERVICE);
|
|
|
+ }
|
|
|
+ // 初始化
|
|
|
+ isSyncFace = true;
|
|
|
+ try {
|
|
|
+ // 同步人脸
|
|
|
+ FaceUtils.getInstance().init(Utils.getApp());
|
|
|
+ FaceConfig faceConfig = FaceUtils.getInstance().getFaceConfig();
|
|
|
+ LogUtils.json("底库配置", faceConfig);
|
|
|
+ if (isInit) {
|
|
|
+ // 删除先前的底库
|
|
|
+ FaceUtils.getInstance().deleteAllFace();
|
|
|
+ FaceDao faceDao = RoomTool.getInstance().faceDao();
|
|
|
+ faceDao.clear();
|
|
|
}
|
|
|
- // 初始化
|
|
|
- isSyncFace = true;
|
|
|
- try {
|
|
|
- // 同步人脸
|
|
|
- FaceUtils.getInstance().init(Utils.getApp());
|
|
|
- FaceConfig faceConfig = FaceUtils.getInstance().getFaceConfig();
|
|
|
- LogUtils.json("底库配置", faceConfig);
|
|
|
- EventBus.getDefault().register(this);
|
|
|
- // http请求同步
|
|
|
- List<Pair<String, String>> faceUrlList = getLabFaceList();
|
|
|
- if (null != faceUrlList && !faceUrlList.isEmpty()) {
|
|
|
- // 下载人脸
|
|
|
- List<FaceBuildBean> faceBuildBeanList = downloadPicAndBuild(faceUrlList);
|
|
|
- LogUtils.json("需要变更的人脸", faceBuildBeanList);
|
|
|
+ EventBus.getDefault().register(this);
|
|
|
+ // http请求同步
|
|
|
+ List<Pair<String, String>> faceUrlList = getLabFaceList();
|
|
|
+ if (null != faceUrlList && !faceUrlList.isEmpty()) {
|
|
|
+ // 下载人脸
|
|
|
+ List<FaceBuildBean> faceBuildBeanList = downloadPicAndBuild(faceUrlList);
|
|
|
+ LogUtils.json("需要变更的人脸", faceBuildBeanList);
|
|
|
+ if (null != faceBuildBeanList && !faceBuildBeanList.isEmpty()) {
|
|
|
// 人脸建模
|
|
|
- if (null != faceBuildBeanList && !faceBuildBeanList.isEmpty()) {
|
|
|
- FaceUtils.getInstance().faceBuild(faceBuildBeanList);
|
|
|
- lastBuildTime = System.currentTimeMillis();
|
|
|
- // 等待人脸建模
|
|
|
- while (!isBuildFaceEnd) {
|
|
|
- Thread.sleep(10);
|
|
|
- if (System.currentTimeMillis() - lastBuildTime > 2000) {
|
|
|
- isBuildFaceEnd = true;
|
|
|
- }
|
|
|
+ FaceUtils.getInstance().faceBuild(faceBuildBeanList);
|
|
|
+ lastBuildTime = System.currentTimeMillis();
|
|
|
+ // 等待人脸建模
|
|
|
+ while (!isBuildFaceEnd) {
|
|
|
+ Thread.sleep(10);
|
|
|
+ if (System.currentTimeMillis() - lastBuildTime > 2000) {
|
|
|
+ isBuildFaceEnd = true;
|
|
|
}
|
|
|
}
|
|
|
- LogUtils.json(RoomTool.getInstance().faceDao().getAll());
|
|
|
- } else {
|
|
|
- LogUtils.d("不需要下载变更人脸");
|
|
|
}
|
|
|
- // 删除本地多余的人脸
|
|
|
- delRedundantFace();
|
|
|
- LogUtils.d("底库", FaceUtils.getInstance().getAllFaceId());
|
|
|
+ LogUtils.json(RoomTool.getInstance().faceDao().getAll());
|
|
|
+ } else {
|
|
|
+ LogUtils.d("不需要下载变更人脸");
|
|
|
+ }
|
|
|
+ // 删除本地多余的人脸
|
|
|
+ delRedundantFace();
|
|
|
+ LogUtils.d("底库", FaceUtils.getInstance().getAllFaceId());
|
|
|
+ } catch (Exception e) {
|
|
|
+ LogUtils.e(Log.getStackTraceString(e));
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ // 销毁
|
|
|
+ EventBus.getDefault().unregister(this);
|
|
|
+ FaceUtils.getInstance().destroy();
|
|
|
} catch (Exception e) {
|
|
|
LogUtils.e(Log.getStackTraceString(e));
|
|
|
- } finally {
|
|
|
- try {
|
|
|
- // 销毁
|
|
|
- EventBus.getDefault().unregister(this);
|
|
|
- FaceUtils.getInstance().destroy();
|
|
|
- } catch (Exception e) {
|
|
|
- LogUtils.e(Log.getStackTraceString(e));
|
|
|
- }
|
|
|
}
|
|
|
- isSyncFace = false;
|
|
|
+ }
|
|
|
+ isSyncFace = false;
|
|
|
// }
|
|
|
}
|
|
|
|