Full project scaffold: XcodeGen project.yml, Core models/protocols/errors, SMBService (kishikawakatsumi/SMBClient), SFTPService (Citadel 0.9.2), PhotoLibraryService, LANMonitor, BackupEngine, BackgroundTaskManager, all feature UIs (Login, Connect, Browse, Backup, History, Settings), Shared components and theme. Builds clean with zero errors. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
20 lines
576 B
Swift
20 lines
576 B
Swift
import Foundation
|
|
import Photos
|
|
|
|
@MainActor
|
|
final class BackupViewModel: ObservableObject {
|
|
@Published var totalPhotoCount: Int = 0
|
|
@Published var photosAuthStatus: PHAuthorizationStatus = PHPhotoLibrary.authorizationStatus(for: .readWrite)
|
|
|
|
private let photoService = PhotoLibraryService()
|
|
|
|
func loadPhotoCount(filter: BackupFilter) {
|
|
let assets = photoService.fetchAssets(filter: filter)
|
|
totalPhotoCount = assets.count
|
|
}
|
|
|
|
func requestPhotosAccess() async {
|
|
photosAuthStatus = await photoService.requestAuthorization()
|
|
}
|
|
}
|