1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-23 04:59:53 +08:00

Unsubscribe from BeatmapManager events in Dispose.

This commit is contained in:
DrabWeb
2018-06-04 06:34:48 -03:00
Unverified
parent b332c22fe5
commit 7eeba2cf9a
@@ -18,6 +18,8 @@ namespace osu.Game.Graphics.UserInterface
private readonly bool noVideo;
private readonly BindableBool downloaded = new BindableBool();
private BeatmapManager beatmaps;
private Action action;
public Action Action
{
@@ -42,17 +44,10 @@ namespace osu.Game.Graphics.UserInterface
[BackgroundDependencyLoader]
private void load(BeatmapManager beatmaps, APIAccess api)
{
beatmaps.ItemAdded += s =>
{
if (s.OnlineBeatmapSetID == set.OnlineBeatmapSetID)
downloaded.Value = true;
};
this.beatmaps = beatmaps;
beatmaps.ItemRemoved += s =>
{
if (s.OnlineBeatmapSetID == set.OnlineBeatmapSetID)
downloaded.Value = false;
};
beatmaps.ItemAdded += setAdded;
beatmaps.ItemRemoved += setRemoved;
// initial downloaded value
downloaded.Value = beatmaps.QueryBeatmapSets(s => s.OnlineBeatmapSetID == set.OnlineBeatmapSetID && !s.DeletePending).Count() != 0;
@@ -76,8 +71,31 @@ namespace osu.Game.Graphics.UserInterface
return true;
}
protected override void Dispose(bool isDisposing)
{
base.Dispose(isDisposing);
if (beatmaps != null)
{
beatmaps.ItemAdded -= setAdded;
beatmaps.ItemRemoved -= setRemoved;
}
}
protected abstract void Enable();
protected abstract void Disable();
protected abstract void AlreadyDownloading();
private void setAdded(BeatmapSetInfo s)
{
if (s.OnlineBeatmapSetID == set.OnlineBeatmapSetID)
downloaded.Value = true;
}
private void setRemoved(BeatmapSetInfo s)
{
if (s.OnlineBeatmapSetID == set.OnlineBeatmapSetID)
downloaded.Value = false;
}
}
}