diff --git a/osu.Game/Overlays/Options/General/LoginOptions.cs b/osu.Game/Overlays/Options/General/LoginOptions.cs index 03789c59c9..39fb2ce501 100644 --- a/osu.Game/Overlays/Options/General/LoginOptions.cs +++ b/osu.Game/Overlays/Options/General/LoginOptions.cs @@ -11,20 +11,26 @@ using osu.Framework.Graphics.UserInterface; using osu.Game.Graphics.UserInterface; using osu.Game.Online.API; - +using osu.Game.Configuration; + namespace osu.Game.Overlays.Options.General { public class LoginOptions : OptionsSubsection, IOnlineComponent { - private Container loginForm; + private APIAccess api; - private Action performLogout; protected override string Header => "Sign In"; [BackgroundDependencyLoader(permitNulls: true)] private void load(APIAccess api) { api?.Register(this); + this.api = api; + } + + private void performLogout() + { + api.Logout(); } public void APIStateChanged(APIAccess api, APIState state) @@ -66,7 +72,7 @@ public void APIStateChanged(APIAccess api, APIState state) { RelativeSizeAxes = Axes.X, Text = "Sign out", - Action = api.Logout + Action = performLogout } }; break; @@ -79,27 +85,6 @@ class LoginForm : FlowContainer private TextBox password; private APIAccess api; - public LoginForm() - { - Direction = FlowDirection.VerticalOnly; - AutoSizeAxes = Axes.Y; - RelativeSizeAxes = Axes.X; - Spacing = new Vector2(0, 5); - // TODO: Wire things up - Children = new Drawable[] - { - new SpriteText { Text = "Username" }, - username = new TextBox { Height = 20, RelativeSizeAxes = Axes.X, Text = api?.Username ?? string.Empty }, - new SpriteText { Text = "Password" }, - password = new PasswordTextBox { Height = 20, RelativeSizeAxes = Axes.X }, - new OsuButton - { - RelativeSizeAxes = Axes.X, - Text = "Log in", - Action = performLogin - } - }; - } private void performLogin() { @@ -108,9 +93,52 @@ private void performLogin() } [BackgroundDependencyLoader(permitNulls: true)] - private void load(APIAccess api) + private void load(APIAccess api, OsuConfigManager config) { this.api = api; + Direction = FlowDirection.VerticalOnly; + AutoSizeAxes = Axes.Y; + RelativeSizeAxes = Axes.X; + Spacing = new Vector2(0, 5); + // TODO: Wire things up + Children = new Drawable[] + { + new SpriteText { Text = "Username" }, + username = new TextBox + { + Height = 20, + RelativeSizeAxes = Axes.X, + Text = api?.Username ?? string.Empty + }, + new SpriteText { Text = "Password" }, + password = new PasswordTextBox + { + Height = 20, + RelativeSizeAxes = Axes.X + }, + new CheckBoxOption + { + LabelText = "Remember Username", + Bindable = config.GetBindable(OsuConfig.SaveUsername), + }, + new CheckBoxOption + { + LabelText = "Remember Password", + Bindable = config.GetBindable(OsuConfig.SavePassword), + }, + new OsuButton + { + RelativeSizeAxes = Axes.X, + Text = "Log in", + Action = performLogin + }, + new OsuButton + { + RelativeSizeAxes = Axes.X, + Text = "Register", + //Action = performLogin + } + }; } } }