1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-23 12:37:30 +08:00

Always show update button on mobile so section isn't empty

This commit is contained in:
Dean Herbert
2025-06-25 17:35:57 +09:00
Unverified
parent 8fb8772282
commit e05c716d70
@@ -44,51 +44,40 @@ namespace osu.Game.Overlays.Settings.Sections.General
[Resolved]
private OsuGame? game { get; set; }
[Resolved]
private IDialogOverlay? dialogOverlay { get; set; }
[BackgroundDependencyLoader]
private void load(OsuConfigManager config, IDialogOverlay? dialogOverlay)
private void load(OsuConfigManager config)
{
config.BindWith(OsuSetting.ReleaseStream, configReleaseStream);
if (updateManager?.CanCheckForUpdate == true && !RuntimeInfo.IsMobile)
bool isDesktop = RuntimeInfo.IsDesktop;
bool canCheckUpdates = updateManager?.CanCheckForUpdate == true;
if (canCheckUpdates)
{
Add(releaseStreamDropdown = new SettingsEnumDropdown<ReleaseStream>
// For simplicity, hide the concept of release streams from mobile users.
if (isDesktop)
{
LabelText = GeneralSettingsStrings.ReleaseStream,
Current = { Value = configReleaseStream.Value },
Keywords = new[] { @"version" },
});
if (updateManager.FixedReleaseStream != null)
{
configReleaseStream.Value = updateManager.FixedReleaseStream.Value;
releaseStreamDropdown.ShowsDefaultIndicator = false;
releaseStreamDropdown.Items = [updateManager.FixedReleaseStream.Value];
releaseStreamDropdown.SetNoticeText(GeneralSettingsStrings.ChangeReleaseStreamPackageManagerWarning);
}
releaseStreamDropdown.Current.BindValueChanged(stream =>
{
if (stream.NewValue == ReleaseStream.Tachyon)
Add(releaseStreamDropdown = new SettingsEnumDropdown<ReleaseStream>
{
dialogOverlay?.Push(new ConfirmDialog(GeneralSettingsStrings.ChangeReleaseStreamConfirmation,
() =>
{
configReleaseStream.Value = ReleaseStream.Tachyon;
},
() =>
{
releaseStreamDropdown.Current.Value = ReleaseStream.Lazer;
})
{
BodyText = GeneralSettingsStrings.ChangeReleaseStreamConfirmationInfo
});
LabelText = GeneralSettingsStrings.ReleaseStream,
Current = { Value = configReleaseStream.Value },
Keywords = new[] { @"version" },
});
return;
if (updateManager!.FixedReleaseStream != null)
{
configReleaseStream.Value = updateManager.FixedReleaseStream.Value;
releaseStreamDropdown.ShowsDefaultIndicator = false;
releaseStreamDropdown.Items = [updateManager.FixedReleaseStream.Value];
releaseStreamDropdown.SetNoticeText(GeneralSettingsStrings.ChangeReleaseStreamPackageManagerWarning);
}
configReleaseStream.Value = stream.NewValue;
});
releaseStreamDropdown.Current.BindValueChanged(releaseStreamChanged);
}
Add(checkForUpdatesButton = new SettingsButton
{
@@ -97,7 +86,8 @@ namespace osu.Game.Overlays.Settings.Sections.General
});
}
if (RuntimeInfo.IsDesktop)
// Loosely update-related maintenance buttons.
if (isDesktop)
{
Add(new SettingsButton
{
@@ -121,6 +111,20 @@ namespace osu.Game.Overlays.Settings.Sections.General
}
}
private void releaseStreamChanged(ValueChangedEvent<ReleaseStream> stream)
{
if (stream.NewValue == ReleaseStream.Tachyon)
{
dialogOverlay?.Push(
new ConfirmDialog(GeneralSettingsStrings.ChangeReleaseStreamConfirmation, () => { configReleaseStream.Value = ReleaseStream.Tachyon; },
() => { releaseStreamDropdown.Current.Value = ReleaseStream.Lazer; }) { BodyText = GeneralSettingsStrings.ChangeReleaseStreamConfirmationInfo });
return;
}
configReleaseStream.Value = stream.NewValue;
}
private async Task checkForUpdates()
{
if (updateManager == null || game == null)