完善景区排队设置页与全局按钮配置迁移。

重构排队设置与变更日志交互,补充 Overlay 与资源,并将多页面主操作按钮统一到 UIButton Configuration,同步更新相关单元测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-14 16:51:23 +08:00
parent 6336feff27
commit 5eef31b8da
17 changed files with 181 additions and 124 deletions

View File

@ -858,6 +858,11 @@ extension WiredCameraTransferViewController: PHPickerViewControllerDelegate {
) async -> TravelAlbumPhoneAlbumImportItem? {
let provider = result.itemProvider
let typeIdentifier = preferredImageTypeIdentifier(from: provider)
let fileName = importFileName(
suggestedName: provider.suggestedName,
typeIdentifier: typeIdentifier,
index: index
)
return await withCheckedContinuation { continuation in
provider.loadDataRepresentation(forTypeIdentifier: typeIdentifier) { data, _ in
guard let data, !data.isEmpty else {
@ -867,7 +872,7 @@ extension WiredCameraTransferViewController: PHPickerViewControllerDelegate {
continuation.resume(
returning: TravelAlbumPhoneAlbumImportItem(
data: data,
fileName: importFileName(provider: provider, typeIdentifier: typeIdentifier, index: index),
fileName: fileName,
createdAt: Date()
)
)
@ -881,9 +886,9 @@ extension WiredCameraTransferViewController: PHPickerViewControllerDelegate {
} ?? UTType.image.identifier
}
private static func importFileName(provider: NSItemProvider, typeIdentifier: String, index: Int) -> String {
private static func importFileName(suggestedName: String?, typeIdentifier: String, index: Int) -> String {
let fallback = "album_image_\(Int(Date().timeIntervalSince1970))_\(index)"
let rawName = provider.suggestedName?.trimmingCharacters(in: .whitespacesAndNewlines)
let rawName = suggestedName?.trimmingCharacters(in: .whitespacesAndNewlines)
let baseName = rawName?.isEmpty == false ? rawName! : fallback
guard URL(fileURLWithPath: baseName).pathExtension.isEmpty else {
return baseName