Skip to content

Commit

Permalink
imp - brk|doc - Login handler's LoginScreen() returns boolean
Browse files Browse the repository at this point in the history
---

We've made a breaking change that allows us to implement the final portions of the login handler, which is telling the handler whether to "proceed" or to "refresh" itself.

---

Type: imp
Breaking: True
Doc Required: True
Part: 1/1
  • Loading branch information
AptiviCEO committed Feb 15, 2024
1 parent 8e11026 commit 89e7ea9
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 5 deletions.
2 changes: 1 addition & 1 deletion public/Nitrocid/Nitrocid.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
<NitrocidModAPIVersionMajor>3.0.25</NitrocidModAPIVersionMajor>

<!-- Increment NitrocidModAPIVersionChangeset every time there is a breaking change or an API addition in the N-KS API. -->
<NitrocidModAPIVersionChangeset>426</NitrocidModAPIVersionChangeset>
<NitrocidModAPIVersionChangeset>427</NitrocidModAPIVersionChangeset>

<!-- To be installed to the file version -->
<NitrocidModAPIVersion>$(NitrocidModAPIVersionMajor).$(NitrocidModAPIVersionChangeset)</NitrocidModAPIVersion>
Expand Down
3 changes: 2 additions & 1 deletion public/Nitrocid/Users/Login/Handlers/BaseLoginHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public abstract class BaseLoginHandler : ILoginHandler
Config.MainConfig.ShowAvailableUsers;

/// <inheritdoc/>
public virtual void LoginScreen()
public virtual bool LoginScreen()
{
// Clear console if ClearOnLogin is set to True (If a user has enabled Clear Screen on Login)
if (ClearOnLogin)
Expand All @@ -90,6 +90,7 @@ public virtual void LoginScreen()
TextWriterColor.Write(Translate.DoTranslation("You can log in to these accounts:"));
ListWriterColor.WriteList(UsersList);
}
return true;
}

/// <inheritdoc/>
Expand Down
3 changes: 2 additions & 1 deletion public/Nitrocid/Users/Login/Handlers/ILoginHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ public interface ILoginHandler
/// <summary>
/// Login screen
/// </summary>
void LoginScreen();
/// <returns>True if we need to proceed to the user selector. Otherwise, false.</returns>
bool LoginScreen();

/// <summary>
/// Username selector
Expand Down
5 changes: 4 additions & 1 deletion public/Nitrocid/Users/Login/Handlers/Logins/ModernLogin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ namespace Nitrocid.Users.Login.Handlers.Logins
{
internal class ModernLogin : BaseLoginHandler, ILoginHandler
{
public override void LoginScreen()
public override bool LoginScreen()
{
// Clear the console
ConsoleWrapper.CursorVisible = false;
Expand All @@ -57,6 +57,7 @@ public override void LoginScreen()
ModernLogonScreen.renderedFully = false;

// Check to see if user requested power actions
bool proceed = true;
if (key == ConsoleKey.Escape)
{
int answer = InfoBoxButtonsColor.WriteInfoBoxButtons([
Expand All @@ -68,7 +69,9 @@ public override void LoginScreen()
PowerManager.PowerManage(PowerMode.Shutdown);
else if (answer == 1)
PowerManager.PowerManage(PowerMode.Reboot);
proceed = answer == 2;
}
return proceed;
}

public override string UserSelector()
Expand Down
6 changes: 5 additions & 1 deletion public/Nitrocid/Users/Login/Login.cs
Original file line number Diff line number Diff line change
Expand Up @@ -93,12 +93,16 @@ public static void LoginPrompt()
UserManagement.fallbackRootAccount;

// Now, show the Login screen
handler.LoginScreen();
bool proceed = handler.LoginScreen();

// The login screen may provide an option to perform power options.
if (PowerManager.RebootRequested || PowerManager.KernelShutdown)
continue;

// The login screen may provide an option to refresh itself.
if (!proceed)
continue;

// Prompt for username
user = handler.UserSelector();

Expand Down

0 comments on commit 89e7ea9

Please sign in to comment.