/**eslint-disable*/
const genFn = (clsName, action) => {
  return function (options, successCallback, errorCallback) {
    const bridge = window.plus.bridge;
    const success =
        typeof successCallback !== "function"
          ? null
          : function (args) {
              successCallback(args);
            },
      fail =
        typeof errorCallback !== "function"
          ? null
          : function (code) {
              errorCallback(code);
            },
      callbackID = bridge.callbackId(success, fail);
    return bridge.exec(clsName, action, [callbackID, options]);
  };
};
//自定义Native插件注册
window.$bridge = {
  takePhoto: genFn("TakePhoto", "takePhoto"),
  captureVideo: genFn("Videotaped", "captureVideo"),
  getVideoPath: genFn("FileSystem", "getVideoPath"),
  generateVideoName: genFn("FileSystem", "generateVideoName"),
  getAudioPath: genFn("FileSystem", "getAudioPath"),
  generateAudioName: genFn("FileSystem", "generateAudioName"),
  cloudWalkBiometrics1: genFn("CloudWalk", "startLiveFront"),
  calendarOperate: genFn("Calendar", "addCalendarEvent")
};

document.addEventListener("plusready", function () {
  const plus = window.plus;
  let firstBack = 0;
  function handleBack() {
    if (!firstBack) {
      firstBack = Date.now();
      plus.nativeUI.toast("再按一次退出应用");
      setTimeout(function () {
        firstBack = 0;
      }, 2000);
    } else if (Date.now() - firstBack < 2000) {
      plus.runtime.quit();
    }
  }
  window.plus.key.addEventListener("backbutton", handleBack);
});