42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "Firebase.h"
|
|
|
|
DEFINE_LOG_CATEGORY(LogFirebase);
|
|
|
|
void IFirebaseModuleInterface::StartupModule()
|
|
{
|
|
}
|
|
|
|
void IFirebaseModuleInterface::ShutdownModule()
|
|
{
|
|
}
|
|
|
|
class FFirebaseModule : public IFirebaseModuleInterface
|
|
{
|
|
};
|
|
|
|
IMPLEMENT_MODULE(FFirebaseModule, Firebase);
|
|
|
|
#if PLATFORM_ANDROID
|
|
#include "Android/AndroidJava.h"
|
|
#include "Android/AndroidJavaEnv.h"
|
|
#include "Android/AndroidJNI.h"
|
|
#include "Async/TaskGraphInterfaces.h"
|
|
|
|
extern "C"
|
|
{
|
|
JNIEXPORT void Java_com_epicgames_unreal_notifications_EpicFirebaseMessagingService_OnFirebaseTokenChange(JNIEnv* jenv, jobject thiz, jstring jPreviousToken, jstring jNewToken)
|
|
{
|
|
if (IFirebaseModuleInterface::Get().OnTokenUpdate.IsBound())
|
|
{
|
|
FString PreviousToken = FJavaHelper::FStringFromParam(jenv, jPreviousToken);
|
|
FString NewToken = FJavaHelper::FStringFromParam(jenv, jNewToken);
|
|
FFunctionGraphTask::CreateAndDispatchWhenReady([PreviousToken, NewToken]()
|
|
{
|
|
IFirebaseModuleInterface::Get().OnTokenUpdate.Broadcast(PreviousToken, NewToken);
|
|
}, TStatId(), NULL, ENamedThreads::GameThread);
|
|
}
|
|
}
|
|
}
|
|
#endif |