private static void HandleEditorUpdate(Action openWindow, string getUpdatesUrl, AdditionalOnWindowOpened additionalOnWindowOpen = null) { if (!EditorApplication.isPlayingOrWillChangePlaymode) { var defaultShowAtStartupPreferenceDefinition = ProductPreferenceBase.CreateDefaultShowOptionPreferenceDefinition(); ProductPreferenceBase.StartupShowMode showWindowOnStartupMode = ProductPreferenceBase.StartupShowMode.Never; if (!EditorPrefs.HasKey(defaultShowAtStartupPreferenceDefinition.PreferenceKey)) //first run / import { showWindowOnStartupMode = (ProductPreferenceBase.StartupShowMode)defaultShowAtStartupPreferenceDefinition.DefaultValue; defaultShowAtStartupPreferenceDefinition.SetEditorPersistedValue(showWindowOnStartupMode); OpenWindow(openWindow, additionalOnWindowOpen, true); if (showWindowOnStartupMode != ProductPreferenceBase.StartupShowMode.Never) { GetUpdates(openWindow, getUpdatesUrl); } } else { if (Time.realtimeSinceStartup < 10) //static ctor will also be executed on script changes / domain reload, make sure editor is just turned on { showWindowOnStartupMode = (ProductPreferenceBase.StartupShowMode)defaultShowAtStartupPreferenceDefinition.GetEditorPersistedValueOrDefault(); if (showWindowOnStartupMode == ProductPreferenceBase.StartupShowMode.Always) { OpenWindow(openWindow, additionalOnWindowOpen, false); } if (showWindowOnStartupMode != ProductPreferenceBase.StartupShowMode.Never) { GetUpdates(openWindow, getUpdatesUrl); } } } } }
private static void GetUpdates(Action openWindow, string getUpdatesUrl) { if (string.IsNullOrEmpty(getUpdatesUrl)) { return; } BackgroundTaskRunner.StartBackgroundTask(HttpRequestManager.SendRequest(getUpdatesUrl, (www, textResult) => { try { var update = UpdateData.CreateFromJSON(textResult); if (update != null) { ProductPreferenceBase.CreateDefaultLastUpdateText().SetEditorPersistedValue(update.Text); if (!string.IsNullOrWhiteSpace(update.Text)) { openWindow(); } } } catch { //don't show error } })); }
private void EnsureInitialized() { if (_isInitialized) { return; } EnsureStylesInitialized(); _startupStartupShowMode = (ProductPreferenceBase.StartupShowMode)EditorPrefs.GetInt(ShowAtStartupPreferenceKey, (int)ProductPreferenceBase.StartupShowMode.Always); LastUpdateText = ProductPreferenceBase.CreateDefaultLastUpdateText().GetEditorPersistedValueOrDefault() as string; _isInitialized = true; }