Files
UnrealEngineUWP/Engine/Source/Developer/FriendsAndChat/Private/Models/FriendsStatusViewModel.cpp
Sam Zamani 59c670ac40 Merging using UE4-Fortnite-To-UE4
#friends ui
- more explicit presence states

FORT-2202 Player status appears as Away when choosing Offline in the Friends Menu

[CL 2359481 by Sam Zamani in Main branch]
2014-11-13 22:10:45 -05:00

54 lines
1.5 KiB
C++

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
#include "FriendsAndChatPrivatePCH.h"
#include "FriendsStatusViewModel.h"
class FFriendsStatusViewModelImpl
: public FFriendsStatusViewModel
{
public:
virtual bool GetOnlineStatus() const override
{
return FriendsAndChatManager.Pin()->GetUserIsOnline();
}
virtual void SetOnlineStatus(EOnlinePresenceState::Type OnlineState) override
{
FriendsAndChatManager.Pin()->SetUserIsOnline(OnlineState);
}
virtual TArray<TSharedRef<FText> > GetStatusList() const override
{
return OnlineStateArray;
}
virtual FText GetStatusText() const override
{
return FriendsAndChatManager.Pin()->GetUserIsOnline() ? FText::FromString("Online") : FText::FromString("Away");
}
private:
FFriendsStatusViewModelImpl(
const TSharedRef<FFriendsAndChatManager>& FriendsAndChatManager
)
: FriendsAndChatManager(FriendsAndChatManager)
{
OnlineStateArray.Add(MakeShareable(new FText(NSLOCTEXT("OnlineState", "OnlineState_Online", "Online"))));
OnlineStateArray.Add(MakeShareable(new FText(NSLOCTEXT("OnlineState", "OnlineState_Away", "Away"))));
}
private:
TWeakPtr<FFriendsAndChatManager> FriendsAndChatManager;
TArray<TSharedRef<FText> > OnlineStateArray;
private:
friend FFriendsStatusViewModelFactory;
};
TSharedRef< FFriendsStatusViewModel > FFriendsStatusViewModelFactory::Create(
const TSharedRef<FFriendsAndChatManager>& FriendsAndChatManager
)
{
TSharedRef< FFriendsStatusViewModelImpl > ViewModel(new FFriendsStatusViewModelImpl(FriendsAndChatManager));
return ViewModel;
}