3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/certificates/identity/edu/CredentialsObserver.h"
7#include "mc/certificates/identity/edu/GenericCredentialsEvent.h"
8#include "mc/client/gui/DirtyFlag.h"
9#include "mc/client/gui/GameEventNotification.h"
10#include "mc/client/gui/SceneType.h"
11#include "mc/client/gui/ViewRequest.h"
12#include "mc/client/gui/screens/controllers/MainMenuScreenController.h"
13#include "mc/client/gui/screens/controllers/ModalScreenButtonId.h"
14#include "mc/client/network/realms/GenericStatus.h"
15#include "mc/client/services/messaging/MessageData.h"
16#include "mc/client/social/ProfileImageOptions.h"
17#include "mc/client/social/UserListObserver.h"
18#include "mc/client/social/UserPlatformConnectionResult.h"
19#include "mc/deps/core/threading/TaskGroup.h"
20#include "mc/deps/core/utility/NonOwnerPointer.h"
21#include "mc/deps/core/utility/pub_sub/Subscription.h"
27class IEntitlementManager;
30namespace Json {
class Value; }
31namespace Social {
class User; }
47 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::StartMenuScreenController>> mStartMenuScreenController;
53 virtual void onUserRemoved(::std::shared_ptr<::Social::User>
const& user) ;
55 virtual ~SignOutObserver() =
default;
61 MCAPI
void $onUserRemoved(::std::shared_ptr<::Social::User>
const& user);
74 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SocialButtonScreenController>> mSocialButtonScreenController;
75 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager>> mEntitlementManager;
76 ::ll::TypedStorage<1, 1, bool> mDirty;
77 ::ll::TypedStorage<4, 4, int> mPendingInvites;
78 ::ll::TypedStorage<1, 1, bool> mSigningIn;
79 ::ll::TypedStorage<1, 1, bool> mNewStoreOffersAvailable;
80 ::ll::TypedStorage<1, 1, bool> mErrorButtonHovered;
81 ::ll::TypedStorage<4, 4, int> mAnimationCount;
82 ::ll::TypedStorage<8, 32, ::std::string> mAnimatedMessage;
83 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastSigningInAnimation;
84 ::ll::TypedStorage<8, 8, int64> mNextContentFetchTime;
85 ::ll::TypedStorage<8, 8, int64> mNextImportTime;
86 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mExistenceTracker;
87 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::StartMenuScreenController::SignOutObserver>> mSignOutObserver;
88 ::ll::TypedStorage<8, 72, ::Social::ProfileImageOptions> mProfileImage;
89 ::ll::TypedStorage<1, 1, bool> mSetFocusToSignInButton;
90 ::ll::TypedStorage<1, 1, bool> mCapabilitiesChanged;
91 ::ll::TypedStorage<8, 336, ::TaskGroup> mTaskGroup;
92 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ButtonArtSurface>> mStoreButtonArtSurface;
93 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ButtonArtSurface>> mPlayButtonArtSurface;
94 ::ll::TypedStorage<8, 640, ::std::optional<::MessageData>> mStoreButtonArtData;
95 ::ll::TypedStorage<8, 640, ::std::optional<::MessageData>> mPlayButtonArtData;
96 ::ll::TypedStorage<1, 1, bool> mStoreButtonHovered;
97 ::ll::TypedStorage<1, 1, bool> mPlayButtonHovered;
98 ::ll::TypedStorage<4, 4, int> mUnreadInvites;
99 ::ll::TypedStorage<1, 1, bool> mInitialInboxAnimationPlayed;
100 ::ll::TypedStorage<1, 1, bool> mShowingNewPlayerFlowButtons;
101 ::ll::TypedStorage<1, 1, bool> mNeedToPlayMainButtonsShowAnimation;
102 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::GatheringConfig const>> mActiveGathering;
103 ::ll::TypedStorage<1, 1, bool> mOwnsRealmsSubscription;
104 ::ll::TypedStorage<1, 1, bool> mRealmsFetched;
105 ::ll::TypedStorage<4, 4, ::Realms::GenericStatus> mRealmsStatus;
106 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPendingInviteCountSubscriber;
107 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPrimaryUserSignInSubscription;
108 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mTrialModeUpdateSubscription;
109 ::ll::TypedStorage<1, 1, bool> mIsTrialModeEnabled;
114 StartMenuScreenController();
119 virtual ~StartMenuScreenController() ;
121 virtual void handleLicenseChanged() ;
123 virtual ::ui::SceneType getSceneType() const ;
125 virtual
void onCreation() ;
127 virtual
void queueTitleNarration() ;
129 virtual
void onOpen() ;
131 virtual
void onEntered() ;
133 virtual
void onInit() ;
135 virtual ::ui::DirtyFlag tick() ;
137 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification) ;
139 virtual
void addStaticScreenVars(::Json::Value& globalVars) ;
142 onNotify(::edu::auth::GenericCredentialsEvent<::edu::auth::CredsAuthComplete> const& state) ;
144 virtual ::
std::
string _getButtonYDescription() ;
146 virtual ::
std::
string _getButtonXDescription() ;
148 virtual ::ui::ViewRequest promptConnect(
149 bool signInOnSuccess,
150 ::
std::function<
void(::Social::UserPlatformConnectionResult)> signInCallback
157 MCAPI StartMenuScreenController(
159 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager
162 MCAPI
bool _YHelperVisible() const;
164 MCAPI
void _createProxy();
166 MCFOLD
void _displayOpenExternalBrowserDialog(::
std::function<
void(::ModalScreenButtonId)> callback);
168 MCAPI
void _fetchRealms();
170 MCAPI
void _fetchUserOrientedContent(
bool signInFailed);
172 MCAPI
bool _hasAnimatedGatheringBadge() const;
174 MCAPI
bool _hasValidGathering() const;
176 MCAPI
bool _isNxAdHocEnabled() const;
178 MCAPI
bool _isProfileButtonBEnabled() const;
180 MCAPI
bool _isSignInVisible();
182 MCAPI
bool _isUserSigningIn() const;
184 MCAPI ::ui::ViewRequest _navigateToProfileScreen();
186 MCAPI
bool _realmsPromoEnabled() const;
188 MCAPI
void _registerBindings();
190 MCAPI
void _registerEventHandlers();
192 MCAPI
void _registerGatheringBindings();
194 MCAPI
void _registerPlayButtonArtBindings();
196 MCAPI
void _registerSilentSignInCallbacks();
198 MCAPI
void _registerStoreButtonArtBindings();
200 MCAPI
void _tryImportPacks();
202 MCAPI
void _updateButtonArt();
204 MCAPI
void _updateGatherings();
206 MCAPI
void _updateProfileImage();
208 MCAPI
void _updateUnreadMessageCount();
210 MCAPI
void resetInboxAnimation();
212 MCAPI
void startInboxAnimation();
220 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager
233 MCAPI
void $handleLicenseChanged();
235 MCAPI ::ui::SceneType $getSceneType() const;
237 MCAPI
void $onCreation();
239 MCAPI
void $queueTitleNarration();
241 MCAPI
void $onOpen();
243 MCAPI
void $onEntered();
245 MCAPI
void $onInit();
247 MCAPI ::ui::DirtyFlag $tick();
249 MCAPI ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
251 MCAPI
void $addStaticScreenVars(::Json::Value& globalVars);
253 MCAPI
void $onNotify(::edu::auth::GenericCredentialsEvent<::edu::auth::CredsAuthComplete> const& state);
255 MCAPI ::
std::
string $_getButtonYDescription();
257 MCAPI ::
std::
string $_getButtonXDescription();
259 MCAPI ::ui::ViewRequest
260 $promptConnect(
bool signInOnSuccess, ::
std::function<
void(::Social::UserPlatformConnectionResult)> signInCallback);
Definition GatheringConfig.h:5
Definition MainMenuScreenController.h:5
Definition MainMenuScreenModel.h:5
Definition CredentialsObserver.h:25
Definition CredsAuthComplete.h:7