From a4de0f93fa1a813aa3b9e4782a0302c4a6b4390f Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 12 Jan 2022 14:38:37 +0900 Subject: [PATCH] Move manager `Update` methods to be explicit to where they are still used by legacy code Also fixes skin hash repopulation being completely broken. --- osu.Game/Beatmaps/BeatmapManager.cs | 5 ----- osu.Game/Beatmaps/BeatmapModelManager.cs | 9 +++++++++ osu.Game/Database/IModelManager.cs | 7 ------- osu.Game/Scoring/ScoreManager.cs | 5 ----- osu.Game/Skinning/SkinModelManager.cs | 4 ++-- osu.Game/Stores/RealmArchiveModelManager.cs | 9 --------- 6 files changed, 11 insertions(+), 28 deletions(-) diff --git a/osu.Game/Beatmaps/BeatmapManager.cs b/osu.Game/Beatmaps/BeatmapManager.cs index 21cda18c1a..f901b0fbc1 100644 --- a/osu.Game/Beatmaps/BeatmapManager.cs +++ b/osu.Game/Beatmaps/BeatmapManager.cs @@ -220,11 +220,6 @@ namespace osu.Game.Beatmaps return beatmapModelManager.IsAvailableLocally(model); } - public void Update(BeatmapSetInfo item) - { - beatmapModelManager.Update(item); - } - public bool Delete(BeatmapSetInfo item) { return beatmapModelManager.Delete(item); diff --git a/osu.Game/Beatmaps/BeatmapModelManager.cs b/osu.Game/Beatmaps/BeatmapModelManager.cs index 62d607c4f7..73ada09ef6 100644 --- a/osu.Game/Beatmaps/BeatmapModelManager.cs +++ b/osu.Game/Beatmaps/BeatmapModelManager.cs @@ -101,5 +101,14 @@ namespace osu.Game.Beatmaps using (var context = ContextFactory.CreateContext()) return context.All().FirstOrDefault(query)?.Detach(); } + + public void Update(BeatmapSetInfo item) + { + using (var realm = ContextFactory.CreateContext()) + { + var existing = realm.Find(item.ID); + realm.Write(r => item.CopyChangesToRealm(existing)); + } + } } } diff --git a/osu.Game/Database/IModelManager.cs b/osu.Game/Database/IModelManager.cs index e7218b621c..187ac86a59 100644 --- a/osu.Game/Database/IModelManager.cs +++ b/osu.Game/Database/IModelManager.cs @@ -12,13 +12,6 @@ namespace osu.Game.Database public interface IModelManager where TModel : class { - /// - /// Perform an update of the specified item. - /// TODO: Support file additions/removals. - /// - /// The item to update. - void Update(TModel item); - /// /// Delete an item from the manager. /// Is a no-op for already deleted items. diff --git a/osu.Game/Scoring/ScoreManager.cs b/osu.Game/Scoring/ScoreManager.cs index 62e61d3a94..ce5d2acc21 100644 --- a/osu.Game/Scoring/ScoreManager.cs +++ b/osu.Game/Scoring/ScoreManager.cs @@ -251,11 +251,6 @@ namespace osu.Game.Scoring #region Implementation of IModelManager - public void Update(ScoreInfo item) - { - scoreModelManager.Update(item); - } - public bool Delete(ScoreInfo item) { return scoreModelManager.Delete(item); diff --git a/osu.Game/Skinning/SkinModelManager.cs b/osu.Game/Skinning/SkinModelManager.cs index 66a1808dc1..1689a89b43 100644 --- a/osu.Game/Skinning/SkinModelManager.cs +++ b/osu.Game/Skinning/SkinModelManager.cs @@ -210,13 +210,13 @@ namespace osu.Game.Skinning { using (var realm = ContextFactory.CreateContext()) { - var skinsWithoutHashes = realm.All().Where(i => string.IsNullOrEmpty(i.Hash)).ToArray(); + var skinsWithoutHashes = realm.All().Where(i => !i.Protected && string.IsNullOrEmpty(i.Hash)).ToArray(); foreach (SkinInfo skin in skinsWithoutHashes) { try { - Update(skin); + checkSkinIniMetadata(skin, realm); } catch (Exception e) { diff --git a/osu.Game/Stores/RealmArchiveModelManager.cs b/osu.Game/Stores/RealmArchiveModelManager.cs index 3783b10a8c..4365fdab1e 100644 --- a/osu.Game/Stores/RealmArchiveModelManager.cs +++ b/osu.Game/Stores/RealmArchiveModelManager.cs @@ -201,14 +201,5 @@ namespace osu.Game.Stores } public abstract bool IsAvailableLocally(TModel model); - - public void Update(TModel model) - { - using (var realm = ContextFactory.CreateContext()) - { - var existing = realm.Find(model.ID); - realm.Write(r => model.CopyChangesToRealm(existing)); - } - } } }