summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2025-11-22 17:00:03 +0100
committerGitHub <noreply@github.com>2025-11-22 17:00:03 +0100
commitf4f7424a9f059a25ec09b22a280d03fcf0e751eb (patch)
treeda9b25179aad7e305bada139bb2062951e68542d /Source/Core
parente526c1ffde96e619bc764167f6fc337db74551ed (diff)
parentddced1a070848d935bd1d140eed549a4cae89566 (diff)
Merge pull request #13583 from LillyJadeKatrin/retroachievements-android
Android Support for RetroAchievements
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/AchievementManager.cpp10
-rw-r--r--Source/Core/Core/AchievementManager.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/Source/Core/Core/AchievementManager.cpp b/Source/Core/Core/AchievementManager.cpp
index 7a41d57c84..4dc581d125 100644
--- a/Source/Core/Core/AchievementManager.cpp
+++ b/Source/Core/Core/AchievementManager.cpp
@@ -49,8 +49,13 @@
#include <shlwapi.h>
#endif // RC_CLIENT_SUPPORTS_RAINTEGRATION
+#ifdef ANDROID
+static const Common::HttpRequest::Headers USER_AGENT_HEADER = {
+ {"User-Agent", Common::GetUserAgentStr() + " (Android)"}};
+#else // ANDROID
static const Common::HttpRequest::Headers USER_AGENT_HEADER = {
{"User-Agent", Common::GetUserAgentStr()}};
+#endif // ANDROID
AchievementManager& AchievementManager::GetInstance()
{
@@ -911,6 +916,7 @@ void AchievementManager::LoginCallback(int result, const char* error_message, rc
Config::Get(Config::RA_USERNAME));
Config::SetBaseOrCurrent(Config::RA_API_TOKEN, "");
instance.update_event.Trigger({.failed_login_code = result});
+ instance.login_event.Trigger(result);
return;
}
@@ -923,6 +929,7 @@ void AchievementManager::LoginCallback(int result, const char* error_message, rc
{
WARN_LOG_FMT(ACHIEVEMENTS, "Failed to retrieve user information from client.");
instance.update_event.Trigger({.failed_login_code = RC_INVALID_STATE});
+ instance.login_event.Trigger(RC_INVALID_STATE);
return;
}
@@ -942,9 +949,12 @@ void AchievementManager::LoginCallback(int result, const char* error_message, rc
user->username, Config::Get(Config::RA_USERNAME));
rc_client_logout(client);
instance.update_event.Trigger({.failed_login_code = RC_INVALID_STATE});
+ instance.login_event.Trigger(RC_INVALID_STATE);
return;
}
}
+ instance.login_event.Trigger(RC_OK);
+
INFO_LOG_FMT(ACHIEVEMENTS, "Successfully logged in {} to RetroAchievements server.",
user->username);
std::lock_guard lg{instance.GetLock()};
diff --git a/Source/Core/Core/AchievementManager.h b/Source/Core/Core/AchievementManager.h
index b666b3f862..0c486deeba 100644
--- a/Source/Core/Core/AchievementManager.h
+++ b/Source/Core/Core/AchievementManager.h
@@ -121,6 +121,7 @@ public:
int failed_login_code = 0;
};
Common::HookableEvent<const UpdatedItems&> update_event;
+ Common::HookableEvent<int> login_event;
static AchievementManager& GetInstance();
void Init(void* hwnd);