44 virtual ::Bedrock::Threading::Async<void> createPrimaryUserAsync(::std::shared_ptr<::Options> options) = 0;
46 virtual void initPrimaryIdentity() = 0;
48 virtual ::std::shared_ptr<::Social::User> getPrimaryUser()
const = 0;
50 virtual bool isSecondaryUserCreationAllowed(
int id)
const = 0;
52 virtual void setSecondaryUserCreationAllowed(
int id) = 0;
54 virtual ::Bedrock::Threading::Async<void> addSecondaryUserAsync(
56 ::std::shared_ptr<::Options> options,
57 ::std::function<
void(::Social::UserPlatformConnectionResult)> callback
60 virtual bool controllerChanged(
int&,
int&) = 0;
62 virtual bool canChangePrimaryUserFromStartMenuScreen()
const = 0;
64 virtual void getAsyncUserSelection(::std::function<
void(
int)>,
int) = 0;
66 virtual void getAsyncUserSelectionForNewPrimaryUser(
int id,
bool restrictToControllerIdChange) = 0;
68 virtual void forceCloudSaveOnWorld(::std::string
const& levelId) = 0;
70 virtual ::Core::Subject<::Social::UserListObserver, ::Core::SingleThreadedLock>& getUserListSubject() = 0;
72 virtual bool isPrimaryUserReady()
const = 0;
74 virtual bool canAccessPlayScreen() = 0;
76 virtual bool needToShowPlatformStoreConnectConfirmationScreen() = 0;
78 virtual bool canAccessSettingsScreen() = 0;
80 virtual bool canAccessAchievementsScreen() = 0;
82 virtual bool canAccessSkinScreen() = 0;
84 virtual bool canAccessStoreScreen()
const = 0;
86 virtual bool canAccessRealmsPendingInvitesScreen() = 0;
88 virtual bool canHandleInvites() = 0;
90 virtual bool needPlatformConnectionBeforeXBLSignIn() = 0;
92 virtual bool needPlatformConnectionForMultiplayer()
const = 0;
94 virtual bool needPlatformConnectionForSplitScreenMultiplayer()
const = 0;
96 virtual bool needPlatformConnectionBeforeServerSearch()
const = 0;
98 virtual bool needsAsyncUserSelection(
int,
bool) = 0;
100 virtual bool hasPlatformIcons()
const = 0;
102 virtual bool hasPlatformProfileCards()
const = 0;
104 virtual void getLinkedXuids(
105 ::std::function<
void(::std::string, ::std::string)> callback,
106 ::std::vector<::std::string>
const& platformIds
109 virtual void getLinkedPlatformIds(
110 ::std::function<
void(::std::string, ::std::string)> callback,
111 ::std::vector<::std::string>
const& xuids
114 virtual void onAppResumed() = 0;
116 virtual void onAppSuspended() = 0;
118 virtual void onAppFocusLost() = 0;
120 virtual void removeUser(
int id,
bool restartIfPrimary) = 0;
122 virtual void removeClient(::std::shared_ptr<::IClientInstance>
const& ci) = 0;
124 virtual ::std::shared_ptr<::Social::User>
125 setUserClient(
int id, ::std::shared_ptr<::IClientInstance>
const& clientPtr) = 0;
127 virtual bool userHasClient(
int id) = 0;
129 virtual ::std::string_view getPlayFabTitleId()
const = 0;
131 virtual ::Bedrock::NotNullNonOwnerPtr<::ControllerIDtoClientMap> retrieveCIDToClientMap() = 0;
141 virtual ::Bedrock::PubSub::Subscription registerIdentitySignInCallback(
142 ::Social::IdentityType idType,
143 ::std::function<
void(uint, ::Social::IdentityType)> listener
146 virtual ::Bedrock::PubSub::Subscription registerIdentitySignOutCallback(
147 ::Social::IdentityType idType,
148 ::std::function<
void(uint, ::Social::IdentityType)> listener
151 virtual ::Bedrock::PubSub::Subscription registerProfileImageChangedCallback(
155 virtual bool needGamepadDisconnectScreen(
int controllerId) = 0;
159 virtual void updateMapping(
bool onScreenAcceptingAllControllerInput,
bool inGame) = 0;
161 virtual ::std::shared_ptr<::Social::User> getUser(
::IClientInstance const& client)
const = 0;
165 virtual ::std::shared_ptr<::Social::User> getUserFromControllerId(
int id)
const = 0;
167 virtual ::std::shared_ptr<::Social::User> getUserFromUserId(uint
id) = 0;
169 virtual ::std::shared_ptr<::Social::User const>
const getUserFromUserId(uint
id)
const = 0;
171 virtual ::GameUserType getUserTypeFromUserId(uint
id)
const = 0;
173 virtual bool isChatAllowedWhenBlockedByPlatform()
const = 0;
175 virtual ::std::vector<::std::shared_ptr<::Social::User>>
const& getUsers()
const = 0;
177 virtual bool isUserSignedIn(uint
id) = 0;
179 virtual bool isPrimaryUserInitialSignInInProgress()
const = 0;
181 virtual void registerLevelLocationObserver(
::ILevelListCache& levelListCache) = 0;
183 virtual ::Social::MultiplayerServiceObserver& getMultiplayerServiceObserver() = 0;
185 virtual ::Social::MultiplayerServiceIdentifier getPlatformMultiplayerServiceIdentifier()
const = 0;