3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/ViewRequest.h"
7#include "mc/client/social/IToastManager.h"
8#include "mc/client/social/ToastChannel.h"
9#include "mc/client/social/ToastMessage.h"
10#include "mc/client/social/ToastMessageType.h"
11#include "mc/client/social/ToastState.h"
12#include "mc/deps/core/minecraft/threading/EnableQueueForMainThread.h"
13#include "mc/deps/core/utility/NonOwnerPointer.h"
14#include "mc/resources/ResourcePackListener.h"
26namespace Json {
class Value; }
32 public ::std::enable_shared_from_this<::ToastManager> {
36 ::ll::TypedStorage<8, 8, ::IClientInstance&> mClient;
37 ::ll::TypedStorage<4, 4, ::ToastState> mState;
38 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::ResourcePackManager>> mResourcePackManager;
39 ::ll::TypedStorage<8, 376, ::std::optional<::ToastMessage>> mCurrentMessage;
40 ::ll::TypedStorage<8, 24, ::std::vector<::ToastMessage>> mQueuedToastMessages;
41 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::ToastChannel, ::IToastListener*>>> mListeners;
42 ::ll::TypedStorage<8, 24, ::std::vector<::gsl::not_null<::IToastEventListener*>>> mEventListeners;
43 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::RecipeToastDataViewer>> mIconsViewer;
44 ::ll::TypedStorage<1, 1, bool> mToastClicked;
45 ::ll::TypedStorage<1, 1, bool> mToastsEnabled;
46 ::ll::TypedStorage<1, 1, bool> mRefreshPendingInvites;
47 ::ll::TypedStorage<1, 1, bool> mDestroyToast;
48 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mToastStartTime;
49 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mToastEndTime;
50 ::ll::TypedStorage<4, 4, float> mDeltaTime;
51 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastUpdateTimePoint;
52 ::ll::TypedStorage<8, 8, ::Option*> mEnableDebugToastsOption;
57 ToastManager& operator=(ToastManager
const&);
58 ToastManager(ToastManager
const&);
64 virtual ~ToastManager() ;
66 virtual void pushToast(::ToastMessage&& message) ;
68 virtual bool isEditorModeEnabled() const ;
70 virtual
void onActiveResourcePacksChanged(::ResourcePackManager&) ;
77 ::IClientInstance& client,
78 ::Option* enableDebugToastsOption,
79 ::Bedrock::NotNullNonOwnerPtr<::ResourcePackManager> resourcePackManager
82 MCAPI
void _destroyToast();
84 MCAPI ::std::
string _extractGameInviteDescription(::Json::Value const& propertyBag);
86 MCAPI ::std::
string _extractGameInviteHandle(::Json::Value const& propertyBag);
88 MCAPI ::std::
string const _getKeyNameForCurrentInput() const;
90 MCAPI
void _handleInvite(
bool parseJSON);
92 MCAPI
void _invitationTelemetry(::Json::Value const& data, ::ToastMessageType type);
94 MCAPI
bool _isToastAllowed(::ToastMessageType messageType) const;
96 MCAPI
void _playButtonTTS() const;
98 MCAPI
void _playDefaultToastSound() const;
100 MCAPI
void _playRecipeUnlockingToastInSound() const;
102 MCAPI
void _playRecipeUnlockingToastOutSound() const;
104 MCAPI
void _reportClick();
106 MCAPI
void _sendShowToast(
bool animateIn);
108 MCAPI
void _sendTTS(
bool useIndication, ::std::
string const& message) const;
110 MCAPI
void _setInitialToastValues();
112 MCAPI
void _showNewToast();
114 MCAPI
float getCurrentToastDisplaySeconds() const;
116 MCAPI
float getCurrentToastRemainingDuration() const;
118 MCAPI
float getCurrentToastTotalDuration() const;
120 MCAPI ::ToastIconData getIconData();
122 MCFOLD ::RecipeToastDataViewer const* getIconViewer() const;
124 MCAPI ::std::
string getRecipeTranslationText();
126 MCAPI
bool getRefreshPendingInvites() const;
128 MCAPI ::ToastMessageType getToastMessageType() const;
130 MCAPI ::ui::ViewRequest handleToastButton();
132 MCAPI
bool hasActiveToast() const;
134 MCAPI
bool isToastAllowed(::ToastMessageType messageType) const;
136 MCAPI
void pushNotificationReceived(::PushNotificationMessage const& msg);
138 MCAPI
void registerEventListener(::gsl::not_null<::IToastEventListener*> eventListener);
140 MCAPI
void registerListener(::IToastListener* listener, ::ToastChannel channel);
142 MCAPI
void setRefreshPendingInvites(
bool flag);
144 MCAPI
void setToastsEnabled(
bool toastsEnabled);
146 MCAPI
void toastAnimatedInEvent();
148 MCAPI
void toastAnimatedOutEvent();
150 MCAPI
void unregisterEventListener(::gsl::not_null<::IToastEventListener*> eventListener);
152 MCAPI
void unregisterListener(::IToastListener*);
161 ::IClientInstance& client,
162 ::Option* enableDebugToastsOption,
163 ::Bedrock::NotNullNonOwnerPtr<::ResourcePackManager> resourcePackManager
176 MCAPI
void $pushToast(::ToastMessage&& message);
178 MCAPI
bool $isEditorModeEnabled() const;
180 MCAPI
void $onActiveResourcePacksChanged(::ResourcePackManager&);
Definition EnableQueueForMainThread.h:11
Definition IClientInstance.h:5
Definition IToastEventListener.h:5
Definition IToastListener.h:5
Definition IToastManager.h:5
Definition PushNotificationMessage.h:5
Definition RecipeToastDataViewer.h:5
Definition ResourcePackListener.h:10
Definition ResourcePackManager.h:35
Definition ToastManager.h:5
static MCAPI void ** $vftableForIToastManager()
static MCAPI void ** $vftableForEnableQueueForMainThread()
static MCAPI void ** $vftableForResourcePackListener()
Definition ToastIconData.h:5