changes to how logins are handled, actually respect the "don't save my credentials" box, you can no longer double click the like or dislike button in order to do the same thing twice

This commit is contained in:
Maff 2019-11-01 17:02:26 +00:00
parent cee7853860
commit a8dcd3a150
1 changed files with 38 additions and 10 deletions

View File

@ -29,6 +29,7 @@ namespace WinPlaza {
private delegate void dgtNoParam();
private delegate void dgtBool(bool b);
private delegate void dgtStr(string s);
private delegate void dgtCtrl(System.Windows.Controls.Control c);
#endregion
#region CrossThreadCalls
private void Leveller() {
@ -37,6 +38,8 @@ namespace WinPlaza {
chLeft.Width = Bass.ChannelGetLevelLeft(BuffCh) / GfxWidthStep;
chRight.Width = Bass.ChannelGetLevelRight(BuffCh) / GfxWidthStep;
}
private void DgtToggleEnabled(System.Windows.Controls.Control c) =>
c.IsEnabled = !c.IsEnabled;
private void SetStatus(string msg) =>
Dispatcher.BeginInvoke(new dgtStr(_Status), msg);
private void SetTitle(string msg) =>
@ -161,10 +164,12 @@ namespace WinPlaza {
private void BtPlayPause_Click(object sender, RoutedEventArgs e) {
if(!AudioInit)
return;
_ = Dispatcher.BeginInvoke(new dgtCtrl(DgtToggleEnabled), btPlayPause);
if(btPlayPause.IsChecked == true)
_ = Dispatcher.BeginInvoke(new dgtNoParam(PlazaLoad));
else
_ = Dispatcher.BeginInvoke(new dgtNoParam(PlazaStop));
_ = Dispatcher.BeginInvoke(new dgtCtrl(DgtToggleEnabled), btPlayPause);
}
private void SbMute_Click(object sender, RoutedEventArgs e) {
if(MuteVol<0) {
@ -189,39 +194,62 @@ namespace WinPlaza {
Bass.GlobalStreamVolume = (int)sbVol.Value * 100;
}
private async void BtLogin_Click(object sender, RoutedEventArgs e) {
_ = Dispatcher.BeginInvoke(new dgtCtrl(DgtToggleEnabled), btLogin);
CredentialResult _c=CredentialManager.PromptForCredentials(messageText:"Please log into your Nightwave Plaza account", captionText:"Log into plaza.one");
if(_c is null)
return;
CredentialManager.WriteCredential("Nightwave.NET", _c.UserName, _c.Password, CredentialPersistence.Enterprise);
Credential c=CredentialManager.ReadCredential("Nightwave.NET");
if(c is null)
throw new Exception("what the fuck");
Console.WriteLine($"did login work? {await plaza.Login(c.UserName, c.Password)}");
Console.WriteLine($"can validate? {await plaza.CheckSession()}");
#if DEBUG
Console.WriteLine($"token is {plaza.GetAuthorizationToken()}");
#endif
//#if DEBUG
// Console.WriteLine($"did login work? {await plaza.Login(c.UserName, c.Password)}");
// Console.WriteLine($"can validate? {await plaza.CheckSession()}");
// Console.WriteLine($"token is {plaza.GetAuthorizationToken()}");
//#else
if(!await plaza.Login(_c.UserName, _c.Password)) {
SetStatus("Login failed! Please try again.");
_ = Dispatcher.BeginInvoke(new dgtCtrl(DgtToggleEnabled), btLogin);
return;
}
//user may have stored credentials and not want to keep them any more, delete with reckless abandon.
CredentialManager.DeleteCredential("Nightwave.NET");
if(_c.CredentialSaved == CredentialSaveOption.Selected) {
CredentialManager.WriteCredential("Nightwave.NET", _c.UserName, _c.Password, CredentialPersistence.Enterprise);
Credential c=CredentialManager.ReadCredential("Nightwave.NET");
if(c is null) {
SetStatus("Problem saving to Windows Credential store. Sorry.");
throw new Exception("what the fuck");
}
}
if(!await plaza.CheckSession()) {
SetStatus("Something went wrong during login! Sorry.");
_ = Dispatcher.BeginInvoke(new dgtCtrl(DgtToggleEnabled), btLogin);
return;
}
//#endif
btLogin.IsEnabled = false;
btLogin.Visibility = Visibility.Hidden;
imLogin.IsEnabled = false;
imLogin.Visibility = Visibility.Hidden;
SetStatus($"Logged in as {await plaza.GetUser()}");
}
private async void BtLike_Click(object sender, RoutedEventArgs e) {
_ = Dispatcher.BeginInvoke(new dgtCtrl(DgtToggleEnabled), btLike);
Nightwave.Vote v = Nightwave.Vote.Like;
if(LikedCTrack)
v = Nightwave.Vote.Favourite;
if(await plaza.CastVote(v)) {
SetStatus($"Submitted {v}!");
LikedCTrack = !LikedCTrack; //This should allow "un-favouriting"
LikedCTrack = !LikedCTrack;
} else
SetStatus($"Something went weird while casting {v}");
_ = Dispatcher.BeginInvoke(new dgtCtrl(DgtToggleEnabled), btLike);
_ = Dispatcher.BeginInvoke(new dgtBool(DgtRefresh), true);
}
private async void BtDislike_Click(object sender, RoutedEventArgs e) {
_ = Dispatcher.BeginInvoke(new dgtCtrl(DgtToggleEnabled), btDislike);
if(await plaza.CastVote(Nightwave.Vote.Dislike))
SetStatus("Song disliked!");
else
SetStatus("Something went weird while disliking");
_ = Dispatcher.BeginInvoke(new dgtCtrl(DgtToggleEnabled), btDislike);
LikedCTrack = false;
_ = Dispatcher.BeginInvoke(new dgtBool(DgtRefresh), true);
}