diff --git a/iRPC/ContentView.swift b/iRPC/ContentView.swift index 624646d..c2891a3 100644 --- a/iRPC/ContentView.swift +++ b/iRPC/ContentView.swift @@ -20,7 +20,7 @@ struct ContentView: View { @State private var isAuthorized = false @State private var isLoading = true @State private var isAuthenticating = false - @State private var userEnabledRPC = false + @State private var userEnabledRPC = true @State private var showRPCToggle = false @StateObject private var discord = DiscordManager(applicationId: 1_370_062_110_272_520_313) private let manager = NowPlayingManager.shared @@ -308,6 +308,9 @@ struct ContentView: View { print("🔄 Discord state changed: Auth=\(authenticated) Ready=\(ready) User=\(username ?? "none")") + // Check if Discord just became ready while userEnabledRPC is on (default) + let justBecameReady = !isDiscordReady && ready && authenticated + // Update our tracked state isDiscordAuthenticated = authenticated isDiscordReady = ready @@ -315,6 +318,12 @@ struct ContentView: View { // Force UI refresh forceConnectionRefresh = UUID() + + // Auto-start RPC if Discord just became ready and userEnabledRPC is enabled (default) + if justBecameReady && userEnabledRPC { + print("🚀 Discord ready with RPC enabled by default - starting presence updates") + startRPCServices() + } } } @@ -523,18 +532,26 @@ struct ContentView: View { } } + private func startRPCServices() { + discord.startPresenceUpdates() + BackgroundController.shared.start() + if manager.isPlaying { + Task { await updateDiscordWithCurrentSong() } + } + } + + private func stopRPCServices() { + discord.stopPresenceUpdates() + BackgroundController.shared.stop() + } + private func handleUserToggleRPC(enabled: Bool) { print("🎮 User toggled Discord RPC: \(enabled ? "ON" : "OFF")") if enabled { - discord.startPresenceUpdates() - if manager.isPlaying { - Task { await updateDiscordWithCurrentSong() } - } - BackgroundController.shared.start() + startRPCServices() } else { - discord.stopPresenceUpdates() - BackgroundController.shared.stop() + stopRPCServices() } }