summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2022-07-08 17:48:01 -0400
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2022-07-08 17:48:01 -0400
commit1b25710cf26ccc46485c9475e33980a5490b9561 (patch)
tree895f5cf3a002d5e1859beb275be85d2a911de8f8
parentdcb3a97727401c2b3704e277bc4062b3bd89448e (diff)
downloadSMAPI-1b25710cf26ccc46485c9475e33980a5490b9561.tar.gz
SMAPI-1b25710cf26ccc46485c9475e33980a5490b9561.tar.bz2
SMAPI-1b25710cf26ccc46485c9475e33980a5490b9561.zip
fix installer partly applying color theme before it's selected
-rw-r--r--docs/release-notes.md3
-rw-r--r--src/SMAPI.Installer/InteractiveInstaller.cs12
2 files changed, 9 insertions, 6 deletions
diff --git a/docs/release-notes.md b/docs/release-notes.md
index cf237a82..6c3edb77 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -8,6 +8,9 @@
-->
## Upcoming release
+* For players:
+ * Fixed Linux/macOS installer's color theme question partly unreadable if the terminal background is dark.
+
* For the web UI:
* Added log parser warning about performance of PyTK 1.23.0 or earlier.
diff --git a/src/SMAPI.Installer/InteractiveInstaller.cs b/src/SMAPI.Installer/InteractiveInstaller.cs
index fd1a6047..d00a5df4 100644
--- a/src/SMAPI.Installer/InteractiveInstaller.cs
+++ b/src/SMAPI.Installer/InteractiveInstaller.cs
@@ -206,7 +206,7 @@ namespace StardewModdingApi.Installer
Console.WriteLine();
// handle choice
- string choice = this.InteractivelyChoose("Type 1 or 2, then press enter.", new[] { "1", "2" });
+ string choice = this.InteractivelyChoose("Type 1 or 2, then press enter.", new[] { "1", "2" }, printLine: Console.WriteLine);
switch (choice)
{
case "1":
@@ -629,22 +629,22 @@ namespace StardewModdingApi.Installer
}
/// <summary>Interactively ask the user to choose a value.</summary>
- /// <param name="print">A callback which prints a message to the console.</param>
+ /// <param name="printLine">A callback which prints a message to the console.</param>
/// <param name="message">The message to print.</param>
/// <param name="options">The allowed options (not case sensitive).</param>
/// <param name="indent">The indentation to prefix to output.</param>
- private string InteractivelyChoose(string message, string[] options, string indent = "", Action<string>? print = null)
+ private string InteractivelyChoose(string message, string[] options, string indent = "", Action<string>? printLine = null)
{
- print ??= this.PrintInfo;
+ printLine ??= this.PrintInfo;
while (true)
{
- print(indent + message);
+ printLine(indent + message);
Console.Write(indent);
string? input = Console.ReadLine()?.Trim().ToLowerInvariant();
if (input == null || !options.Contains(input))
{
- print($"{indent}That's not a valid option.");
+ printLine($"{indent}That's not a valid option.");
continue;
}
return input;