Browse Source

提交类型 完成人脸识别操作
提交内容 完成人脸识别操作

Bitliker 7 years ago
parent
commit
47e6be8b56

+ 31 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -1,9 +1,12 @@
 package com.xzjmyk.pm.activity.ui.message;
 
+import android.Manifest;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.provider.Settings;
+import android.support.annotation.NonNull;
 import android.support.v7.widget.AppCompatTextView;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -25,12 +28,14 @@ import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.preferences.PreferenceUtils;
 import com.common.system.DisplayUtil;
+import com.common.system.PermissionUtil;
 import com.core.api.wxapi.ApiPlatform;
 import com.core.api.wxapi.ApiUtils;
 import com.core.app.Constants;
 import com.core.base.BaseActivity;
 import com.core.base.fragment.SupportToolBarFragment;
 import com.core.model.Friend;
+import com.core.model.OAConfig;
 import com.core.model.WorkModel;
 import com.core.net.utils.NetUtils;
 import com.core.utils.ToastUtil;
@@ -331,14 +336,38 @@ public class MessageFragment extends SupportToolBarFragment implements IMessageV
                 break;
 
             case R.id.itemSignImage:
-                if (presenter.isCanPaly()) {
-                    startActivityForResult(new Intent(ct, FaceVeriftyActivity.class), 0x223);
+
+                if (OAConfig.needValidateFace) {
+                    String[] permissions = new String[]{Manifest.permission.CAMERA};
+                    if (PermissionUtil.lacksPermissions(ct, permissions)) {
+                        requestPermissions(permissions, PermissionUtil.DEFAULT_REQUEST);
+                    } else {
+                        if (presenter.isCanPaly()) {
+                            startActivityForResult(new Intent(ct, FaceVeriftyActivity.class), 0x223);
+                        }
+                    }
+                } else {
+                    sign(false);
                 }
                 break;
         }
 
     }
 
+    @Override
+    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+        if (requestCode == PermissionUtil.DEFAULT_REQUEST) {
+            if (grantResults.length != 1 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
+                ToastUtil.showToast(ct, com.uas.appworks.R.string.not_camera_permission);
+            } else {
+                if (presenter.isCanPaly()) {
+                    startActivityForResult(new Intent(ct, FaceVeriftyActivity.class), 0x223);
+                }
+            }
+        }
+    }
+
     private void sign(boolean needMac) {
         WorkModel work = null;
         if (mSignRefreshLayout != null && mSignRefreshLayout.getTag() != null) {

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Wed Jun 13 11:08:53 CST 2018
+#Mon Jun 25 19:13:21 CST 2018
 debugName=502
-versionName=633
+versionName=635
 debugCode=502
-versionCode=174
+versionCode=176

+ 1 - 2
app_core/common/src/main/java/com/core/model/OAConfig.java

@@ -24,12 +24,11 @@ public class OAConfig {
     public static int overlatetime = 0; //严重迟到时间
     public static int latetime = 0;    //迟到时间(在该时间内不算迟到)
     public static int nonclass = 90;   //矿工时间
+    public static boolean needValidateFace = true;   //是否需要人脸识别打卡
     public static String days = "1,2,3,4,5";
     public static String name = "默认班次";
 
 
-
-
     public static boolean canShowRed = false;
 
 

+ 165 - 156
app_modular/apputils/src/main/java/com/modular/apputils/utils/PopupWindowHelper.java

@@ -3,6 +3,7 @@ package com.modular.apputils.utils;
 import android.app.Activity;
 import android.text.Editable;
 import android.text.Selection;
+import android.text.TextUtils;
 import android.util.DisplayMetrics;
 import android.view.Gravity;
 import android.view.LayoutInflater;
@@ -23,160 +24,168 @@ import com.modular.apputils.R;
 
 public class PopupWindowHelper {
 
-	public static void showAlart(final Activity ct, String title, String message, final OnSelectListener listener) {
-		final PopupWindow window = new PopupWindow(ct);
-		View view = LayoutInflater.from(ct).inflate(R.layout.item_select_alert_pop, null);
-		window.setContentView(view);
-		window.setBackgroundDrawable(ct.getResources().getDrawable(R.drawable.pop_round_bg));
-		DisplayUtil.backgroundAlpha(ct, 0.4f);
-		window.setTouchable(true);
-		setPopupWindowHW(ct, window);
-		window.setOutsideTouchable(false);
-		window.setFocusable(true);
-		TextView title_tv = (TextView) view.findViewById(R.id.title_tv);
-		TextView message_tv = (TextView) view.findViewById(R.id.message_tv);
-		title_tv.setText(StringUtil.isEmpty(title) ? ct.getString(R.string.common_dialog_title) : title);
-		message_tv.setText(StringUtil.isEmpty(message) ? "" : message);
-		window.setOnDismissListener(new PopupWindow.OnDismissListener() {
-			@Override
-			public void onDismiss() {
-				DisplayUtil.backgroundAlpha(ct, 1f);
-			}
-		});
-		view.findViewById(R.id.goto_tv).setOnClickListener(new View.OnClickListener() {
-			@Override
-			public void onClick(View v) {
-				if (listener != null)
-					listener.select(false);
-				window.dismiss();
-			}
-		});
-		view.findViewById(R.id.sure_tv).setOnClickListener(new View.OnClickListener() {
-			@Override
-			public void onClick(View v) {
-				if (listener != null)
-					listener.select(true);
-				window.dismiss();
-			}
-		});
-		window.showAtLocation(view, Gravity.CENTER, 0, 0);
-	}
-
-	/*选择地址后回调修改窗口*/
-	public static void create(Activity ct, String title, SelectAimModel model, OnClickListener onClickListener) {
-		create(ct, title, model, onClickListener, null);
-	}
-
-	public static PopupWindow create(Activity ct, String title, SelectAimModel model, OnClickListener onClickListener, OnFindLikerListener onFindLikerListener) {
-		PopupWindow window = new PopupWindow(ct);
-		View view = LayoutInflater.from(ct).inflate(R.layout.item_select_aim_pop, null);
-		window.setContentView(view);
-		setPopupWindowHW(ct, window);
-		window.setBackgroundDrawable(ct.getResources().getDrawable(R.drawable.pop_round_bg));
-		DisplayUtil.backgroundAlpha(ct, 0.4f);
-		viewEvent(ct, window, view, title, model, onClickListener, onFindLikerListener);
-		window.setTouchable(true);
-		window.setOutsideTouchable(false);
-		window.setFocusable(true);
-		window.showAtLocation(view, Gravity.CENTER, 0, 0);
-		return window;
-	}
-
-	private static void viewEvent(final Activity ct,
-	                              final PopupWindow window,
-	                              View view,
-	                              String title,
-	                              final SelectAimModel model,
-	                              final OnClickListener onClickListener,
-	                              final OnFindLikerListener onFindLikerListener
-	) {
-		TextView title_tv = (TextView) view.findViewById(R.id.title_tv);
-		final EditText company_et = (EditText) view.findViewById(R.id.company_et);
-		TextView address_tv = (TextView) view.findViewById(R.id.address_tv);
-		title = StringUtil.isEmpty(title) ? ct.getString(R.string.perfect_company_name) : title;
-		String company = (model == null || StringUtil.isEmpty(model.getName())) ? "" : model.getName();
-		String address = (model == null || StringUtil.isEmpty(model.getAddress())) ? "" : model.getAddress();
-		title_tv.setText(title);
-		company_et.setText(company);
-		Editable etext = company_et.getText();
-		Selection.setSelection(etext, etext.length());
-		address_tv.setText(MyApplication.getInstance().getString(R.string.detailed_address) + "  " + address);
-		window.setOnDismissListener(new PopupWindow.OnDismissListener() {
-			@Override
-			public void onDismiss() {
-				DisplayUtil.backgroundAlpha(ct, 1f);
-			}
-		});
-		if (onFindLikerListener != null) {
-			view.findViewById(R.id.select_erp).setVisibility(View.VISIBLE);
-			view.findViewById(R.id.select_erp).setOnClickListener(new View.OnClickListener() {
-				@Override
-				public void onClick(View v) {
-					if (onFindLikerListener != null) {
-						onFindLikerListener.click(StringUtil.getTextRexHttp(company_et));
-					}
-				}
-			});
-		} else {
-			view.findViewById(R.id.select_erp).setVisibility(View.GONE);
-		}
-		view.findViewById(R.id.goto_tv).setOnClickListener(new View.OnClickListener() {
-			@Override
-			public void onClick(View v) {
-				setBack(null, model, onClickListener);
-				window.dismiss();
-			}
-		});
-		view.findViewById(R.id.sure_tv).setOnClickListener(new View.OnClickListener() {
-			@Override
-			public void onClick(View v) {
-				String company = company_et.getText().toString();
-				setBack(company, model, onClickListener);
-				window.dismiss();
-			}
-		});
-
-	}
-
-	private static void setBack(String company, SelectAimModel model, OnClickListener onClickListener) {
-		if (model == null) {
-			model = new SelectAimModel();
-			model.setAddress("");
-		}
-		if (!StringUtil.isEmpty(company))
-			model.setName(company);
-		if (onClickListener != null)
-			onClickListener.result(model);
-	}
-
-	private static int getWidth(Activity ct) {
-		DisplayMetrics dm = new DisplayMetrics();
-		ct.getWindowManager().getDefaultDisplay().getMetrics(dm);
-		return (int) (dm.widthPixels * (0.8));
-	}
-
-	public static void setPopupWindowHW(PopupWindow window) {
-		window.getContentView().measure(0, 0);
-		window.setHeight(window.getContentView().getMeasuredHeight() + 30);
-		window.setWidth(window.getContentView().getMeasuredWidth() + DisplayUtil.dip2px(MyApplication.getInstance(), 10f));
-	}
-
-	public static void setPopupWindowHW(Activity ct, PopupWindow window) {
-		window.getContentView().measure(0, 0);
-		window.setHeight(window.getContentView().getMeasuredHeight() + 30);
-		window.setWidth(getWidth(ct));
-	}
-
-
-	public interface OnClickListener {
-		void result(SelectAimModel model);
-	}
-
-	public interface OnSelectListener {
-		void select(boolean selectOk);
-	}
-
-	public interface OnFindLikerListener {
-		void click(String licker);
-	}
+    public static void showAlart(final Activity ct, String title, String message, String sureText, final OnSelectListener listener) {
+        final PopupWindow window = new PopupWindow(ct);
+        View view = LayoutInflater.from(ct).inflate(R.layout.item_select_alert_pop, null);
+        window.setContentView(view);
+        window.setBackgroundDrawable(ct.getResources().getDrawable(R.drawable.pop_round_bg));
+        DisplayUtil.backgroundAlpha(ct, 0.4f);
+        window.setTouchable(true);
+        setPopupWindowHW(ct, window);
+        window.setOutsideTouchable(false);
+        window.setFocusable(true);
+        TextView title_tv = (TextView) view.findViewById(R.id.title_tv);
+        TextView message_tv = (TextView) view.findViewById(R.id.message_tv);
+        TextView sure_tv = (TextView) view.findViewById(R.id.sure_tv);
+        title_tv.setText(StringUtil.isEmpty(title) ? ct.getString(R.string.common_dialog_title) : title);
+        message_tv.setText(StringUtil.isEmpty(message) ? "" : message);
+        if (!TextUtils.isEmpty(sureText)) {
+            sure_tv.setText(sureText);
+        }
+        window.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                DisplayUtil.backgroundAlpha(ct, 1f);
+            }
+        });
+        view.findViewById(R.id.goto_tv).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (listener != null)
+                    listener.select(false);
+                window.dismiss();
+            }
+        });
+        sure_tv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (listener != null)
+                    listener.select(true);
+                window.dismiss();
+            }
+        });
+        window.showAtLocation(view, Gravity.CENTER, 0, 0);
+    }
+
+    public static void showAlart(final Activity ct, String title, String message, final OnSelectListener listener) {
+        showAlart(ct, title, message, null, listener);
+    }
+
+    /*选择地址后回调修改窗口*/
+    public static void create(Activity ct, String title, SelectAimModel model, OnClickListener onClickListener) {
+        create(ct, title, model, onClickListener, null);
+    }
+
+    public static PopupWindow create(Activity ct, String title, SelectAimModel model, OnClickListener onClickListener, OnFindLikerListener onFindLikerListener) {
+        PopupWindow window = new PopupWindow(ct);
+        View view = LayoutInflater.from(ct).inflate(R.layout.item_select_aim_pop, null);
+        window.setContentView(view);
+        setPopupWindowHW(ct, window);
+        window.setBackgroundDrawable(ct.getResources().getDrawable(R.drawable.pop_round_bg));
+        DisplayUtil.backgroundAlpha(ct, 0.4f);
+        viewEvent(ct, window, view, title, model, onClickListener, onFindLikerListener);
+        window.setTouchable(true);
+        window.setOutsideTouchable(false);
+        window.setFocusable(true);
+        window.showAtLocation(view, Gravity.CENTER, 0, 0);
+        return window;
+    }
+
+    private static void viewEvent(final Activity ct,
+                                  final PopupWindow window,
+                                  View view,
+                                  String title,
+                                  final SelectAimModel model,
+                                  final OnClickListener onClickListener,
+                                  final OnFindLikerListener onFindLikerListener
+    ) {
+        TextView title_tv = (TextView) view.findViewById(R.id.title_tv);
+        final EditText company_et = (EditText) view.findViewById(R.id.company_et);
+        TextView address_tv = (TextView) view.findViewById(R.id.address_tv);
+        title = StringUtil.isEmpty(title) ? ct.getString(R.string.perfect_company_name) : title;
+        String company = (model == null || StringUtil.isEmpty(model.getName())) ? "" : model.getName();
+        String address = (model == null || StringUtil.isEmpty(model.getAddress())) ? "" : model.getAddress();
+        title_tv.setText(title);
+        company_et.setText(company);
+        Editable etext = company_et.getText();
+        Selection.setSelection(etext, etext.length());
+        address_tv.setText(MyApplication.getInstance().getString(R.string.detailed_address) + "  " + address);
+        window.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                DisplayUtil.backgroundAlpha(ct, 1f);
+            }
+        });
+        if (onFindLikerListener != null) {
+            view.findViewById(R.id.select_erp).setVisibility(View.VISIBLE);
+            view.findViewById(R.id.select_erp).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    if (onFindLikerListener != null) {
+                        onFindLikerListener.click(StringUtil.getTextRexHttp(company_et));
+                    }
+                }
+            });
+        } else {
+            view.findViewById(R.id.select_erp).setVisibility(View.GONE);
+        }
+        view.findViewById(R.id.goto_tv).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                setBack(null, model, onClickListener);
+                window.dismiss();
+            }
+        });
+        view.findViewById(R.id.sure_tv).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                String company = company_et.getText().toString();
+                setBack(company, model, onClickListener);
+                window.dismiss();
+            }
+        });
+
+    }
+
+    private static void setBack(String company, SelectAimModel model, OnClickListener onClickListener) {
+        if (model == null) {
+            model = new SelectAimModel();
+            model.setAddress("");
+        }
+        if (!StringUtil.isEmpty(company))
+            model.setName(company);
+        if (onClickListener != null)
+            onClickListener.result(model);
+    }
+
+    private static int getWidth(Activity ct) {
+        DisplayMetrics dm = new DisplayMetrics();
+        ct.getWindowManager().getDefaultDisplay().getMetrics(dm);
+        return (int) (dm.widthPixels * (0.8));
+    }
+
+    public static void setPopupWindowHW(PopupWindow window) {
+        window.getContentView().measure(0, 0);
+        window.setHeight(window.getContentView().getMeasuredHeight() + 30);
+        window.setWidth(window.getContentView().getMeasuredWidth() + DisplayUtil.dip2px(MyApplication.getInstance(), 10f));
+    }
+
+    public static void setPopupWindowHW(Activity ct, PopupWindow window) {
+        window.getContentView().measure(0, 0);
+        window.setHeight(window.getContentView().getMeasuredHeight() + 30);
+        window.setWidth(getWidth(ct));
+    }
+
+
+    public interface OnClickListener {
+        void result(SelectAimModel model);
+    }
+
+    public interface OnSelectListener {
+        void select(boolean selectOk);
+    }
+
+    public interface OnFindLikerListener {
+        void click(String licker);
+    }
 }

+ 10 - 5
app_modular/apputils/src/main/res/values/style.xml

@@ -1,9 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
+
     <style name="dialog_not_hite_bg" parent="AppBaseTheme">
-        <item name="android:windowBackground"> @android:color/transparent </item>
+        <item name="android:windowBackground">@android:color/transparent</item>
         <item name="android:backgroundDimEnabled">false</item><!--activity不变暗-->
     </style>
+
     <declare-styleable name="TravelDirectionView">
         <attr name="title" format="string" />
         <attr name="time" format="string" />
@@ -19,15 +21,18 @@
         <item name="android:windowDisablePreview">true</item>
         <item name="styleLoadingLayout">@style/LoadingLayoutStyle</item>
         <item name="android:homeAsUpIndicator">@drawable/actionbar_up_indicator</item>
-       
+
         <item name="actionMenuTextColor">#ffffff</item>
-       
-       
+
+
     </style>
-    <style name="PromptDialogStyle" >
+
+    <style name="PromptDialogStyle" parent="CustomProgressDialog">
         <item name="android:padding">@dimen/padding</item>
         <item name="android:windowFrame">@null</item>
         <item name="android:windowNoTitle">true</item>
+        <item name="android:windowTitleStyle">@null</item>
+        <item name="windowNoTitle">true</item>
         <item name="android:windowIsFloating">true</item>
         <item name="android:windowIsTranslucent">true</item>
         <item name="android:windowContentOverlay">@null</item>

+ 21 - 5
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/WorkActivity.java

@@ -1,5 +1,6 @@
 package com.uas.appworks.OA.erp.activity;
 
+import android.Manifest;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -33,7 +34,9 @@ import com.core.app.AppConfig;
 import com.core.app.Constants;
 import com.core.app.MyApplication;
 import com.core.base.OABaseActivity;
+import com.core.model.OAConfig;
 import com.core.model.WorkModel;
+import com.core.utils.ToastUtil;
 import com.core.utils.time.wheel.OASigninPicker;
 import com.lidroid.xutils.ViewUtils;
 import com.modular.apputils.utils.PopupWindowHelper;
@@ -267,11 +270,24 @@ public class WorkActivity extends OABaseActivity implements View.OnClickListener
         Intent intent = null;
 
         if (view.getId() == R.id.signin_btn) {//点击打卡按钮
-            ArrayList<WorkModel> arrayList = (ArrayList<WorkModel>) adapter.getModels();
-            isShowTocstAble = true;
-            if (isSubmitAble() && presenter.isSubmitAble(arrayList)) {
-                startActivityForResult(new Intent(ct, FaceVeriftyActivity.class), 0x223);
-
+            if (OAConfig.needValidateFace) {
+                ArrayList<WorkModel> arrayList = (ArrayList<WorkModel>) adapter.getModels();
+                isShowTocstAble = true;
+                if (isSubmitAble() && presenter.isSubmitAble(arrayList)) {
+                    requestPermission(Manifest.permission.CAMERA, new Runnable() {
+                        @Override
+                        public void run() {
+                            startActivityForResult(new Intent(ct, FaceVeriftyActivity.class), 0x223);
+                        }
+                    }, new Runnable() {
+                        @Override
+                        public void run() {
+                            ToastUtil.showToast(ct, R.string.not_camera_permission);
+                        }
+                    });
+                }
+            } else {
+                presenter.submit(null, macAddress);
             }
         } else if (view.getId() == R.id.date_tv) {
 //			isShowTocstAble = true;

+ 5 - 5
app_modular/faceplatform-ui/src/main/java/com/baidu/idl/face/platform/ui/FaceLivenessActivity.java

@@ -459,7 +459,7 @@ public abstract class FaceLivenessActivity extends BaseNetActivity implements
 //            mSuccessView.setTag("setlayout");
         }
 
-
+        mFaceDetectRoundView.onRefreshTipsView(message);
         if (isAlert) {
             if (mTipsIcon == null) {
                 mTipsIcon = getResources().getDrawable(R.mipmap.ic_warning);
@@ -467,11 +467,11 @@ public abstract class FaceLivenessActivity extends BaseNetActivity implements
                         (int) (mTipsIcon.getMinimumHeight() * 0.7f));
                 mTipsTopView.setCompoundDrawablePadding(15);
             }
-            mTipsTopView.setBackgroundResource(R.drawable.bg_tips);
+//            mTipsTopView.setBackgroundResource(R.drawable.bg_tips);
             mTipsTopView.setText(R.string.detect_standard);
             mTipsTopView.setCompoundDrawables(mTipsIcon, null, null, null);
         } else {
-            mTipsTopView.setBackgroundResource(R.drawable.bg_tips_no);
+//            mTipsTopView.setBackgroundResource(R.drawable.bg_tips_no);
             mTipsTopView.setCompoundDrawables(null, null, null, null);
             if (!TextUtils.isEmpty(message)) {
                 mTipsTopView.setText(message);
@@ -501,10 +501,10 @@ public abstract class FaceLivenessActivity extends BaseNetActivity implements
      */
     public void reSetDetect() {
         mIsCompletion = false;
-        if (mBase64ImageMap!=null){
+        if (mBase64ImageMap != null) {
             mBase64ImageMap.clear();
         }
-        mILivenessStrategy =null;
+        mILivenessStrategy = null;
         startPreview();
     }
 

+ 14 - 9
app_modular/faceplatform-ui/src/main/java/com/baidu/idl/face/platform/ui/FaceVeriftyActivity.java

@@ -12,6 +12,7 @@ import com.common.LogUtil;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.core.app.MyApplication;
+import com.core.model.User;
 import com.core.utils.CommonUtil;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
@@ -44,16 +45,20 @@ public class FaceVeriftyActivity extends FaceLivenessActivity {
     private void showRegisterDialog(final String faceBase64, final String group_id_list, final String user_id) {
         new VeriftyDialog.Builder(this)
                 .setCanceledOnTouchOutside(false)
-                .setContent("该账号还未注册,是否确认使用该脸部信息作为该账号面部校验?")
+                .setContent("您未录入人脸照片,点击\"确认\"录入系统")
                 .build(new VeriftyDialog.OnDialogClickListener() {
                     @Override
                     public void result(boolean clickSure) {
                         if (clickSure) {
-                            String userInfo = "";
-                            if (MyApplication.getInstance().mLoginUser != null) {
-                                userInfo = MyApplication.getInstance().mLoginUser.getTelephone() + "_";
+                            String company = CommonUtil.getSharedPreferences(ct, "erp_commpany");
+                            String master = CommonUtil.getSharedPreferences(ct, "Master_ch");
+                            String name = CommonUtil.getName();
+                            User user = MyApplication.getInstance().mLoginUser;
+                            String phone = null;
+                            if (user != null) {
+                                phone = user.getTelephone();
                             }
-                            userInfo += CommonUtil.getName();
+                            String userInfo = company + "_" + master + "_" + phone + "_" + name;//公司名_帐套名_电话_姓名
                             register(faceBase64, group_id_list, user_id, userInfo);
                         } else {
                             setResult(0);
@@ -69,7 +74,7 @@ public class FaceVeriftyActivity extends FaceLivenessActivity {
      *
      * @param message
      */
-    private void showDialog(final boolean isPass, final String message) {
+    private void showErrorRegister(final boolean isPass, final String message) {
         new VeriftyDialog.Builder(this)
                 .setCanceledOnTouchOutside(false)
                 .setContent(message)
@@ -94,14 +99,14 @@ public class FaceVeriftyActivity extends FaceLivenessActivity {
     private void showErrorDialog(String result) {
         String message = "";
         if (result.contains("liveness check fail")) {
-            message = "活体检测未通过?";
+            message = "不能拿照片骗我哦";
         } else {
             message = result;
         }
-        message += ",是否重新验证?";
         new VeriftyDialog.Builder(this)
                 .setCanceledOnTouchOutside(false)
                 .setContent(message)
+                .setSureText("再试一次")
                 .setShowCancel(true)
                 .build(new VeriftyDialog.OnDialogClickListener() {
                     @Override
@@ -170,7 +175,7 @@ public class FaceVeriftyActivity extends FaceLivenessActivity {
                                         setResult(RESULT_OK);
                                         finish();
                                     } else {
-                                        showDialog(mFaceVerify.isPass(), "验证失败,本次不能为您打卡!");
+                                        showErrorDialog("抱歉,没认出你哦");
                                     }
                                 }
                             } else {

+ 1 - 1
app_modular/faceplatform-ui/src/main/java/com/baidu/idl/face/platform/ui/config/FaceConfig.java

@@ -79,7 +79,7 @@ public class FaceConfig {
         // 人脸遮挡范围 (0-1) 推荐小于0.5
         config.setOcclusionValue(VALUE_OCCLUSION);
         // 是否进行质量检测
-        config.setCheckFaceQuality(true);
+        config.setCheckFaceQuality(false);
         // 人脸检测使用线程数
         config.setFaceDecodeNumberOfThreads(2);
         // 是否开启提示音

+ 22 - 10
app_modular/faceplatform-ui/src/main/java/com/baidu/idl/face/platform/ui/widget/FaceDetectRoundView.java

@@ -20,6 +20,7 @@ import android.view.View;
 
 import com.baidu.idl.face.platform.ui.R;
 import com.baidu.idl.face.platform.utils.DensityUtils;
+import com.common.system.DisplayUtil;
 
 /**
  * 人脸检测区域View
@@ -34,7 +35,7 @@ public class FaceDetectRoundView extends View {
     public static final int CIRCLE_SPACE = 2;
     public static final int PATH_SPACE = 16;
     public static final int PATH_SMALL_SPACE = 12;
-    public static final int PATH_WIDTH = 7;
+    public static final int PATH_WIDTH = 6;
 
     public final int COLOR_BG = Color.parseColor("#FFFFFF");
     public final int COLOR_RECT = COLOR_BG;
@@ -60,6 +61,9 @@ public class FaceDetectRoundView extends View {
     private float mR;//半径
     private boolean mIsSuccess = false;
 
+    private float mTipY;
+    private float mTipX;
+    private String mTipMessage;
     private float mTopTextX;//
     private float mTopTextY;//
     private float mBottomTextX;//
@@ -73,7 +77,7 @@ public class FaceDetectRoundView extends View {
 
         mBGPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
         mBGPaint.setColor(COLOR_BG);
-        mBGPaint.setStyle(Paint.Style.FILL);
+        mBGPaint.setStyle(Paint.Style.STROKE);
         mBGPaint.setAntiAlias(true);
         mBGPaint.setDither(true);
 
@@ -119,9 +123,14 @@ public class FaceDetectRoundView extends View {
 
 
     public void onRefreshTipsView(String message) {
+        mTipMessage=message;
         if (!TextUtils.isEmpty(message)) {
-            float width = mTextTipPaint.measureText(message);
-            float height = mTextTipPaint.getFontMetrics().top - mTextTipPaint.getFontMetrics().bottom;
+            if (mTipY == 0) {
+                float mTipHeight = mTextTipPaint.getFontMetrics().top - mTextTipPaint.getFontMetrics().bottom + DensityUtils.dip2px(getContext(), 10);
+                mTipY = (mY - mR) + mTipHeight + DisplayUtil.dip2px(getContext(), 40);
+            }
+            float mTipWidth = mTextTipPaint.measureText(message);
+            mTipX = mX - mTipWidth / 2;
             postInvalidate();
         }
     }
@@ -152,7 +161,6 @@ public class FaceDetectRoundView extends View {
         float x = canvasWidth / 2;
         float y = (canvasHeight / 2) - ((canvasHeight / 2) * HEIGHT_RATIO);
         float r = (canvasWidth / 2) - ((canvasWidth / 2) * WIDTH_SPACE_RATIO);
-
         if (mFaceRect == null) {
             mFaceRect = new Rect((int) (x - r),
                     (int) (y - r),
@@ -175,8 +183,9 @@ public class FaceDetectRoundView extends View {
         mX = x;
         mY = y;
         mR = r;
+        mBGPaint.setStrokeWidth((top - bottom) / 2 - mR);
 
-        mTopTextX = mX - mTextTopPaint.measureText("赏个脸呗") / 2;
+        mTopTextX = mX - mTextTopPaint.measureText("赏个脸呗") / 2;
         mTopTextY = mY - mR - DensityUtils.dip2px(getContext(), 20);
         mBottomTextX = mX - mTextBottomPaint.measureText("拿起手机,眨眨眼") / 2;
         mBottomTextY = mY + mR + DensityUtils.dip2px(getContext(), 40);
@@ -189,10 +198,11 @@ public class FaceDetectRoundView extends View {
         super.onDraw(canvas);
         //画背景
 //        canvas.drawColor(Color.WHITE);
+//        canvas.drawARGB();
         canvas.drawPaint(mBGPaint);
-
+//        canvas.drawCircle(mX, mY, getHeight() / 2, mBGPaint);
         //画外框
-        canvas.drawCircle(mX, mY, mR + CIRCLE_SPACE + mPathPaint.getStrokeWidth(), mPathPaint);
+        canvas.drawCircle(mX, mY, mR - CIRCLE_SPACE + mPathPaint.getStrokeWidth(), mPathPaint);
         canvas.drawCircle(mX, mY, mR, mFaceRoundPaint);
 
         //画文字
@@ -200,8 +210,10 @@ public class FaceDetectRoundView extends View {
         canvas.drawText("拿起手机,眨眨眼", mBottomTextX, mBottomTextY, mTextBottomPaint);
 
         //画提示语
-        canvas.drawArc(new RectF(mX, mY, 200, 200), -90, 120, true, mArcTipPaint);
-
+//        canvas.drawArc(new RectF(mX, mY, 200, 200), -90, 120, true, mArcTipPaint);
+        if (!TextUtils.isEmpty(mTipMessage)){
+            canvas.drawText(mTipMessage, mTipX,mTipY,mTextTipPaint);
+        }
         //画成功标识
         if (mIsSuccess) {
             canvas.drawBitmap(mSuccessBitmap, mX - mSuccessBitmap.getWidth() / 2, mY - mSuccessBitmap.getHeight() / 2, mPathPaint);

+ 1 - 0
app_modular/faceplatform-ui/src/main/java/com/baidu/idl/face/platform/ui/widget/VeriftyDialog.java

@@ -84,6 +84,7 @@ public class VeriftyDialog extends DialogFragment {
             canceledOnTouchOutside = args.getBoolean(KEY_CANCELED_ON_TOUCH_OUTSIDE, true);
         }
         Dialog dialog = new Dialog(getActivity(), dialogStyle == -1 ? R.style.PromptDialogStyle : dialogStyle);
+        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
         dialog.setCanceledOnTouchOutside(canceledOnTouchOutside);
         dialog.setCancelable(canceledOnTouchOutside);
         dialog.getWindow().setBackgroundDrawable(getResources().getDrawable(R.drawable.pop_round_bg));

+ 7 - 1
app_modular/faceplatform-ui/src/main/res/layout/activity_face_verifty.xml

@@ -17,7 +17,7 @@
         android:layout_gravity="center_horizontal"
         android:gravity="center|bottom"
         android:padding="8dp"
-        android:visibility="visible"
+        android:visibility="gone"
         android:text="@string/detect_face_in"
         android:textColor="@color/white"
         android:textSize="12sp" />
@@ -29,6 +29,12 @@
         android:visibility="visible" />
 
 
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="18dp"
+        android:layout_alignParentBottom="true"
+        android:layout_marginBottom="20dp"
+        android:src="@mipmap/ic_bottom_uu"/>
 
 
 </RelativeLayout>

BIN
app_modular/faceplatform-ui/src/main/res/mipmap-xhdpi/ic_bottom_uu.png


BIN
app_modular/faceplatform-ui/src/main/res/mipmap-xxhdpi/ic_bottom_uu.png