Newer
Older
bremer-ios-app / BremerApp / View / LocalView.swift
yhornisse on 10 Sep 2023 1 KB Initial Commit
//
//  LocalView.swift
//  Bremer
//
//  Created by yhornisse on 2023/08/22.
//

import SwiftUI
import AVFoundation

struct LocalView : View {
    
    @EnvironmentObject
    private var audioPlayerViewModel : AudioPlayerViewModel
    
    var body : some View {
        VStack {
            Text("ダウンロード済")
            List {
                ForEach(audioPlayerViewModel.audioQueue, id:\.slug) {audio in
                    Button(action: {
                        if audioPlayerViewModel.exists(audio.slug) {
                            audioPlayerViewModel.playAudioList(audioList: audioPlayerViewModel.audioQueue,
                                                               audio: audio,
                                                               usedBy: "local")
                        } else {
                            // TODO 削除して詰める
//                            localAudioPlayerViewModel.remove
                        }
                    }) {
                        Text("\(audio.name) - \(audio.album ?? "")")
                            .font(.system(size: 14))
                            .frame(height: 35, alignment: .center)
                            .aspectRatio(contentMode: .fit)
                    }
                }
            }
            .listStyle(.plain)
            Spacer()
            Divider()
            AudioPlayerView(audioPlayerViewModel: audioPlayerViewModel)
        }
        .onReceive(NotificationCenter.default.publisher(for: AVAudioSession.routeChangeNotification), perform: { param in
            audioPlayerViewModel.onChangeAudioSessionRoute(param)
        })
        .onReceive(NotificationCenter.default.publisher(for: AVAudioSession.interruptionNotification), perform: { param in
            audioPlayerViewModel.onInterrupted(param)
        })
    }
}