Login improvements

This commit is contained in:
Andrey Zavadskiy 2016-12-20 17:28:27 +03:00
parent 561b0928bb
commit 21c6c23189
1 changed files with 54 additions and 26 deletions

View File

@ -11,20 +11,26 @@
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
using osu.Game.Online.API; using osu.Game.Online.API;
using osu.Game.Configuration;
namespace osu.Game.Overlays.Options.General namespace osu.Game.Overlays.Options.General
{ {
public class LoginOptions : OptionsSubsection, IOnlineComponent public class LoginOptions : OptionsSubsection, IOnlineComponent
{ {
private Container loginForm; private APIAccess api;
private Action performLogout;
protected override string Header => "Sign In"; protected override string Header => "Sign In";
[BackgroundDependencyLoader(permitNulls: true)] [BackgroundDependencyLoader(permitNulls: true)]
private void load(APIAccess api) private void load(APIAccess api)
{ {
api?.Register(this); api?.Register(this);
this.api = api;
}
private void performLogout()
{
api.Logout();
} }
public void APIStateChanged(APIAccess api, APIState state) public void APIStateChanged(APIAccess api, APIState state)
@ -66,7 +72,7 @@ public void APIStateChanged(APIAccess api, APIState state)
{ {
RelativeSizeAxes = Axes.X, RelativeSizeAxes = Axes.X,
Text = "Sign out", Text = "Sign out",
Action = api.Logout Action = performLogout
} }
}; };
break; break;
@ -79,27 +85,6 @@ class LoginForm : FlowContainer
private TextBox password; private TextBox password;
private APIAccess api; 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() private void performLogin()
{ {
@ -108,9 +93,52 @@ private void performLogin()
} }
[BackgroundDependencyLoader(permitNulls: true)] [BackgroundDependencyLoader(permitNulls: true)]
private void load(APIAccess api) private void load(APIAccess api, OsuConfigManager config)
{ {
this.api = api; 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<bool>(OsuConfig.SaveUsername),
},
new CheckBoxOption
{
LabelText = "Remember Password",
Bindable = config.GetBindable<bool>(OsuConfig.SavePassword),
},
new OsuButton
{
RelativeSizeAxes = Axes.X,
Text = "Log in",
Action = performLogin
},
new OsuButton
{
RelativeSizeAxes = Axes.X,
Text = "Register",
//Action = performLogin
}
};
} }
} }
} }