import { bundleManager, common, Want } from '@kit.AbilityKit';
import { PermissionUtil, StrUtil } from '@pura/harmony-utils';
import { identifier } from '@kit.AdsKit';
import { ToastUtils } from '../dialog/ToastUtils';

export async function openAppStore(context: common.UIAbilityContext) {
  const bundleName = bundleManager.getBundleInfoForSelfSync(
    bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION
  ).name;
  try {
    // 1. 尝试直接拉起应用市场客户端
    const marketWant: Want = {
      action: 'ohos.want.action.appdetail',
      uri: `store://appgallery.huawei.com/app/detail?id=${bundleName}` // 替换为实际包名
    };
    await context.startAbility(marketWant);
  } catch (err) {
    // 2. 彻底失败，提示手动更新
    ToastUtils.normalToast({message:'无法跳转，请手动打开应用市场搜索更新'});
  }
}

export async function getOAID(): Promise<string>{
  try {
    const isGranted = await PermissionUtil.checkRequestPermissions('ohos.permission.APP_TRACKING_CONSENT');
    if(isGranted){
      const oaid = await identifier.getOAID();
      if(StrUtil.isNotEmpty(oaid)) {
        return Promise.resolve(oaid);
      }
    }
  }catch (e) {
    console.error(e);
  }
  return Promise.resolve('');
}

export async function getAppVersion() {
  try {
    // 获取应用自身的 BundleInfo
    // BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION 表示获取应用的基本信息
    let bundleInfo = await bundleManager.getBundleInfoForSelf(
      bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION
    );

    let versionName = bundleInfo.versionName; // 对应 app.json5 中的 "versionName" (如 1.0.0)
    let versionCode = bundleInfo.versionCode; // 对应 app.json5 中的 "versionCode" (如 1000001)

    console.info(`版本名称: ${versionName}, 版本代码: ${versionCode}`);
    return versionName;
  } catch (err) {
    console.error('获取版本信息失败: ' + JSON.stringify(err));
    return '未知版本';
  }
}
