示例#1
0
 private void Initialize()
 {
     this.settings           = PluginUpdateNotifierSettings.LoadOrCreateSettings();
     this.versionInformation = VersionInformationProvider.Instance.VersionInformation;
     this.minSize            = windowSize;
     this.showAtStartup      = settings.ShowAtStartup;
 }
示例#2
0
        //
        // Startup時PluginのUpdateの有無のチェックし、有効なUpdateがある場合はNotifyPluginUpdateWindowをOpenする。
        private static void OnStartUp()
        {
            EditorApplication.update -= OnStartUp;

            VersionInformationProvider.Instance.CheckForLatestVersion(() =>
            {
                var settings           = PluginUpdateNotifierSettings.LoadOrCreateSettings();
                var versionInformation = VersionInformationProvider.Instance.VersionInformation;

                // 更新を通知すべきか確認。必要ならNotifyPluginUpdateWindowを開いて通知する。
                if (CheckIfNotifyUpdateOnStartUp(settings, versionInformation))
                {
                    NotifyPluginUpdateWindow.Open();
                }
            }, (ex) => OnErrorCheckForUpdate(ex));
        }
示例#3
0
        /// <summary>
        /// Pluginの更新情報を通知するか(NotifyPluginUpdateWindowを開くかどうか)チェックするためのメソッド。trueは通知する。
        /// </summary>
        /// <returns></returns>
        private static bool CheckIfNotifyUpdateOnStartUp(PluginUpdateNotifierSettings settings, VersionInformation versionInformation)
        {
            // UpdateAvailableでない時は通知しない。
            if (versionInformation.GetStatus() != VersionInformation.Status.UpdateAvailable)
            {
                return(false);
            }

            // SettingsのShow At Startupがfalseなら通知しない。
            if (!settings.ShowAtStartup)
            {
                return(false);
            }

            // スキップ対象バージョンなら通知しない。
            if (CheckIfSkipUpdate(settings, versionInformation))
            {
                return(false);
            }

            return(true);
        }
示例#4
0
        /// <summary>
        /// VersionInformation.LatestVersionが通知スキップ対象バージョンかどうかチェックする。trueならスキップ対象バージョン。
        /// </summary>
        /// <param name="settings"></param>
        /// <param name="versionInformation"></param>
        private static bool CheckIfSkipUpdate(PluginUpdateNotifierSettings settings, VersionInformation versionInformation)
        {
            // SkipVersionの値が空白の時はスキップしない。
            if (string.IsNullOrEmpty(settings.SkipVersion))
            {
                return(false);
            }

            // なんらかの理由でSkipVersionが不適切な値だった場合はスキップしない。
            if (!Utility.IsVersionString(settings.SkipVersion))
            {
                return(false);
            }

            System.Version skipVersion   = new System.Version(settings.SkipVersion);
            System.Version latestVersion = new System.Version(versionInformation.LatestVersion);
            // LatestVersionとSkipVersionが同一でないならスキップしない。
            if (skipVersion.CompareTo(latestVersion) != 0)
            {
                return(false);
            }

            return(true);
        }