zworld-em/Plugins/sentry-unreal/Source/Sentry/Private/Android/SentryUserAndroid.cpp
2025-05-11 22:07:21 +08:00

83 lines
2.3 KiB
C++

// Copyright (c) 2022 Sentry. All Rights Reserved.
#include "SentryUserAndroid.h"
#include "Infrastructure/SentryConvertorsAndroid.h"
#include "Infrastructure/SentryJavaClasses.h"
SentryUserAndroid::SentryUserAndroid()
: FSentryJavaObjectWrapper(SentryJavaClasses::User, "()V")
{
SetupClassMethods();
}
SentryUserAndroid::SentryUserAndroid(jobject user)
: FSentryJavaObjectWrapper(SentryJavaClasses::User, user)
{
SetupClassMethods();
}
void SentryUserAndroid::SetupClassMethods()
{
SetEmailMethod = GetMethod("setEmail", "(Ljava/lang/String;)V");
GetEmailMethod = GetMethod("getEmail", "()Ljava/lang/String;");
SetIdMethod = GetMethod("setId", "(Ljava/lang/String;)V");
GetIdMethod = GetMethod("getId", "()Ljava/lang/String;");
SetUsernameMethod = GetMethod("setUsername", "(Ljava/lang/String;)V");
GetUsernameMethod = GetMethod("getUsername", "()Ljava/lang/String;");
SetIpAddressMethod = GetMethod("setIpAddress", "(Ljava/lang/String;)V");
GetIpAddressMethod = GetMethod("getIpAddress", "()Ljava/lang/String;");
SetDataMethod = GetMethod("setOthers", "(Ljava/util/Map;)V");
GetDataMethod = GetMethod("getOthers", "()Ljava/util/Map;");
}
void SentryUserAndroid::SetEmail(const FString& email)
{
CallMethod<void>(SetEmailMethod, *GetJString(email));
}
FString SentryUserAndroid::GetEmail() const
{
return CallMethod<FString>(GetEmailMethod);
}
void SentryUserAndroid::SetId(const FString& id)
{
CallMethod<void>(SetIdMethod, *GetJString(id));
}
FString SentryUserAndroid::GetId() const
{
return CallMethod<FString>(GetIdMethod);
}
void SentryUserAndroid::SetUsername(const FString& username)
{
CallMethod<void>(SetUsernameMethod, *GetJString(username));
}
FString SentryUserAndroid::GetUsername() const
{
return CallMethod<FString>(GetUsernameMethod);
}
void SentryUserAndroid::SetIpAddress(const FString& ipAddress)
{
CallMethod<void>(SetIpAddressMethod, *GetJString(ipAddress));
}
FString SentryUserAndroid::GetIpAddress() const
{
return CallMethod<FString>(GetIpAddressMethod);
}
void SentryUserAndroid::SetData(const TMap<FString, FString>& data)
{
CallMethod<void>(SetDataMethod, SentryConvertorsAndroid::StringMapToNative(data)->GetJObject());
}
TMap<FString, FString> SentryUserAndroid::GetData()
{
auto data = CallObjectMethod<jobject>(GetDataMethod);
return SentryConvertorsAndroid::StringMapToUnreal(*data);
}