void OnDestroy() { s_Current = null; m_TeleportSelector?.Dispose(); ReflectProjectsManager.Dispose(); m_DisposeOnDestroy.ForEach(x => x.Dispose()); }
public void SetUser(UnityUser user) { if (user == null || string.IsNullOrEmpty(user.UserId)) { Debug.LogError("Invalid User"); } // Client m_AuthClient = new AuthClient(user); ReflectProjectsManager.Init(user, this, m_AuthClient); }
public override void ApplyPayload <T>(object viewerActionData, ref T stateData, Action onStateDataChanged) { var data = (Project)viewerActionData; object boxed = stateData; var hasChanged = false; hasChanged |= SetPropertyValue(ref stateData, ref boxed, nameof(IProgressDataProvider.progressState), SetProgressStateAction.ProgressState.PendingIndeterminate); ReflectProjectsManager.DeleteProjectLocally(data); if (hasChanged) { onStateDataChanged?.Invoke(); } }
void OnProjectOpenButtonClick(Project project) { if (!ReflectProjectsManager.IsReadyForOpening(project)) { return; } var activeProject = m_ActiveProjectGetter.GetValue(); if (activeProject?.serverProjectId == project.serverProjectId) { Dispatcher.Dispatch(OpenDialogAction.From(OpenDialogAction.DialogType.None)); //if the project already opened, just close landing screen return; } Dispatcher.Dispatch(SetWalkEnableAction.From(false)); activeProject = project; if (activeProject != Project.Empty) { if (m_NavigationModeGetter.GetValue() != SetNavigationModeAction.NavigationMode.VR) { // switch to orbit mode var data = new SetForceNavigationModeAction.ForceNavigationModeTrigger((int)SetNavigationModeAction.NavigationMode.Orbit); Dispatcher.Dispatch(SetForceNavigationModeAction.From(data)); } // first close current Project if open Dispatcher.Dispatch(SetStatusMessage.From("Closing {UIStateManager.current.projectStateData.activeProject.name}...")); } Dispatcher.Dispatch(SetStatusMessage.From($"Opening {activeProject.name}...")); Dispatcher.Dispatch(CloseAllDialogsAction.From(null)); Dispatcher.Dispatch(SetIsOpenWithLinkSharingAction.From(false)); Dispatcher.Dispatch(SetCachedLinkTokenAction.From(string.Empty)); Dispatcher.Dispatch(OpenProjectActions <Project> .From(activeProject)); Dispatcher.Dispatch(ToggleMeasureToolAction.From(ToggleMeasureToolAction.ToggleMeasureToolData.defaultData)); }
public void ClearUser() { ReflectProjectsManager.Dispose(); }
void Refresh() { Refresh(ReflectProjectsManager.GetStatus(m_Project)); }