package com.hand.hrms.face;


import android.widget.Toast;

import com.hand.face.myinterface.NotifyMessage;
import com.hand.face.ui.FaceCompareActivity;
import com.hand.face.ui.FaceSerchActivity;
import com.hand.face.utils.NotifyMessageManager;
import com.hand.face.utils.Utils;
import com.youtu.sign.Base64Util;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaInterface;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 * Created by USER on 2016/12/13.
 */
public class FacePlugin extends CordovaPlugin implements NotifyMessage {
    private NotifyMessageManager notify;
    private CallbackContext mCallbackContext;
    //初始化插件
    @Override
    public void initialize(CordovaInterface cordova, CordovaWebView webView) {
        super.initialize(cordova, webView);
        notify = NotifyMessageManager.getInstance();
        notify.setNotifyMessage(this);
    }

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        mCallbackContext = callbackContext;
        if("faceDetect".equals(action)){
            if(args!=null && args.length()>0){
                JSONObject obj = args.getJSONObject(0);
                if(obj!=null){
                    if(obj.has("direction")){
                        String value = obj.getString("direction");
                        if(value!=null && !value.isEmpty()){
                            if("front".equals(value)){
                                FaceCompareActivity.actionStart(cordova.getActivity());
                            }else if("back".equals(value)){
                                FaceSerchActivity.actionStart(cordova.getActivity());
                            }else{
                                FaceCompareActivity.actionStart(cordova.getActivity());
                            }
                        }else{
                            FaceCompareActivity.actionStart(cordova.getActivity());
                        }
                    }else{
                        FaceCompareActivity.actionStart(cordova.getActivity());
                    }
                }else{
                    FaceCompareActivity.actionStart(cordova.getActivity());
                }
            }else{
                FaceCompareActivity.actionStart(cordova.getActivity());
            }
            return true;
        }else if("getLocalImage".equals(action)){
            String imgPath = args.getString(0);
            byte[] bytes = Utils.File2byte(imgPath);
            String path = Base64Util.encode(bytes);
            mCallbackContext.success(path);
            return true;
        }
        return super.execute(action, args, callbackContext);
    }

    @Override
    public void sendMessage(String msg) {
        try {
            JSONObject msgObj = new JSONObject(msg);
            mCallbackContext.success(msgObj);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}