You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#rnx #rb none #ROBOMERGE-OWNER: ryan.durand #ROBOMERGE-AUTHOR: ryan.durand #ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900 #ROBOMERGE-BOT: (v613-10869866) [CL 10870549 by ryan durand in Main branch]
109 lines
2.5 KiB
C++
109 lines
2.5 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "AndroidCookieManager.h"
|
|
|
|
#if USE_ANDROID_JNI
|
|
|
|
#include "Android/AndroidJNI.h"
|
|
#include "Android/AndroidApplication.h"
|
|
|
|
#include <jni.h>
|
|
#include "Async/TaskGraphInterfaces.h"
|
|
|
|
|
|
FAndroidCookieManager::FAndroidCookieManager()
|
|
{
|
|
}
|
|
|
|
FAndroidCookieManager::~FAndroidCookieManager()
|
|
{
|
|
}
|
|
|
|
void FAndroidCookieManager::SetCookie(const FString& URL, const FCookie& Cookie, TFunction<void(bool)> Completed)
|
|
{
|
|
bool bResult = false;
|
|
|
|
JNIEnv* Env = FAndroidApplication::GetJavaEnv();
|
|
if (Env)
|
|
{
|
|
static jmethodID SetCookieFunc = FJavaWrapper::FindMethod(Env, FJavaWrapper::GameActivityClassID, "AndroidThunkJava_CookieManager_SetCookie", "(Ljava/lang/String;Ljava/lang/String;)Z", false);
|
|
if (SetCookieFunc != nullptr)
|
|
{
|
|
FString CookieData = Cookie.Name + FString(TEXT("=")) + Cookie.Value;
|
|
if (Cookie.bHasExpires)
|
|
{
|
|
CookieData += FString(TEXT(";expires")) + Cookie.Expires.ToHttpDate() + FString(TEXT(";"));
|
|
}
|
|
|
|
jstring jUrl = Env->NewStringUTF(TCHAR_TO_UTF8(*URL));
|
|
jstring jCookieData = Env->NewStringUTF(TCHAR_TO_UTF8(*CookieData));
|
|
bResult = FJavaWrapper::CallBooleanMethod(Env, FJavaWrapper::GameActivityThis, SetCookieFunc, jUrl, jCookieData);
|
|
Env->DeleteLocalRef(jCookieData);
|
|
Env->DeleteLocalRef(jUrl);
|
|
}
|
|
}
|
|
|
|
// send result
|
|
if (Completed)
|
|
{
|
|
Completed(bResult);
|
|
}
|
|
}
|
|
|
|
void FAndroidCookieManager::DeleteCookies(const FString& URL, const FString& CookieName, TFunction<void(int)> Completed)
|
|
{
|
|
bool bResult = false;
|
|
|
|
JNIEnv* Env = FAndroidApplication::GetJavaEnv();
|
|
if (Env)
|
|
{
|
|
static jmethodID RemoveCookiesFunc = FJavaWrapper::FindMethod(Env, FJavaWrapper::GameActivityClassID, "AndroidThunkJava_CookieManager_RemoveCookies", "(Ljava/lang/String;)Z", false);
|
|
if (RemoveCookiesFunc != nullptr)
|
|
{
|
|
jstring jUrl = Env->NewStringUTF(TCHAR_TO_UTF8(*URL));
|
|
bResult = FJavaWrapper::CallBooleanMethod(Env, FJavaWrapper::GameActivityThis, RemoveCookiesFunc, jUrl);
|
|
Env->DeleteLocalRef(jUrl);
|
|
}
|
|
}
|
|
|
|
// send result
|
|
if (Completed)
|
|
{
|
|
Completed(bResult);
|
|
}
|
|
}
|
|
|
|
#else
|
|
|
|
FAndroidCookieManager::FAndroidCookieManager()
|
|
{
|
|
}
|
|
|
|
FAndroidCookieManager::~FAndroidCookieManager()
|
|
{
|
|
}
|
|
|
|
void FAndroidCookieManager::SetCookie(const FString& URL, const FCookie& Cookie, TFunction<void(bool)> Completed)
|
|
{
|
|
bool bResult = false;
|
|
|
|
// send result
|
|
if (Completed)
|
|
{
|
|
Completed(bResult);
|
|
}
|
|
}
|
|
|
|
void FAndroidCookieManager::DeleteCookies(const FString& URL, const FString& CookieName, TFunction<void(int)> Completed)
|
|
{
|
|
bool bResult = false;
|
|
|
|
// send result
|
|
if (Completed)
|
|
{
|
|
Completed(bResult);
|
|
}
|
|
}
|
|
|
|
#endif
|