diff --git a/osu.Android.props b/osu.Android.props
index 8ef635fe75..5ee0573c58 100644
--- a/osu.Android.props
+++ b/osu.Android.props
@@ -11,7 +11,7 @@
Off
True
Xamarin.Android.Net.AndroidClientHandler
- v8.1
+ v9.0
false
@@ -52,7 +52,6 @@
Always
-
@@ -64,6 +63,6 @@
-
+
diff --git a/osu.Android/Properties/AndroidManifest.xml b/osu.Android/Properties/AndroidManifest.xml
index 326d32f7ab..acd21f9587 100644
--- a/osu.Android/Properties/AndroidManifest.xml
+++ b/osu.Android/Properties/AndroidManifest.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/osu.Android/bass.dll b/osu.Android/bass.dll
deleted file mode 100644
index 3cd403c3ac..0000000000
Binary files a/osu.Android/bass.dll and /dev/null differ
diff --git a/osu.Android/osu.Android.csproj b/osu.Android/osu.Android.csproj
index 42a3185cd1..ac3905a372 100644
--- a/osu.Android/osu.Android.csproj
+++ b/osu.Android/osu.Android.csproj
@@ -14,6 +14,11 @@
Properties\AndroidManifest.xml
armeabi-v7a;x86;arm64-v8a
+
+ cjk;mideast;other;rare;west
+ d8
+ r8
+
diff --git a/osu.Desktop/Updater/SquirrelUpdateManager.cs b/osu.Desktop/Updater/SquirrelUpdateManager.cs
index 69064a40cb..78a1e680ec 100644
--- a/osu.Desktop/Updater/SquirrelUpdateManager.cs
+++ b/osu.Desktop/Updater/SquirrelUpdateManager.cs
@@ -129,7 +129,7 @@ namespace osu.Desktop.Updater
Activated = () =>
{
updateManager.PrepareUpdateAsync()
- .ContinueWith(_ => Schedule(() => game.GracefullyExit()));
+ .ContinueWith(_ => updateManager.Schedule(() => game.GracefullyExit()));
return true;
}
};
diff --git a/osu.Game.Rulesets.Catch.Tests.Android/Properties/AndroidManifest.xml b/osu.Game.Rulesets.Catch.Tests.Android/Properties/AndroidManifest.xml
index b04b0718f5..db95e18f13 100644
--- a/osu.Game.Rulesets.Catch.Tests.Android/Properties/AndroidManifest.xml
+++ b/osu.Game.Rulesets.Catch.Tests.Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/osu.Game.Rulesets.Mania.Tests.Android/Properties/AndroidManifest.xml b/osu.Game.Rulesets.Mania.Tests.Android/Properties/AndroidManifest.xml
index c315581606..e6728c801d 100644
--- a/osu.Game.Rulesets.Mania.Tests.Android/Properties/AndroidManifest.xml
+++ b/osu.Game.Rulesets.Mania.Tests.Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/osu.Game.Rulesets.Osu.Tests.Android/Properties/AndroidManifest.xml b/osu.Game.Rulesets.Osu.Tests.Android/Properties/AndroidManifest.xml
index dac9c19477..aad907b241 100644
--- a/osu.Game.Rulesets.Osu.Tests.Android/Properties/AndroidManifest.xml
+++ b/osu.Game.Rulesets.Osu.Tests.Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/osu.Game.Rulesets.Taiko.Tests.Android/Properties/AndroidManifest.xml b/osu.Game.Rulesets.Taiko.Tests.Android/Properties/AndroidManifest.xml
index f731042a4c..cd4b74aa16 100644
--- a/osu.Game.Rulesets.Taiko.Tests.Android/Properties/AndroidManifest.xml
+++ b/osu.Game.Rulesets.Taiko.Tests.Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/osu.Game.Tests.Android/Properties/AndroidManifest.xml b/osu.Game.Tests.Android/Properties/AndroidManifest.xml
index 146f96c2a3..bb996dc5ca 100644
--- a/osu.Game.Tests.Android/Properties/AndroidManifest.xml
+++ b/osu.Game.Tests.Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/osu.Game.Tests/Visual/Online/TestSceneDirectOverlay.cs b/osu.Game.Tests/Visual/Online/TestSceneDirectOverlay.cs
index efc12c5fdd..75c2a2a6a1 100644
--- a/osu.Game.Tests/Visual/Online/TestSceneDirectOverlay.cs
+++ b/osu.Game.Tests/Visual/Online/TestSceneDirectOverlay.cs
@@ -3,10 +3,8 @@
using System.Collections.Generic;
using NUnit.Framework;
-using osu.Framework.Allocation;
using osu.Game.Beatmaps;
using osu.Game.Overlays;
-using osu.Game.Rulesets;
namespace osu.Game.Tests.Visual.Online
{
@@ -14,7 +12,6 @@ namespace osu.Game.Tests.Visual.Online
public class TestSceneDirectOverlay : OsuTestScene
{
private DirectOverlay direct;
- private RulesetStore rulesets;
protected override void LoadComplete()
{
@@ -25,18 +22,11 @@ namespace osu.Game.Tests.Visual.Online
AddStep(@"toggle", direct.ToggleVisibility);
AddStep(@"result counts", () => direct.ResultAmounts = new DirectOverlay.ResultCounts(1, 4, 13));
- }
-
- [BackgroundDependencyLoader]
- private void load(RulesetStore rulesets)
- {
- this.rulesets = rulesets;
+ AddStep(@"trigger disabled", () => Ruleset.Disabled = !Ruleset.Disabled);
}
private void newBeatmaps()
{
- var ruleset = rulesets.GetRuleset(0);
-
direct.BeatmapSets = new[]
{
new BeatmapSetInfo
@@ -65,7 +55,7 @@ namespace osu.Game.Tests.Visual.Online
{
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 5.35f,
Metadata = new BeatmapMetadata(),
},
@@ -97,7 +87,7 @@ namespace osu.Game.Tests.Visual.Online
{
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 5.81f,
Metadata = new BeatmapMetadata(),
},
@@ -129,23 +119,23 @@ namespace osu.Game.Tests.Visual.Online
{
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 0.9f,
Metadata = new BeatmapMetadata(),
},
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 1.1f,
},
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 2.02f,
},
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 3.49f,
},
},
@@ -176,43 +166,43 @@ namespace osu.Game.Tests.Visual.Online
{
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 1.26f,
Metadata = new BeatmapMetadata(),
},
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 2.01f,
},
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 2.87f,
},
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 3.76f,
},
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 3.93f,
},
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 4.37f,
},
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 5.13f,
},
new BeatmapInfo
{
- Ruleset = ruleset,
+ Ruleset = Ruleset.Value,
StarDifficulty = 5.42f,
},
},
diff --git a/osu.Game/Graphics/Containers/OsuFocusedOverlayContainer.cs b/osu.Game/Graphics/Containers/OsuFocusedOverlayContainer.cs
index f6db3102f2..5606328575 100644
--- a/osu.Game/Graphics/Containers/OsuFocusedOverlayContainer.cs
+++ b/osu.Game/Graphics/Containers/OsuFocusedOverlayContainer.cs
@@ -15,7 +15,7 @@ using osu.Game.Overlays;
namespace osu.Game.Graphics.Containers
{
- public class OsuFocusedOverlayContainer : FocusedOverlayContainer, IPreviewTrackOwner, IKeyBindingHandler
+ public abstract class OsuFocusedOverlayContainer : FocusedOverlayContainer, IPreviewTrackOwner, IKeyBindingHandler
{
private SampleChannel samplePopIn;
private SampleChannel samplePopOut;
diff --git a/osu.Game/Graphics/Containers/WaveContainer.cs b/osu.Game/Graphics/Containers/WaveContainer.cs
index f87909ab17..c01674f5b4 100644
--- a/osu.Game/Graphics/Containers/WaveContainer.cs
+++ b/osu.Game/Graphics/Containers/WaveContainer.cs
@@ -29,6 +29,8 @@ namespace osu.Game.Graphics.Containers
protected override Container Content => contentContainer;
+ protected override bool StartHidden => true;
+
public Color4 FirstWaveColour
{
get => firstWave.Colour;
@@ -95,6 +97,7 @@ namespace osu.Game.Graphics.Containers
AddInternal(contentContainer = new Container
{
RelativeSizeAxes = Axes.Both,
+ RelativePositionAxes = Axes.Both,
Anchor = Anchor.BottomCentre,
Origin = Anchor.BottomCentre,
});
@@ -105,21 +108,15 @@ namespace osu.Game.Graphics.Containers
foreach (var w in wavesContainer.Children)
w.Show();
- this.FadeIn(100, Easing.OutQuint);
contentContainer.MoveToY(0, APPEAR_DURATION, Easing.OutQuint);
-
- this.FadeIn(100, Easing.OutQuint);
}
protected override void PopOut()
{
- this.FadeOut(DISAPPEAR_DURATION, Easing.InQuint);
- contentContainer.MoveToY(DrawHeight * 2f, DISAPPEAR_DURATION, Easing.In);
-
foreach (var w in wavesContainer.Children)
w.Hide();
- this.FadeOut(DISAPPEAR_DURATION, Easing.InQuint);
+ contentContainer.MoveToY(2, DISAPPEAR_DURATION, Easing.In);
}
protected override void UpdateAfterChildren()
@@ -128,7 +125,8 @@ namespace osu.Game.Graphics.Containers
// This is done as an optimization, such that invisible parts of the waves
// are masked away, and thus do not consume fill rate.
- wavesContainer.Height = Math.Max(0, DrawHeight - (contentContainer.DrawHeight - contentContainer.Y));
+ // todo: revert https://github.com/ppy/osu/commit/aff9e3617da0c8fe252169fae287e39b44575b5e after FTB is fixed on iOS.
+ wavesContainer.Height = Math.Max(0, DrawHeight - (contentContainer.DrawHeight - contentContainer.Y * DrawHeight));
}
private class Wave : VisibilityContainer
diff --git a/osu.Game/Graphics/UserInterface/OsuTabControlCheckbox.cs b/osu.Game/Graphics/UserInterface/OsuTabControlCheckbox.cs
index 869005d05c..8134cfb42d 100644
--- a/osu.Game/Graphics/UserInterface/OsuTabControlCheckbox.cs
+++ b/osu.Game/Graphics/UserInterface/OsuTabControlCheckbox.cs
@@ -37,6 +37,8 @@ namespace osu.Game.Graphics.UserInterface
text.Colour = AccentColour;
icon.Colour = AccentColour;
}
+
+ updateFade();
}
}
@@ -48,39 +50,6 @@ namespace osu.Game.Graphics.UserInterface
private const float transition_length = 500;
- private void fadeIn()
- {
- box.FadeIn(transition_length, Easing.OutQuint);
- text.FadeColour(Color4.White, transition_length, Easing.OutQuint);
- }
-
- private void fadeOut()
- {
- box.FadeOut(transition_length, Easing.OutQuint);
- text.FadeColour(AccentColour, transition_length, Easing.OutQuint);
- }
-
- protected override bool OnHover(HoverEvent e)
- {
- fadeIn();
- return base.OnHover(e);
- }
-
- protected override void OnHoverLost(HoverLostEvent e)
- {
- if (!Current.Value)
- fadeOut();
-
- base.OnHoverLost(e);
- }
-
- [BackgroundDependencyLoader]
- private void load(OsuColour colours)
- {
- if (accentColour == null)
- AccentColour = colours.Blue;
- }
-
public OsuTabControlCheckbox()
{
AutoSizeAxes = Axes.Both;
@@ -115,19 +84,34 @@ namespace osu.Game.Graphics.UserInterface
}
};
- Current.ValueChanged += selected =>
- {
- if (selected.NewValue)
- {
- fadeIn();
- icon.Icon = FontAwesome.Regular.CheckCircle;
- }
- else
- {
- fadeOut();
- icon.Icon = FontAwesome.Regular.Circle;
- }
- };
+ Current.ValueChanged += selected => { icon.Icon = selected.NewValue ? FontAwesome.Regular.CheckCircle : FontAwesome.Regular.Circle; };
+ }
+
+ [BackgroundDependencyLoader]
+ private void load(OsuColour colours)
+ {
+ if (accentColour == null)
+ AccentColour = colours.Blue;
+ }
+
+ protected override bool OnHover(HoverEvent e)
+ {
+ updateFade();
+ return base.OnHover(e);
+ }
+
+ protected override void OnHoverLost(HoverLostEvent e)
+ {
+ if (!Current.Value)
+ updateFade();
+
+ base.OnHoverLost(e);
+ }
+
+ private void updateFade()
+ {
+ box.FadeTo(IsHovered ? 1 : 0, transition_length, Easing.OutQuint);
+ text.FadeColour(IsHovered ? Color4.White : AccentColour, transition_length, Easing.OutQuint);
}
}
}
diff --git a/osu.Game/Online/API/Requests/GetScoresRequest.cs b/osu.Game/Online/API/Requests/GetScoresRequest.cs
index 2de0fcef9c..53349e15d5 100644
--- a/osu.Game/Online/API/Requests/GetScoresRequest.cs
+++ b/osu.Game/Online/API/Requests/GetScoresRequest.cs
@@ -38,7 +38,10 @@ namespace osu.Game.Online.API.Requests
private void onSuccess(APILegacyScores r)
{
foreach (APILegacyScoreInfo score in r.Scores)
+ {
score.Beatmap = beatmap;
+ score.Ruleset = ruleset;
+ }
}
protected override string Target => $@"beatmaps/{beatmap.OnlineBeatmapID}/scores{createQueryParameters()}";
diff --git a/osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs b/osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
index 5a18cf63f9..17da255873 100644
--- a/osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
+++ b/osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
@@ -116,17 +116,6 @@ namespace osu.Game.Online.API.Requests.Responses
[JsonProperty(@"mods")]
private string[] modStrings { get; set; }
- public override BeatmapInfo Beatmap
- {
- get => base.Beatmap;
- set
- {
- base.Beatmap = value;
- if (Beatmap.Ruleset != null)
- Ruleset = value.Ruleset;
- }
- }
-
public override RulesetInfo Ruleset
{
get => base.Ruleset;
diff --git a/osu.Game/Online/Leaderboards/Leaderboard.cs b/osu.Game/Online/Leaderboards/Leaderboard.cs
index b91de93a4a..dea2ff1a21 100644
--- a/osu.Game/Online/Leaderboards/Leaderboard.cs
+++ b/osu.Game/Online/Leaderboards/Leaderboard.cs
@@ -231,12 +231,6 @@ namespace osu.Game.Online.Leaderboards
if (getScoresRequest == null)
return;
- if (api?.IsLoggedIn != true)
- {
- PlaceholderState = PlaceholderState.NotLoggedIn;
- return;
- }
-
getScoresRequest.Failure += e => Schedule(() =>
{
if (e is OperationCanceledException)
diff --git a/osu.Game/Overlays/Direct/DirectRulesetSelector.cs b/osu.Game/Overlays/Direct/DirectRulesetSelector.cs
new file mode 100644
index 0000000000..fdab9f1b90
--- /dev/null
+++ b/osu.Game/Overlays/Direct/DirectRulesetSelector.cs
@@ -0,0 +1,88 @@
+// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
+// See the LICENCE file in the repository root for full licence text.
+
+using osu.Framework.Graphics;
+using osu.Framework.Graphics.Containers;
+using osu.Framework.Graphics.UserInterface;
+using osu.Framework.Input.Events;
+using osu.Game.Graphics.Containers;
+using osu.Game.Graphics.UserInterface;
+using osu.Game.Rulesets;
+using osuTK;
+using osuTK.Graphics;
+
+namespace osu.Game.Overlays.Direct
+{
+ public class DirectRulesetSelector : RulesetSelector
+ {
+ public override bool HandleNonPositionalInput => !Current.Disabled && base.HandleNonPositionalInput;
+
+ public override bool HandlePositionalInput => !Current.Disabled && base.HandlePositionalInput;
+
+ public override bool PropagatePositionalInputSubTree => !Current.Disabled && base.PropagatePositionalInputSubTree;
+
+ public DirectRulesetSelector()
+ {
+ TabContainer.Masking = false;
+ TabContainer.Spacing = new Vector2(10, 0);
+ AutoSizeAxes = Axes.Both;
+
+ Current.DisabledChanged += value => SelectedTab.FadeColour(value ? Color4.DarkGray : Color4.White, 200, Easing.OutQuint);
+ }
+
+ protected override TabItem CreateTabItem(RulesetInfo value) => new DirectRulesetTabItem(value);
+
+ protected override TabFillFlowContainer CreateTabFlow() => new TabFillFlowContainer
+ {
+ Direction = FillDirection.Horizontal,
+ AutoSizeAxes = Axes.Both,
+ };
+
+ private class DirectRulesetTabItem : TabItem
+ {
+ private readonly ConstrainedIconContainer iconContainer;
+
+ public DirectRulesetTabItem(RulesetInfo value)
+ : base(value)
+ {
+ AutoSizeAxes = Axes.Both;
+
+ Children = new Drawable[]
+ {
+ iconContainer = new ConstrainedIconContainer
+ {
+ Icon = value.CreateInstance().CreateIcon(),
+ Size = new Vector2(32),
+ },
+ new HoverClickSounds()
+ };
+ }
+
+ protected override void LoadComplete()
+ {
+ base.LoadComplete();
+
+ updateState();
+ }
+
+ protected override bool OnHover(HoverEvent e)
+ {
+ base.OnHover(e);
+ updateState();
+ return true;
+ }
+
+ protected override void OnHoverLost(HoverLostEvent e)
+ {
+ base.OnHoverLost(e);
+ updateState();
+ }
+
+ protected override void OnActivated() => updateState();
+
+ protected override void OnDeactivated() => updateState();
+
+ private void updateState() => iconContainer.FadeColour(IsHovered || Active.Value ? Color4.White : Color4.Gray, 120, Easing.InQuad);
+ }
+ }
+}
diff --git a/osu.Game/Overlays/Direct/FilterControl.cs b/osu.Game/Overlays/Direct/FilterControl.cs
index 268e011350..4b43542b43 100644
--- a/osu.Game/Overlays/Direct/FilterControl.cs
+++ b/osu.Game/Overlays/Direct/FilterControl.cs
@@ -4,105 +4,30 @@
using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Graphics;
-using osu.Framework.Graphics.Containers;
using osu.Game.Graphics;
-using osu.Game.Graphics.Containers;
using osu.Game.Online.API.Requests;
using osu.Game.Overlays.SearchableList;
using osu.Game.Rulesets;
-using osuTK;
using osuTK.Graphics;
namespace osu.Game.Overlays.Direct
{
public class FilterControl : SearchableListFilterControl
{
- public readonly Bindable Ruleset = new Bindable();
- private FillFlowContainer modeButtons;
+ private DirectRulesetSelector rulesetSelector;
protected override Color4 BackgroundColour => OsuColour.FromHex(@"384552");
protected override DirectSortCriteria DefaultTab => DirectSortCriteria.Ranked;
- protected override Drawable CreateSupplementaryControls()
- {
- modeButtons = new FillFlowContainer
- {
- AutoSizeAxes = Axes.Both,
- Spacing = new Vector2(10f, 0f),
- };
+ protected override Drawable CreateSupplementaryControls() => rulesetSelector = new DirectRulesetSelector();
- return modeButtons;
- }
+ public Bindable Ruleset => rulesetSelector.Current;
[BackgroundDependencyLoader(true)]
- private void load(RulesetStore rulesets, OsuColour colours, Bindable ruleset)
+ private void load(OsuColour colours, Bindable ruleset)
{
DisplayStyleControl.Dropdown.AccentColour = colours.BlueDark;
-
- Ruleset.Value = ruleset.Value ?? rulesets.GetRuleset(0);
- foreach (var r in rulesets.AvailableRulesets)
- modeButtons.Add(new RulesetToggleButton(Ruleset, r));
- }
-
- private class RulesetToggleButton : OsuClickableContainer
- {
- private Drawable icon
- {
- get => iconContainer.Icon;
- set => iconContainer.Icon = value;
- }
-
- private RulesetInfo ruleset;
-
- public RulesetInfo Ruleset
- {
- get => ruleset;
- set
- {
- ruleset = value;
- icon = Ruleset.CreateInstance().CreateIcon();
- }
- }
-
- private readonly Bindable bindable;
-
- private readonly ConstrainedIconContainer iconContainer;
-
- private void Bindable_ValueChanged(ValueChangedEvent e)
- {
- iconContainer.FadeTo(Ruleset.ID == e.NewValue?.ID ? 1f : 0.5f, 100);
- }
-
- public override bool HandleNonPositionalInput => !bindable.Disabled && base.HandleNonPositionalInput;
- public override bool HandlePositionalInput => !bindable.Disabled && base.HandlePositionalInput;
-
- public RulesetToggleButton(Bindable bindable, RulesetInfo ruleset)
- {
- this.bindable = bindable;
- AutoSizeAxes = Axes.Both;
-
- Children = new[]
- {
- iconContainer = new ConstrainedIconContainer
- {
- Origin = Anchor.TopLeft,
- Anchor = Anchor.TopLeft,
- Size = new Vector2(32),
- }
- };
-
- Ruleset = ruleset;
- bindable.ValueChanged += Bindable_ValueChanged;
- Bindable_ValueChanged(new ValueChangedEvent(bindable.Value, bindable.Value));
- Action = () => bindable.Value = Ruleset;
- }
-
- protected override void Dispose(bool isDisposing)
- {
- if (bindable != null)
- bindable.ValueChanged -= Bindable_ValueChanged;
- base.Dispose(isDisposing);
- }
+ rulesetSelector.Current.BindTo(ruleset);
}
}
diff --git a/osu.Game/Overlays/WaveOverlayContainer.cs b/osu.Game/Overlays/WaveOverlayContainer.cs
index 05d3e7df0a..5c87096dd4 100644
--- a/osu.Game/Overlays/WaveOverlayContainer.cs
+++ b/osu.Game/Overlays/WaveOverlayContainer.cs
@@ -14,6 +14,8 @@ namespace osu.Game.Overlays
protected override bool BlockNonPositionalInput => true;
protected override Container Content => Waves;
+ protected override bool StartHidden => true;
+
protected WaveOverlayContainer()
{
AddInternal(Waves = new WaveContainer
@@ -25,13 +27,17 @@ namespace osu.Game.Overlays
protected override void PopIn()
{
base.PopIn();
+
Waves.Show();
+ this.FadeIn(100, Easing.OutQuint);
}
protected override void PopOut()
{
base.PopOut();
+
Waves.Hide();
+ this.FadeOut(WaveContainer.DISAPPEAR_DURATION, Easing.InQuint);
}
}
}
diff --git a/osu.Game/Screens/Menu/LogoVisualisation.cs b/osu.Game/Screens/Menu/LogoVisualisation.cs
index 2ba82b5d9b..39bda799b5 100644
--- a/osu.Game/Screens/Menu/LogoVisualisation.cs
+++ b/osu.Game/Screens/Menu/LogoVisualisation.cs
@@ -131,7 +131,8 @@ namespace osu.Game.Screens.Menu
{
base.LoadComplete();
- Scheduler.AddDelayed(updateAmplitudes, time_between_updates, true);
+ var delayed = Scheduler.AddDelayed(updateAmplitudes, time_between_updates, true);
+ delayed.PerformRepeatCatchUpExecutions = false;
}
protected override void Update()
diff --git a/osu.Game/Screens/Select/EditSongSelect.cs b/osu.Game/Screens/Select/EditSongSelect.cs
deleted file mode 100644
index bdf5f905fe..0000000000
--- a/osu.Game/Screens/Select/EditSongSelect.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
-// See the LICENCE file in the repository root for full licence text.
-
-using osu.Framework.Screens;
-
-namespace osu.Game.Screens.Select
-{
- public class EditSongSelect : SongSelect
- {
- protected override bool ShowFooter => false;
-
- protected override bool OnStart()
- {
- this.Exit();
- return true;
- }
- }
-}
diff --git a/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs b/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs
index c1cbc40680..88ce5dc117 100644
--- a/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs
+++ b/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs
@@ -105,6 +105,12 @@ namespace osu.Game.Screens.Select.Leaderboards
return null;
}
+ if (api?.IsLoggedIn != true)
+ {
+ PlaceholderState = PlaceholderState.NotLoggedIn;
+ return null;
+ }
+
if (Beatmap?.OnlineBeatmapID == null)
{
PlaceholderState = PlaceholderState.Unavailable;
diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj
index b59828a52e..e872cd1387 100644
--- a/osu.Game/osu.Game.csproj
+++ b/osu.Game/osu.Game.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/osu.iOS.props b/osu.iOS.props
index ddbdaf3d18..a319094cb1 100644
--- a/osu.iOS.props
+++ b/osu.iOS.props
@@ -105,8 +105,8 @@
-
-
+
+