mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-17 03:25:14 -04:00
When you go back to main screen in launcher and try to sign in again, attempt to resume current login instead of always doing a fresh login (Unless a different signin username has been typed in)
This commit is contained in:
parent
beba09b2ef
commit
6652f9f316
@ -901,6 +901,19 @@ static void MainScreen_TickCheckUpdates(struct MainScreen* s) {
|
|||||||
LWidget_Redraw(&s->lblUpdate);
|
LWidget_Redraw(&s->lblUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void MainScreen_LoginPhase2(struct MainScreen* s, const cc_string* user) {
|
||||||
|
/* website returns case correct username */
|
||||||
|
if (!String_Equals(&s->iptUsername.text, user)) {
|
||||||
|
LInput_SetText(&s->iptUsername, user);
|
||||||
|
LWidget_Redraw(&s->iptUsername);
|
||||||
|
}
|
||||||
|
String_Copy(&Game_Username, user);
|
||||||
|
|
||||||
|
FetchServersTask_Run();
|
||||||
|
LLabel_SetConst(&s->lblStatus, "&eRetrieving servers list..");
|
||||||
|
LWidget_Redraw(&s->lblStatus);
|
||||||
|
}
|
||||||
|
|
||||||
static void MainScreen_TickGetToken(struct MainScreen* s) {
|
static void MainScreen_TickGetToken(struct MainScreen* s) {
|
||||||
if (!GetTokenTask.Base.working) return;
|
if (!GetTokenTask.Base.working) return;
|
||||||
LWebTask_Tick(&GetTokenTask.Base);
|
LWebTask_Tick(&GetTokenTask.Base);
|
||||||
@ -911,8 +924,13 @@ static void MainScreen_TickGetToken(struct MainScreen* s) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (String_CaselessEquals(&GetTokenTask.username, &s->iptUsername.text)) {
|
||||||
|
/* Already logged in, go straight to fetching servers */
|
||||||
|
MainScreen_LoginPhase2(s, &GetTokenTask.username);
|
||||||
|
} else {
|
||||||
SignInTask_Run(&s->iptUsername.text, &s->iptPassword.text,
|
SignInTask_Run(&s->iptUsername.text, &s->iptPassword.text,
|
||||||
&MFAScreen_Instance.iptCode.text);
|
&MFAScreen_Instance.iptCode.text);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MainScreen_TickSignIn(struct MainScreen* s) {
|
static void MainScreen_TickSignIn(struct MainScreen* s) {
|
||||||
@ -926,16 +944,7 @@ static void MainScreen_TickSignIn(struct MainScreen* s) {
|
|||||||
LLabel_SetConst(&s->lblStatus, SignInTask.error);
|
LLabel_SetConst(&s->lblStatus, SignInTask.error);
|
||||||
LWidget_Redraw(&s->lblStatus);
|
LWidget_Redraw(&s->lblStatus);
|
||||||
} else if (SignInTask.Base.success) {
|
} else if (SignInTask.Base.success) {
|
||||||
/* website returns case correct username */
|
MainScreen_LoginPhase2(s, &SignInTask.username);
|
||||||
if (!String_Equals(&s->iptUsername.text, &SignInTask.username)) {
|
|
||||||
LInput_SetText(&s->iptUsername, &SignInTask.username);
|
|
||||||
LWidget_Redraw(&s->iptUsername);
|
|
||||||
}
|
|
||||||
String_Copy(&Game_Username, &SignInTask.username);
|
|
||||||
|
|
||||||
FetchServersTask_Run();
|
|
||||||
LLabel_SetConst(&s->lblStatus, "&eRetrieving servers list..");
|
|
||||||
LWidget_Redraw(&s->lblStatus);
|
|
||||||
} else {
|
} else {
|
||||||
MainScreen_Error(&SignInTask.Base, "signing in");
|
MainScreen_Error(&SignInTask.Base, "signing in");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user