Эх сурвалжийг харах

UI: Prevent desynced RPC when toggling it off/on while in-game

Evan Husted 1 жил өмнө
parent
commit
abfbc6f4bc

+ 14 - 1
src/Ryujinx/DiscordIntegrationModule.cs

@@ -1,4 +1,5 @@
 using DiscordRPC;
+using Gommon;
 using Humanizer;
 using Humanizer.Localisation;
 using Ryujinx.Ava.Utilities.AppLibrary;
@@ -75,11 +76,23 @@ namespace Ryujinx.Ava
                     _discordClient = new DiscordRpcClient(ApplicationId);
 
                     _discordClient.Initialize();
-                    _discordClient.SetPresence(_discordPresenceMain);
+
+                    Use(TitleIDs.CurrentApplication);
                 }
             }
         }
 
+        public static void Use(Optional<string> titleId)
+        {
+            if (titleId.TryGet(out string tid))
+                SwitchToPlayingState(
+                    ApplicationLibrary.LoadAndSaveMetaData(tid), 
+                    Switch.Shared.Processes.ActiveApplication
+                );
+            else 
+                SwitchToMainState();
+        }
+
         private static void SwitchToPlayingState(ApplicationMetadata appMeta, ProcessResult procRes)
         {
             _discordClient?.SetPresence(new RichPresence