Example #1
0
        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);
                        }
                    }
                }
            }
        }
Example #2
0
        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;
        }