AllDebrid is another debrid provider. Add support to Ferrite in addition to RealDebrid. The overall debrid login backend has changed to accomodate for a more agnostic app structure where more services can be added as needed. Also add some cosmetic changes to search so filters can be added while searching for a phrase. Signed-off-by: kingbri <bdashore3@proton.me>
90 lines
2.7 KiB
Swift
90 lines
2.7 KiB
Swift
//
|
|
// DefaultActionsPickerViews.swift
|
|
// Ferrite
|
|
//
|
|
// Created by Brian Dashore on 8/11/22.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct MagnetActionPickerView: View {
|
|
@AppStorage("Actions.DefaultMagnet") var defaultMagnetAction: DefaultMagnetActionType = .none
|
|
|
|
var body: some View {
|
|
List {
|
|
ForEach(DefaultMagnetActionType.allCases, id: \.self) { action in
|
|
Button {
|
|
defaultMagnetAction = action
|
|
} label: {
|
|
HStack {
|
|
Text(fetchPickerChoiceName(choice: action))
|
|
Spacer()
|
|
if action == defaultMagnetAction {
|
|
Image(systemName: "checkmark")
|
|
.foregroundColor(.blue)
|
|
}
|
|
}
|
|
}
|
|
.backport.tint(.primary)
|
|
}
|
|
}
|
|
.listStyle(.insetGrouped)
|
|
.inlinedList()
|
|
.navigationTitle("Default magnet action")
|
|
.navigationBarTitleDisplayMode(.inline)
|
|
}
|
|
|
|
func fetchPickerChoiceName(choice: DefaultMagnetActionType) -> String {
|
|
switch choice {
|
|
case .none:
|
|
return "Let me choose"
|
|
case .webtor:
|
|
return "Open in Webtor"
|
|
case .shareMagnet:
|
|
return "Share magnet link"
|
|
}
|
|
}
|
|
}
|
|
|
|
struct DebridActionPickerView: View {
|
|
@AppStorage("Actions.DefaultDebrid") var defaultDebridAction: DefaultDebridActionType = .none
|
|
|
|
var body: some View {
|
|
List {
|
|
ForEach(DefaultDebridActionType.allCases, id: \.self) { action in
|
|
Button {
|
|
defaultDebridAction = action
|
|
} label: {
|
|
HStack {
|
|
Text(fetchPickerChoiceName(choice: action))
|
|
Spacer()
|
|
if action == defaultDebridAction {
|
|
Image(systemName: "checkmark")
|
|
.foregroundColor(.blue)
|
|
}
|
|
}
|
|
}
|
|
.backport.tint(.primary)
|
|
}
|
|
}
|
|
.listStyle(.insetGrouped)
|
|
.inlinedList()
|
|
.navigationTitle("Default debrid action")
|
|
.navigationBarTitleDisplayMode(.inline)
|
|
}
|
|
|
|
func fetchPickerChoiceName(choice: DefaultDebridActionType) -> String {
|
|
switch choice {
|
|
case .none:
|
|
return "Let me choose"
|
|
case .outplayer:
|
|
return "Open in Outplayer"
|
|
case .vlc:
|
|
return "Open in VLC"
|
|
case .infuse:
|
|
return "Open in Infuse"
|
|
case .shareDownload:
|
|
return "Share download link"
|
|
}
|
|
}
|
|
}
|