对齐有线传图页 Android UI,并改用相对路径持久化本地照片。

还原顶栏、浮动卡片、时间侧栏与底部交互;照片路径改为 CameraDownloads 相对路径并兼容旧数据;格式 Chip 固定 JPG 且不可点击。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-30 11:16:28 +08:00
parent e91a46c315
commit c71b45bdfd
29 changed files with 2097 additions and 256 deletions

View File

@ -0,0 +1,48 @@
//
// WiredTransferSelectAllBar.swift
// suixinkan
//
import SwiftUI
///
struct WiredTransferSelectAllBar: View {
let selectedCount: Int
let selectableCount: Int
let allSelected: Bool
let onToggleSelectAll: () -> Void
var body: some View {
VStack(spacing: 0) {
Button(action: onToggleSelectAll) {
HStack(spacing: 8) {
WiredTransferSelectIndicator(selected: allSelected, enabled: selectableCount > 0)
Text("全选")
.font(.system(size: 14))
.foregroundStyle(selectableCount > 0 ? WiredTransferDesign.text333 : WiredTransferDesign.text999)
.frame(maxWidth: .infinity, alignment: .leading)
Text("已选 \(selectedCount) / \(selectableCount)")
.font(.system(size: 12))
.foregroundStyle(WiredTransferDesign.text666)
}
.padding(.horizontal, 16)
.padding(.vertical, 10)
}
.buttonStyle(.plain)
Divider().background(WiredTransferDesign.borderLight)
}
.background(Color.white)
}
}
///
struct WiredTransferSelectIndicator: View {
let selected: Bool
var enabled: Bool = true
var body: some View {
Image(systemName: selected ? "checkmark.circle.fill" : "circle")
.font(.system(size: 20))
.foregroundStyle(enabled ? (selected ? AppDesign.primary : WiredTransferDesign.text999) : WiredTransferDesign.text999.opacity(0.5))
}
}