Ferrite-backup/Ferrite/Views/MagnetChoiceView.swift
kingbri e2792a0f00 Ferrite: Add code up to alpha 1
Working alpha version of Ferrite

Signed-off-by: kingbri <bdashore3@gmail.com>

part2
2022-07-21 00:01:41 -04:00

98 lines
3.3 KiB
Swift

//
// MagnetChoiceView.swift
// Ferrite
//
// Created by Brian Dashore on 7/20/22.
//
import SwiftUI
import ActivityView
struct MagnetChoiceView: View {
@Environment(\.dismiss) var dismiss
@EnvironmentObject var debridManager: DebridManager
@AppStorage("RealDebrid.Enabled") var realDebridEnabled = false
@Binding var selectedResult: SearchResult?
@State private var showActivityView = false
@State private var activityItem: ActivityItem?
var body: some View {
NavView {
Form {
if realDebridEnabled {
Section("Real Debrid options") {
Button("Play on Outplayer") {
guard let downloadUrl = URL(string: "outplayer://\(debridManager.realDebridDownloadUrl)") else {
return
}
UIApplication.shared.open(downloadUrl)
}
Button("Play on VLC") {
guard let downloadUrl = URL(string: "vlc://\(debridManager.realDebridDownloadUrl)") else {
return
}
UIApplication.shared.open(downloadUrl)
}
Button("Play on Infuse") {
guard let downloadUrl = URL(string: "infuse://x-callback-url/play?url=\(debridManager.realDebridDownloadUrl)") else {
return
}
UIApplication.shared.open(downloadUrl)
}
Button("Copy download URL") {
UIPasteboard.general.string = debridManager.realDebridDownloadUrl
}
Button("Share download URL") {
guard let url = URL(string: debridManager.realDebridDownloadUrl) else {
return
}
activityItem = ActivityItem(items: url)
showActivityView.toggle()
}
}
}
Section("Magnet options") {
Button("Copy magnet") {
UIPasteboard.general.string = selectedResult?.magnetLink
}
Button("Share magnet") {
if let result = selectedResult, let url = URL(string: result.magnetLink) {
activityItem = ActivityItem(items: url)
showActivityView.toggle()
}
}
}
}
.activitySheet($activityItem)
.navigationTitle("Link actions")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button("Done") {
dismiss()
}
}
}
}
}
}
struct MagnetChoiceView_Previews: PreviewProvider {
static var previews: some View {
MagnetChoiceView(selectedResult: .constant(SearchResult(title: "", magnetLink: "", magnetHash: nil)))
}
}