diff --git a/AM2RLauncher/AM2RLauncher/LauncherUpdater.cs b/AM2RLauncher/AM2RLauncher/LauncherUpdater.cs
index 99a4095..6558801 100644
--- a/AM2RLauncher/AM2RLauncher/LauncherUpdater.cs
+++ b/AM2RLauncher/AM2RLauncher/LauncherUpdater.cs
@@ -2,9 +2,11 @@
using Eto.Forms;
using log4net;
using System;
+using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Net;
+using System.Reflection;
namespace AM2RLauncher;
@@ -24,8 +26,20 @@ public static class LauncherUpdater
private static readonly string oldConfigPath = CrossPlatformOperations.CurrentPath + "/" + CrossPlatformOperations.LauncherName + ".oldCfg";
/// The actual Path where the executable is stored, only used for updating.
- private static readonly string updatePath = OS.IsWindows ? CrossPlatformOperations.CurrentPath
- : (OS.IsLinux ? Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory) : Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory + "../../../"));
+ private static string updatePath
+ {
+ get
+ {
+ if (OS.IsWindows)
+ return Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location);
+ if (OS.IsLinux)
+ return Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);
+ if (OS.IsMac)
+ // TODO: double check on mac if this is correct
+ return Path.GetDirectoryName($"{AppDomain.CurrentDomain.BaseDirectory}../../../");
+ throw new NotSupportedException($"{OS.Name} does not have an update path!");
+ }
+ }
///
/// Our log object, that handles logging the current execution to a file.
@@ -154,7 +168,7 @@ public static class LauncherUpdater
try
{
- using var client = new WebClient();
+ using WebClient client = new WebClient();
string platformSuffix = "";
if (OS.IsWindows) platformSuffix = "_win";
else if (OS.IsLinux) platformSuffix = "_lin";
@@ -179,7 +193,7 @@ public static class LauncherUpdater
File.Move(updatePath + "/" + CrossPlatformOperations.LauncherName, CrossPlatformOperations.CurrentPath + "/AM2RLauncher.bak");
if (OS.IsWindows) File.Move(CrossPlatformOperations.LauncherName + ".config", CrossPlatformOperations.LauncherName + ".oldCfg");
- foreach (var file in new DirectoryInfo(tmpUpdatePath).GetFiles())
+ foreach (FileInfo file in new DirectoryInfo(tmpUpdatePath).GetFiles())
{
log.Info("Moving " + file.FullName + " to " + CrossPlatformOperations.CurrentPath + "/" + file.Name);
File.Copy(file.FullName, updatePath + "/" + file.Name, true);
@@ -214,9 +228,9 @@ public static class LauncherUpdater
MainForm.CopyOldConfigToNewConfig();
log.Info("Files extracted. Preparing to restart executable...");
- if (OS.IsLinux) System.Diagnostics.Process.Start("chmod", "+x " + updatePath + "./AM2RLauncher.Gtk");
+ if (OS.IsLinux) Process.Start("chmod", "+x " + updatePath + "./AM2RLauncher.Gtk");
- System.Diagnostics.Process.Start(updatePath + "/" + CrossPlatformOperations.LauncherName);
+ Process.Start(updatePath + "/" + CrossPlatformOperations.LauncherName);
Environment.Exit(0);
}
else
diff --git a/AM2RLauncher/AM2RLauncher/MainForm/MainForm.UI.cs b/AM2RLauncher/AM2RLauncher/MainForm/MainForm.UI.cs
index 82dd15f..5a97da3 100644
--- a/AM2RLauncher/AM2RLauncher/MainForm/MainForm.UI.cs
+++ b/AM2RLauncher/AM2RLauncher/MainForm/MainForm.UI.cs
@@ -181,9 +181,10 @@ public partial class MainForm : Form
MinimumSize = new Size(500, 400);
// TODO: for some reason, this doesn't work on Linux. Was reported at eto, stays here until its fixed
ClientSize = new Size(Int32.Parse(ReadFromConfig("Width")), Int32.Parse(ReadFromConfig("Height")));
- if (ClientSize.Width < 500)
+ // Workaround for above problem
+ if (OS.IsWindows && (ClientSize.Width < 500))
ClientSize = new Size(500, ClientSize.Height);
- if (ClientSize.Height < 400)
+ if (OS.IsWindows && (ClientSize.Height < 400))
ClientSize = new Size(ClientSize.Width, 400);
log.Info("Start the launcher with Size: " + ClientSize.Width + ", " + ClientSize.Height);
if (Boolean.Parse(ReadFromConfig("IsMaximized"))) Maximize();
@@ -398,7 +399,6 @@ public partial class MainForm : Form
if (OS.IsUnix && !isInternetThere)
changelogWebView = new WebView();
- //TODO: these clip on gtk, Eto issue
Label changelogNoConnectionLabel = new Label
{
Text = Text.NoInternetConnection,
diff --git a/AM2RLauncher/AM2RLauncherLib/Profile.cs b/AM2RLauncher/AM2RLauncherLib/Profile.cs
index a7fa626..74d4ba7 100644
--- a/AM2RLauncher/AM2RLauncherLib/Profile.cs
+++ b/AM2RLauncher/AM2RLauncherLib/Profile.cs
@@ -2,9 +2,7 @@
using log4net;
using System;
using System.Collections.Generic;
-using System.Collections.Specialized;
using System.Diagnostics;
-using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Linq;