From 62a48a86ce4689d99996fbdff29298ad8fd3aa85 Mon Sep 17 00:00:00 2001 From: Aiden Vigue Date: Mon, 24 May 2021 22:23:29 -0400 Subject: [PATCH] add log out btn --- JellyfinPlayer/ContentView.swift | 1 + JellyfinPlayer/SettingsView.swift | 36 ++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/JellyfinPlayer/ContentView.swift b/JellyfinPlayer/ContentView.swift index d5606c65..5cc9a730 100644 --- a/JellyfinPlayer/ContentView.swift +++ b/JellyfinPlayer/ContentView.swift @@ -213,6 +213,7 @@ struct ContentView: View { if(_viewDidLoad.wrappedValue) { return } + _viewDidLoad.wrappedValue = true; SentrySDK.start { options in options.dsn = "https://75ac77d6af4d406eb989f3d8ef0f119f@o513670.ingest.sentry.io/5778242" diff --git a/JellyfinPlayer/SettingsView.swift b/JellyfinPlayer/SettingsView.swift index a0d4e676..bcc2db36 100644 --- a/JellyfinPlayer/SettingsView.swift +++ b/JellyfinPlayer/SettingsView.swift @@ -6,10 +6,13 @@ // import SwiftUI +import CoreData struct SettingsView: View { @Binding var close: Bool; - @EnvironmentObject private var globalData: GlobalData + @Environment(\.managedObjectContext) private var viewContext + @EnvironmentObject var globalData: GlobalData + @EnvironmentObject var jsi: justSignedIn @State private var username: String = ""; @State private var inNetworkStreamBitrate: Int = 40; @@ -57,6 +60,37 @@ struct SettingsView: View { Text("480p - 740 Kbps").tag(1) } } + + Section() { + Button { + let fetchRequest: NSFetchRequest = NSFetchRequest(entityName: "Server") + let deleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest) + + do { + try viewContext.execute(deleteRequest) + } catch _ as NSError { + // TODO: handle the error + } + + let fetchRequest2: NSFetchRequest = NSFetchRequest(entityName: "SignedInUser") + let deleteRequest2 = NSBatchDeleteRequest(fetchRequest: fetchRequest2) + + do { + try viewContext.execute(deleteRequest2) + } catch _ as NSError { + // TODO: handle the error + } + + globalData.server = nil + globalData.user = nil + globalData.authToken = "" + globalData.authHeader = "" + jsi.did = true + exit(-1) + } label: { + Text("Log out") + } + } } .navigationBarTitle("Settings", displayMode: .inline) .toolbar {