feat: 同时启动多个模拟器时使用自动检测连接时提供弹窗选择
https://github.com/user-attachments/assets/0b424e4d-6704-4d63-84dc-64916df6220b
## Summary by Sourcery
添加通用的项目选择对话框,并使用它在自动检测期间处理多个已检测到的模拟器和连接地址。
New Features:
- 引入可复用的项目选择对话框和视图模型,可以显示带有可自定义标题和提示语的项目列表,并返回所选项目。
- 当检测到多个模拟器或多个 ADB 路径时,允许用户选择要连接的模拟器实例。
- 当检测到多个非默认的 ADB 连接地址时,允许用户选择要使用的连接地址。
Bug Fixes:
- 当发现多个候选项时,通过明确要求用户进行选择,防止产生含糊不清或错误的模拟器/ADB 选择。
- 当不存在有效目录时,将已配置路径初始化为空,避免强制使用硬编码的默认模拟器安装路径。
- 确保选择对话框始终在 UI 线程调度器上创建和显示,以避免潜在的线程问题。
Enhancements:
- 优化模拟器检测逻辑,以同时跟踪模拟器名称和解析后的 ADB 路径,对结果去重,并在选择界面中展示这些信息。
- 使用通用项目选择对话框替换特定于模拟器路径的对话框,并简化相关视图模型的职责。
- 通过可在不同选择场景中复用的通用选择与提示字符串,改进本地化支持。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Add generic item selection dialog and use it to handle multiple detected
emulators and connection addresses during auto-detection.
New Features:
- Introduce a reusable item selection dialog and view model that can
display a list of items with customizable title and prompt and return
the selected item.
- Allow users to choose which emulator instance to connect to when
multiple emulators or ADB paths are detected.
- Allow users to choose which connection address to use when multiple
non-default ADB addresses are detected.
Bug Fixes:
- Prevent ambiguous or incorrect emulator/ADB selection by explicitly
requiring a user choice when multiple candidates are found.
- Avoid forcing hard-coded default emulator installation paths by
initializing configured paths as empty when no valid directory exists.
- Ensure selection dialogs are always created and shown on the UI thread
dispatcher to avoid potential threading issues.
Enhancements:
- Refine emulator detection to track both emulator name and resolved ADB
path, deduplicate results, and surface this information in the selection
UI.
- Replace the emulator-path-specific dialog with a generic item
selection dialog and simplify related view model responsibilities.
- Improve localization support with generic selection and prompt strings
that can be reused across different selection scenarios.
</details>
<img width="3190" height="208" alt="07832262dcc66157005c08cc95a03fd1"
src="https://github.com/user-attachments/assets/84630506-c595-4999-ac7b-9c79f200bb16"
/>
<img width="1753" height="91" alt="b8ee23114f21ed1047697a77e713f1e5"
src="https://github.com/user-attachments/assets/6d781864-9c65-4774-85c7-8c22a1210285"
/>
完整包体积 +67 M
更新包第一次也会大差不多这么多,后面因为增量的原因不会影响
## Summary by Sourcery
记录迁移到自包含(self-contained)的 .NET 部署方式,并相应更新运行时和操作系统支持要求。
新功能:
- 通过自包含部署,将 .NET 运行时打包进 Windows GUI 构建中,从而不再需要单独安装 .NET。
增强改进:
- 在所有支持的语言中明确说明:安装时仅需要 Visual C++ 运行时,因为 .NET 现在已随程序一同提供。
- 更新 Linux/Wine 使用文档,以反映 Windows 构建已包含 .NET 运行时这一事实。
- 重新措辞操作系统支持说明,解释由于运行时和系统组件依赖,MAA 需要 Windows 10 或更高版本。
构建:
- 调整 WPF GUI 项目和依赖设置脚本以使用自包含发布模式,并停止安装外部的 .NET Desktop Runtime。
文档:
- 更新所有语言的常见问题(FAQ)、安装说明和新手指南,使其与新的自包含部署方式和运行时要求保持一致。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Document the switch to self-contained .NET deployment and update runtime
and OS support requirements accordingly.
New Features:
- Bundle the .NET runtime into the Windows GUI build via self-contained
deployment to remove the need for a separate .NET installation.
Enhancements:
- Clarify across all supported languages that only the Visual C++
runtime is required at install time, as .NET is now included.
- Update Linux/Wine usage docs to reflect that the Windows build already
contains the .NET runtime.
- Reword OS support notes to explain that MAA requires Windows 10 or
later due to its runtime and system component dependencies.
Build:
- Adjust the WPF GUI project and dependency setup script to use
self-contained publish mode and stop installing the external .NET
Desktop Runtime.
Documentation:
- Refresh FAQ, installation, and newbie guides in all languages to match
the new self-contained deployment and runtime requirements.
</details>
部分修复 #16024
继o和a有概率识别为西里尔字母后,c也有概率识别为西里尔字母
BattleQuickFormationCollapseRole.png 对应内容似乎更改了文字大小
## 由 Sourcery 提供的总结
更新日文 OCR 配置和相关任务资源,以提升字符识别效果,并反映更新后的 UI 资源。
错误修复:
- 调整 OCR 字符映射,减少在日文客户端中将拉丁字符误识别为西里尔字符的情况。
功能改进:
- 更新任务配置,以匹配 `BattleQuickFormationCollapseRole` UI 资源的变更,包括重新调整的文字尺寸。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Update Japanese OCR configuration and related task resources to improve
character recognition and reflect updated UI assets.
Bug Fixes:
- Adjust OCR character mappings to reduce misrecognition of Latin
characters as Cyrillic in the Japanese client.
Enhancements:
- Update task configuration to match changes in the
BattleQuickFormationCollapseRole UI asset, including revised text
sizing.
</details>
Added environment variables for initial comment and action link in the GitHub Actions workflow. Updated the comment body to use these variables and improved the AI analysis process with streaming updates.