FTangoAreaDescription UTangoAreaLearningComponent::SaveCurrentArea(FString Filename, bool& bIsSuccessful)
{
	if (UTangoDevice::Get().GetTangoDeviceAreaLearningPointer())
	{
     	return UTangoDevice::Get().GetTangoDeviceAreaLearningPointer()->SaveCurrentArea(Filename, bIsSuccessful);
	}
	else
	{
		UE_LOG(TangoPlugin, Warning, TEXT("UTangoAreaLearningComponent::SaveCurrentArea: Tango Area Learning not enabled"));
        bIsSuccessful = false;
		return FTangoAreaDescription();
	}

}
TArray<FTangoAreaDescription> UTangoDevice::GetAreaDescriptions()
{
	TArray<FTangoAreaDescription> AreaDescriptions;
#if PLATFORM_ANDROID
	const char* key = "name";

	TArray<FString> UUIDs = GetAllUUIDs();
	for (int i = 0; i < UUIDs.Num(); i++)
	{
		std::string t = TCHAR_TO_UTF8(*UUIDs[i]);
		const char* uuid = t.c_str();

		TangoAreaDescriptionMetadata metadata;
		char* name;
		size_t size = 0;
		if (TangoService_getAreaDescriptionMetadata(uuid, &metadata) == TANGO_SUCCESS
			&& TangoAreaDescriptionMetadata_get(metadata, key, &size, &name) == TANGO_SUCCESS)
		{
			AreaDescriptions.Add(FTangoAreaDescription(UUIDs[i], FString(name)));
		}
	}
#endif
	return AreaDescriptions;
}