// import something here
import { boot } from "quasar/wrappers";
import { Platform, Dialog,openURL,Loading,Notify } from "quasar";
import { api } from "./axios";
import { requestNotifyPermission } from "src/utils/mobile";

// app启动动画
document.addEventListener("deviceready", () => {
  // window.setTimeout(function() {
    navigator.splashscreen.hide()
  // }, 200)
  // if (Platform.is.android) {
  //   StatusBar.overlaysWebView(true)
  //   StatusBar.styleLightContent()
  //   StatusBar.backgroundColorByHexString(config.statusBarBackgroundColor)
  // }
  // 通知权限申请
  requestNotifyPermission();
  // 设置自动清除badge
  cordova.plugins.notification.badge.configure({ autoClear: true });
  cordova.plugins.notification.local.on("click", function(notification, eopts){
    cordova.plugins.backgroundMode.moveToForeground();
  });
  // 设置后台运行模式
  cordova.plugins.backgroundMode.enable();
  // 解决后台模式无法播放音频问题
  cordova.plugins.backgroundMode.on("activate", function () {
    cordova.plugins.backgroundMode.disableWebViewOptimizations();
  });
  // 检查版本
  checkUpdate()
  // .catch(()=>{
  //   if(Platform.is.cordova && Platform.is.android){
  //     window.open('https://seller.daxiangzj.com')
  //   }
  // });
});
// 检查更新
function checkUpdate() {
  checkUpdate.lastestCheckTime = new Date().getTime();
  return api
    .checkUpdate()
    .then(({ version, version_code, url, description }) => {
      setTimeout(() => {
        // if ($q.platform.is.ios) {
        Dialog.create({
          title: "发现新版本v" + version,
          message: description,
          // cancel: {
          //   label: "暂不更新",
          //   flat: true,
          //   color: "grey-6"
          // },
          ok: "前往更新",
          persistent: true
        })
          .onOk(() => {
            // if ($q.platform.is.ios) {
            openURL(url);
            // return
            // }
            // window.AppUpdate.checkAppUpdate(
            //   res => {
            //     alert(JSON.stringify(res))
            //   },
            //   err => {
            //     alert(JSON.stringify(err))
            //     // this.$q
            //     //   .dialog({
            //     //     title: '发现新版本v' + version,
            //     //     message: description + `(${err.code})`,
            //     //     cancel: {
            //     //       label: '暂不更新',
            //     //       flat: true,
            //     //       color: 'grey-6'
            //     //     },
            //     //     ok: '前往手动更新',
            //     //     persistent: true
            //     //   })
            //     //   .onOk(() => {
            //     openURL(url)
            //     //   })
            //     //   .onCancel(() => {})
            //     //   .onDismiss(() => {})
            //   },
            //   {
            //     version: version_code,
            //     name: version,
            //     url: url
            //     // remark:description 不支持
            //   },
            //   {
            //     skipPromptDialog: true,
            //     skipProgressDialog: false
            //   }
            // )
          })
          // .onCancel(() => {})
          .onDismiss(() => {
            Loading.show({
              backgroundColor:'white',
              html:true,
              message: '等待更新完成～～<br/><a href="'+url+'" target="_blank" class="text-primary">点击下载最新版本</a>'
            })
          });
        // } else {
        // }
      }, 200);
      return version;
    })
    // .catch((e) => {
    //   console.info(e.message);
    // });
}
// document.addEventListener("pause", onPause, false);
document.addEventListener(
  "resume",
  function () {
    if (
      checkUpdate.lastestCheckTime &&
      new Date().getTime() - checkUpdate.lastestCheckTime > 60 * 60000
    ) {
      checkUpdate();
    }
  },
  false
);

window.addEventListener("cordovacallbackerror", function (event) {
  // event.error contains the original error object
  console.error(event);
});
export default boot(({ app, router, store, urlPath, redirect }) => {
  app.provide('checkUpdate',function(){
    checkUpdate().catch(e=>{
      Notify.create(e.message)
    })
  })
  document.addEventListener("deviceready", function () {
    document.addEventListener(
      "backbutton",
      function(event){
        event.preventDefault();
        let curRoute = router.currentRoute.value.name;
        if (
          [
            "login",
            "home",
            "my",
            "customerManage",
            "statistics"
          ].indexOf(curRoute) >= 0
        ) {
          cordova.plugins.backgroundMode.moveToBackground()
        }
      },
      false
    );
  });
});
