// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/Array.h" #include "Containers/Map.h" #include "Containers/UnrealString.h" #include "IDeviceProfileServicesUIManager.h" #include "Templates/SharedPointer.h" #include "UObject/NameTypes.h" class UClass; class UDeviceProfile; /** * Implements the device profile services manager for UI */ class FDeviceProfileServicesUIManager : public IDeviceProfileServicesUIManager { public: /** Default constructor. */ FDeviceProfileServicesUIManager( ); /** Destructor. */ virtual ~FDeviceProfileServicesUIManager() { } public: // IDeviceProfileServicesUIManager Interface virtual const FName GetDeviceIconName( const FString& DeviceName ) const override; virtual const TArray > GetPlatformList( ) override; virtual void GetProfilesByType( TArray& OutDeviceProfiles, const FString& InType ) override; virtual const FName GetPlatformIconName( const FString& DeviceName ) const override; virtual void SetProfile( const FString& DeviceProfileName ) override; protected: /** Generates the UI icon list. */ void CreatePlatformMap(); /** Refresh the UI list - rebuild lists. */ void HandleRefreshUIData(); private: /** Map of profiles to platform types. */ TMap PickerTypeMap; /** Map of profiles to platform types. */ TMap DeviceToPlatformMap; /** Map of profiles to platform types. */ TMap DeviceTypeToIconMap; /** Holds the list of known platforms. */ TArray > PlatformList; };