"""HarmonyOS application package name mappings.

Maps user-friendly app names to HarmonyOS bundle names.
These bundle names are used with the 'hdc shell aa start -b <bundle>' command.
"""

# Custom ability names for apps that don't use the default "EntryAbility"
# Maps bundle_name -> ability_name
# Generated by: python test/find_abilities.py
APP_ABILITIES: dict[str, str] = {
    # Third-party apps
    "cn.wps.mobileoffice.hap": "DocumentAbility",
    "com.ccb.mobilebank.hm": "CcbMainAbility",
    "com.dewu.hos": "HomeAbility",
    "com.larus.nova.hm": "MainAbility",
    "com.luna.hm.music": "MainAbility",
    "com.meitu.meitupic": "MainAbility",
    "com.ss.hm.article.news": "MainAbility",
    "com.ss.hm.ugc.aweme": "MainAbility",
    "com.taobao.taobao4hmos": "Taobao_mainAbility",
    "com.tencent.videohm": "AppAbility",
    "com.ximalaya.ting.xmharmony": "MainBundleAbility",
    "com.zhihu.hmos": "PhoneAbility",
    # Huawei system apps
    "com.huawei.hmos.browser": "MainAbility",
    "com.huawei.hmos.calculator": "com.huawei.hmos.calculator.CalculatorAbility",
    "com.huawei.hmos.calendar": "MainAbility",
    "com.huawei.hmos.camera": "com.huawei.hmos.camera.MainAbility",
    "com.huawei.hmos.clock": "com.huawei.hmos.clock.phone",
    "com.huawei.hmos.clouddrive": "MainAbility",
    "com.huawei.hmos.email": "ApplicationAbility",
    "com.huawei.hmos.filemanager": "MainAbility",
    "com.huawei.hmos.health": "Activity_card_entryAbility",
    "com.huawei.hmos.notepad": "MainAbility",
    "com.huawei.hmos.photos": "MainAbility",
    "com.huawei.hmos.screenrecorder": "com.huawei.hmos.screenrecorder.ServiceExtAbility",
    "com.huawei.hmos.screenshot": "com.huawei.hmos.screenshot.ServiceExtAbility",
    "com.huawei.hmos.settings": "com.huawei.hmos.settings.MainAbility",
    "com.huawei.hmos.soundrecorder": "MainAbility",
    "com.huawei.hmos.vassistant": "AiCaptionServiceExtAbility",
    "com.huawei.hmos.wallet": "MainAbility",
    # Huawei services
    "com.huawei.hmsapp.appgallery": "MainAbility",
    "com.huawei.hmsapp.books": "MainAbility",
    "com.huawei.hmsapp.himovie": "MainAbility",
    "com.huawei.hmsapp.hisearch": "MainAbility",
    "com.huawei.hmsapp.music": "MainAbility",
    "com.huawei.hmsapp.thememanager": "MainAbility",
    "com.huawei.hmsapp.totemweather": "com.huawei.hmsapp.totemweather.MainAbility",
    # OHOS system apps
    "com.ohos.callui": "com.ohos.callui.ServiceAbility",
    "com.ohos.contacts": "com.ohos.contacts.MainAbility",
    "com.ohos.mms": "com.ohos.mms.MainAbility",
}

APP_PACKAGES: dict[str, str] = {
    # Social & Messaging
    "微信": "com.tencent.wechat",
    "QQ": "com.tencent.mqq",
    "微博": "com.sina.weibo.stage",
    # E-commerce
    "淘宝": "com.taobao.taobao4hmos",
    "京东": "com.jd.hm.mall",
    "拼多多": "com.xunmeng.pinduoduo.hos",
    "淘宝闪购": "com.taobao.taobao4hmos",
    "京东秒送": "com.jd.hm.mall",
    # Lifestyle & Social
    "小红书": "com.xingin.xhs_hos",
    "知乎": "com.zhihu.hmos",
    # "豆瓣": "com.douban.frodo",  # 未在 hdc 列表中找到
    # Maps & Navigation
    "高德地图": "com.amap.hmapp",
    "百度地图": "com.baidu.hmmap",
    # Food & Services
    "美团": "com.sankuai.hmeituan",
    "美团外卖": "com.meituan.takeaway",
    "大众点评": "com.sankuai.dianping",
    # "肯德基": "com.yek.android.kfc.activitys",  # 未在 hdc 列表中找到
    # Travel
    # "携程": "ctrip.android.view",  # 未在 hdc 列表中找到
    "铁路12306": "com.chinarailway.ticketingHM",
    "12306": "com.chinarailway.ticketingHM",
    # "去哪儿": "com.Qunar",  # 未在 hdc 列表中找到
    # "去哪儿旅行": "com.Qunar",  # 未在 hdc 列表中找到
    "滴滴出行": "com.sdu.didi.hmos.psnger",
    # Video & Entertainment
    "bilibili": "yylx.danmaku.bili",
    "抖音": "com.ss.hm.ugc.aweme",
    "快手": "com.kuaishou.hmapp",
    "腾讯视频": "com.tencent.videohm",
    "爱奇艺": "com.qiyi.video.hmy",
    "芒果TV": "com.mgtv.phone",
    # "优酷视频": "com.youku.phone",  # 未在 hdc 列表中找到
    # "红果短剧": "com.phoenix.read",  # 未在 hdc 列表中找到
    # Music & Audio
    # "网易云音乐": "com.netease.cloudmusic",  # 未在 hdc 列表中找到
    "QQ音乐": "com.tencent.hm.qqmusic",
    "汽水音乐": "com.luna.hm.music",
    "喜马拉雅": "com.ximalaya.ting.xmharmony",
    # Reading
    # "番茄小说": "com.dragon.read",  # 未在 hdc 列表中找到
    # "番茄免费小说": "com.dragon.read",  # 未在 hdc 列表中找到
    # "七猫免费小说": "com.kmxs.reader",  # 未在 hdc 列表中找到
    # Productivity
    "飞书": "com.ss.feishu",
    # "QQ邮箱": "com.tencent.androidqqmail",  # 未在 hdc 列表中找到
    # AI & Tools
    "豆包": "com.larus.nova.hm",
    # Health & Fitness
    # "keep": "com.gotokeep.keep",  # 未在 hdc 列表中找到
    # "美柚": "com.lingan.seeyou",  # 未在 hdc 列表中找到
    # News & Information
    # "腾讯新闻": "com.tencent.news",  # 未在 hdc 列表中找到
    "今日头条": "com.ss.hm.article.news",
    # Real Estate
    # "贝壳找房": "com.lianjia.beike",  # 未在 hdc 列表中找到
    # "安居客": "com.anjuke.android.app",  # 未在 hdc 列表中找到
    # Finance
    # "同花顺": "com.hexin.plat.android",  # 未在 hdc 列表中找到
    # Games
    # "星穹铁道": "com.miHoYo.hkrpg",  # 未在 hdc 列表中找到
    # "崩坏：星穹铁道": "com.miHoYo.hkrpg",  # 未在 hdc 列表中找到
    # "恋与深空": "com.papegames.lysk.cn",  # 未在 hdc 列表中找到
    # HarmonyOS 第三方应用
    "百度": "com.baidu.baiduapp",
    "阿里巴巴": "com.alibaba.wireless_hmos",
    "WPS": "cn.wps.mobileoffice.hap",
    "企业微信": "com.tencent.wework.hmos",
    "同程": "com.tongcheng.hmos",
    "同程旅行": "com.tongcheng.hmos",
    "唯品会": "com.vip.hosapp",
    "支付宝": "com.alipay.mobile.client",
    "UC浏览器": "com.uc.mobile",
    "闲鱼": "com.taobao.idlefish4ohos",
    "转转": "com.zhuanzhuan.hmoszz",
    "迅雷": "com.xunlei.thunder",
    "搜狗输入法": "com.sogou.input",
    "扫描全能王": "com.intsig.camscanner.hap",
    "美图秀秀": "com.meitu.meitupic",
    "58同城": "com.wuba.life",
    "得物": "com.dewu.hos",
    "海底捞": "com.haidilao.haros",
    "中国移动": "com.droi.tong",
    "中国联通": "com.sinovatech.unicom.ha",
    "国家税务总局": "cn.gov.chinatax.gt4.hm",
    "建设银行": "com.ccb.mobilebank.hm",
    "快手极速版": "com.kuaishou.hmnebula",
    # HarmonyOS 系统应用 - 工具类
    "浏览器": "com.huawei.hmos.browser",
    "计算器": "com.huawei.hmos.calculator",
    "日历": "com.huawei.hmos.calendar",
    "相机": "com.huawei.hmos.camera",
    "时钟": "com.huawei.hmos.clock",
    "云盘": "com.huawei.hmos.clouddrive",
    "云空间": "com.huawei.hmos.clouddrive",
    "邮件": "com.huawei.hmos.email",
    "文件管理器": "com.huawei.hmos.filemanager",
    "文件": "com.huawei.hmos.files",
    "查找设备": "com.huawei.hmos.finddevice",
    "查找手机": "com.huawei.hmos.finddevice",
    "录音机": "com.huawei.hmos.soundrecorder",
    "录音": "com.huawei.hmos.soundrecorder",
    "录屏": "com.huawei.hmos.screenrecorder",
    "截屏": "com.huawei.hmos.screenshot",
    "笔记": "com.huawei.hmos.notepad",
    "备忘录": "com.huawei.hmos.notepad",
    # HarmonyOS 系统应用 - 媒体类
    "相册": "com.huawei.hmos.photos",
    "图库": "com.huawei.hmos.photos",
    # "视频": "com.huawei.hmos.mediaplayer",  # 未在 hdc 列表中找到，但有 com.huawei.hmsapp.himovie
    # HarmonyOS 系统应用 - 通讯类
    "联系人": "com.ohos.contacts",
    "通讯录": "com.ohos.contacts",
    "短信": "com.ohos.mms",
    "信息": "com.ohos.mms",
    "电话": "com.ohos.callui",
    "拨号": "com.ohos.callui",
    # HarmonyOS 系统应用 - 设置类
    "设置": "com.huawei.hmos.settings",
    "系统设置": "com.huawei.hmos.settings",
    "AndroidSystemSettings": "com.huawei.hmos.settings",
    "Android System Settings": "com.huawei.hmos.settings",
    "Android  System Settings": "com.huawei.hmos.settings",
    "Android-System-Settings": "com.huawei.hmos.settings",
    "Settings": "com.huawei.hmos.settings",
    # HarmonyOS 系统应用 - 生活服务
    "健康": "com.huawei.hmos.health",
    "运动健康": "com.huawei.hmos.health",
    "地图": "com.huawei.hmos.maps.app",
    "华为地图": "com.huawei.hmos.maps.app",
    "钱包": "com.huawei.hmos.wallet",
    "华为钱包": "com.huawei.hmos.wallet",
    "智慧生活": "com.huawei.hmos.ailife",
    "智能助手": "com.huawei.hmos.vassistant",
    "小艺": "com.huawei.hmos.vassistant",
    # HarmonyOS 服务
    "应用市场": "com.huawei.hmsapp.appgallery",
    "华为应用市场": "com.huawei.hmsapp.appgallery",
    "音乐": "com.huawei.hmsapp.music",
    "华为音乐": "com.huawei.hmsapp.music",
    "主题": "com.huawei.hmsapp.thememanager",
    "主题管理": "com.huawei.hmsapp.thememanager",
    "天气": "com.huawei.hmsapp.totemweather",
    "华为天气": "com.huawei.hmsapp.totemweather",
    "视频": "com.huawei.hmsapp.himovie",
    "华为视频": "com.huawei.hmsapp.himovie",
    "阅读": "com.huawei.hmsapp.books",
    "华为阅读": "com.huawei.hmsapp.books",
    "游戏中心": "com.huawei.hmsapp.gamecenter",
    "华为游戏中心": "com.huawei.hmsapp.gamecenter",
    "搜索": "com.huawei.hmsapp.hisearch",
    "华为搜索": "com.huawei.hmsapp.hisearch",
    "指南针": "com.huawei.hmsapp.compass",
    "会员中心": "com.huawei.hmos.myhuawei",
    "我的华为": "com.huawei.hmos.myhuawei",
    "华为会员": "com.huawei.hmos.myhuawei",
}


def get_package_name(app_name: str) -> str | None:
    """
    Get the package name for an app.

    Args:
        app_name: The display name of the app.

    Returns:
        The HarmonyOS bundle name, or None if not found.
    """
    return APP_PACKAGES.get(app_name)


def get_app_name(package_name: str) -> str | None:
    """
    Get the app name from a package name.

    Args:
        package_name: The HarmonyOS bundle name.

    Returns:
        The display name of the app, or None if not found.
    """
    for name, package in APP_PACKAGES.items():
        if package == package_name:
            return name
    return None


def list_supported_apps() -> list[str]:
    """
    Get a list of all supported app names.

    Returns:
        List of app names.
    """
    return list(APP_PACKAGES.keys())
