From edb556643edf509ed77eb3da3e926658d08e45b6 Mon Sep 17 00:00:00 2001 From: Joseph Madamba Date: Tue, 5 Apr 2022 01:00:33 -0700 Subject: [PATCH 1/3] Add failing replay button enabled test asserts --- osu.Game.Tests/Visual/Gameplay/TestSceneReplayDownloadButton.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneReplayDownloadButton.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneReplayDownloadButton.cs index 8b7e1c4e58..5d25287e45 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneReplayDownloadButton.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneReplayDownloadButton.cs @@ -150,10 +150,12 @@ namespace osu.Game.Tests.Visual.Gameplay AddStep("import score", () => imported = scoreManager.Import(getScoreInfo(true))); AddUntilStep("state is available", () => downloadButton.State.Value == DownloadState.LocallyAvailable); + AddAssert("button is enabled", () => downloadButton.ChildrenOfType().First().Enabled.Value); AddStep("delete score", () => scoreManager.Delete(imported.Value)); AddUntilStep("state is not downloaded", () => downloadButton.State.Value == DownloadState.NotDownloaded); + AddAssert("button is not enabled", () => !downloadButton.ChildrenOfType().First().Enabled.Value); } [Test] From 4432a93d096ed81f1a94d11914c48e19c1e346dd Mon Sep 17 00:00:00 2001 From: Joseph Madamba Date: Tue, 5 Apr 2022 01:04:19 -0700 Subject: [PATCH 2/3] Fix replay button being disabled when available locally but not online --- osu.Game/Screens/Ranking/ReplayDownloadButton.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/osu.Game/Screens/Ranking/ReplayDownloadButton.cs b/osu.Game/Screens/Ranking/ReplayDownloadButton.cs index 6a74fdaf75..222115daca 100644 --- a/osu.Game/Screens/Ranking/ReplayDownloadButton.cs +++ b/osu.Game/Screens/Ranking/ReplayDownloadButton.cs @@ -87,19 +87,20 @@ namespace osu.Game.Screens.Ranking }); } - button.Enabled.Value = replayAvailability != ReplayAvailability.NotAvailable; - updateTooltip(); + updateState(); }, true); State.BindValueChanged(state => { button.State.Value = state.NewValue; - updateTooltip(); + updateState(); }, true); } - private void updateTooltip() + private void updateState() { + button.Enabled.Value = replayAvailability != ReplayAvailability.NotAvailable; + switch (replayAvailability) { case ReplayAvailability.Local: From 358931842fc1936b8141cf58d6fe2c67ca6851ce Mon Sep 17 00:00:00 2001 From: Joseph Madamba Date: Wed, 6 Apr 2022 21:22:56 -0700 Subject: [PATCH 3/3] Move enabled setting to each case --- osu.Game/Screens/Ranking/ReplayDownloadButton.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/osu.Game/Screens/Ranking/ReplayDownloadButton.cs b/osu.Game/Screens/Ranking/ReplayDownloadButton.cs index 222115daca..0c9c909395 100644 --- a/osu.Game/Screens/Ranking/ReplayDownloadButton.cs +++ b/osu.Game/Screens/Ranking/ReplayDownloadButton.cs @@ -99,20 +99,21 @@ namespace osu.Game.Screens.Ranking private void updateState() { - button.Enabled.Value = replayAvailability != ReplayAvailability.NotAvailable; - switch (replayAvailability) { case ReplayAvailability.Local: button.TooltipText = @"watch replay"; + button.Enabled.Value = true; break; case ReplayAvailability.Online: button.TooltipText = @"download replay"; + button.Enabled.Value = true; break; default: button.TooltipText = @"replay unavailable"; + button.Enabled.Value = false; break; } }