import { settingStores } from "@/store/modules/index";

/**
 * @获取缓存
 */
const formatSize = () => {
  let currentSize = "";
  plus.cache.calculate(function (size) {
    let sizeCache = parseInt(size);
    if (sizeCache == 0) {
      currentSize = "0B";
    } else if (sizeCache < 1024) {
      currentSize = sizeCache + "B";
    } else if (sizeCache < 1048576) {
      currentSize = (sizeCache / 1024).toFixed(2) + "KB";
    } else if (sizeCache < 1073741824) {
      currentSize = (sizeCache / 1048576).toFixed(2) + "MB";
    } else {
      v = (sizeCache / 1073741824).toFixed(2) + "GB";
    }

    settingStores().currentSize = currentSize
  });
  return currentSize;
};

/**
 * @清理缓存
 */
const clearCache = () => {
  let os = plus.os.name;
  if (os == "Android") {
    let main = plus.android.runtimeMainActivity();
    let sdRoot = main.getCacheDir();
    let files = plus.android.invoke(sdRoot, "listFiles");
    let len = files.length;

    if (len <= 0) {
      uni.showToast({
        title: "暂无缓存可清理",
        icon: "none",
        duration: 2000,
        mask: true,
      });
    }

    for (let i = 0; i < len; i++) {
      let filePath = "" + files[i]; // 没有找到合适的方法获取路径，这样写可以转成文件路径
      plus.io.resolveLocalFileSystemURL(
        filePath,
        function (entry) {
          if (entry.isDirectory) {
            entry.removeRecursively(
              function (entry) {
                //递归删除其下的所有文件及子目录
                uni.showToast({
                  title: "缓存清理完成",
                  duration: 2000,
                  mask: true,
                });
                formatSize(); // 重新计算缓存
              },
              function (e) {
                console.log(e.message);
              }
            );
          } else {
            entry.remove();
          }
        },
        function (e) {
          console.log("文件路径读取失败");
        }
      );
    }
  } else {
    // ios
    plus.cache.clear(function () {
      uni.showToast({
        title: "缓存清理完成",
        duration: 2000,
        mask: true,
      });
      formatSize();
    });
  }
};

export default {
  // 设置角标
  setBadge(value) {
    //#ifdef APP-PLUS
    plus.runtime.setBadgeNumber(value);
    //#endif
  },
  formatSize,
  clearCache,
};
