Remove spaghetti

This commit is contained in:
Charles Milette 2018-03-21 20:25:18 -04:00
parent 786838a74a
commit be56eb6106
No known key found for this signature in database
GPG key ID: 9BC74CC51CB137CE
12 changed files with 62 additions and 33 deletions

View file

@ -108,7 +108,7 @@ public OCRSpaceResponse DoOCR(Stream stream, string fileName)
arguments.Add("language", Language.ToString());
arguments.Add("isOverlayRequired", Overlay.ToString());
UploadResult ur = SendRequestFile(APIURLUSA, stream, fileName, "file", arguments);
UploadResult ur = SendRequestFile(APIURLUSA, stream, fileName, args: arguments);
if (ur.IsSuccess)
{

View file

@ -265,10 +265,12 @@ public enum RegionCaptureType
Default, Light, Transparent
}
#if !WindowsStore
public enum StartupTaskState
{
Disabled = 0,
DisabledByUser = 1,
Enabled = 2
}
#endif
}

View file

@ -31,6 +31,10 @@ You should have received a copy of the GNU General Public License
using System.Linq;
using System.Windows.Forms;
#if WindowsStore
using Windows.ApplicationModel;
#endif
namespace ShareX
{
public partial class ApplicationSettingsForm : Form
@ -251,7 +255,7 @@ private void UpdateStartWithWindows()
try
{
StartupTaskState state = StartupManagerFactory.StartupManager.State;
var state = StartupManagerSingletonProvider.CurrentStartupManager.State;
cbStartWithWindows.Checked = state == StartupTaskState.Enabled;
if (state == StartupTaskState.DisabledByUser)
@ -405,7 +409,7 @@ private void cbStartWithWindows_CheckedChanged(object sender, EventArgs e)
{
try
{
StartupManagerFactory.StartupManager.State = cbStartWithWindows.Checked ? StartupTaskState.Enabled : StartupTaskState.Disabled;
StartupManagerSingletonProvider.CurrentStartupManager.State = cbStartWithWindows.Checked ? StartupTaskState.Enabled : StartupTaskState.Disabled;
UpdateStartWithWindows();
}
catch (Exception ex)

View file

@ -27,6 +27,10 @@ You should have received a copy of the GNU General Public License
using System;
using System.Windows.Forms;
#if WindowsStore
using Windows.ApplicationModel;
#endif
namespace ShareX
{
public partial class FirstTimeConfigForm : BlackStyleForm
@ -37,7 +41,7 @@ public FirstTimeConfigForm()
{
InitializeComponent();
pbLogo.Image = ImageHelpers.ResizeImage(ShareXResources.Logo, 128, 128);
StartupTaskState state = StartupManagerFactory.StartupManager.State;
var state = StartupManagerSingletonProvider.CurrentStartupManager.State;
cbRunStartup.Checked = state == StartupTaskState.Enabled;
cbRunStartup.Enabled = state != StartupTaskState.DisabledByUser;
@ -63,7 +67,7 @@ private void cbRunStartup_CheckedChanged(object sender, EventArgs e)
{
if (loaded)
{
StartupManagerFactory.StartupManager.State = cbRunStartup.Checked ? StartupTaskState.Enabled : StartupTaskState.Disabled;
StartupManagerSingletonProvider.CurrentStartupManager.State = cbRunStartup.Checked ? StartupTaskState.Enabled : StartupTaskState.Disabled;
}
}

View file

@ -31,6 +31,10 @@ You should have received a copy of the GNU General Public License
using System.Text;
using System.Windows.Forms;
#if WindowsStore
using Windows.ApplicationModel;
#endif
namespace ShareX
{
public static class IntegrationHelpers
@ -347,7 +351,7 @@ public static void SteamShowInApp(bool showInApp)
public static void Uninstall()
{
StartupManagerFactory.StartupManager.State = StartupTaskState.Disabled;
StartupManagerSingletonProvider.CurrentStartupManager.State = StartupTaskState.Disabled;
CreateShellContextMenuButton(false);
CreateCustomUploaderExtension(false);
CreateSendToMenuButton(false);

View file

@ -328,7 +328,7 @@
<Compile Include="StartupManagers\DesktopStartupManager.cs" />
<Compile Include="StartupManagers\GenericStartupManager.cs" />
<Compile Include="StartupManagers\IStartupManager.cs" />
<Compile Include="StartupManagers\StartupManagerFactory.cs" />
<Compile Include="StartupManagers\StartupManagerSingletonProvider.cs" />
<Compile Include="StartupManagers\SteamStartupManager.cs" />
<Compile Include="TaskHelpers.cs" />
<Compile Include="Program.cs" />

View file

@ -26,29 +26,33 @@ You should have received a copy of the GNU General Public License
#if WindowsStore
using System;
using System.Threading.Tasks;
using Windows.ApplicationModel;
namespace ShareX
{
public class CentennialStartupManager : IStartupManager
{
public int StartupTargetIndex { get; set; }
private const int StartupTargetIndex = 0;
private static StartupTask packageTask;
public StartupTaskState State
{
get
{
return (StartupTaskState)StartupTask.GetForCurrentPackageAsync().AsTask().GetAwaiter().GetResult()[StartupTargetIndex].State;
AcquirePackageTask().GetAwaiter().GetResult();
return packageTask.State;
}
set
{
AcquirePackageTask().GetAwaiter().GetResult();
if (value == StartupTaskState.Enabled)
{
StartupTask.GetForCurrentPackageAsync().AsTask().GetAwaiter().GetResult()[StartupTargetIndex].RequestEnableAsync().AsTask().GetAwaiter().GetResult();
packageTask.RequestEnableAsync().GetAwaiter().GetResult();
}
else if (value == StartupTaskState.Disabled)
{
StartupTask.GetForCurrentPackageAsync().AsTask().GetAwaiter().GetResult()[StartupTargetIndex].Disable();
packageTask.Disable();
}
else
{
@ -56,6 +60,14 @@ public StartupTaskState State
}
}
}
private async Task AcquirePackageTask()
{
if (packageTask == null)
{
packageTask = (await StartupTask.GetForCurrentPackageAsync())[StartupTargetIndex];
}
}
}
}

View file

@ -23,6 +23,8 @@ You should have received a copy of the GNU General Public License
#endregion License Information (GPL v3)
#if !WindowsStore
using System.Windows.Forms;
namespace ShareX
@ -32,3 +34,5 @@ public class DesktopStartupManager : GenericStartupManager
public override string StartupTargetPath => Application.ExecutablePath;
}
}
#endif

View file

@ -23,6 +23,8 @@ You should have received a copy of the GNU General Public License
#endregion License Information (GPL v3)
#if !WindowsStore
using Microsoft.Win32;
using ShareX.HelpersLib;
using System;
@ -61,3 +63,5 @@ public StartupTaskState State
}
}
}
#endif

View file

@ -23,6 +23,10 @@ You should have received a copy of the GNU General Public License
#endregion License Information (GPL v3)
#if WindowsStore
using Windows.ApplicationModel;
#endif
namespace ShareX
{
public interface IStartupManager

View file

@ -25,31 +25,18 @@ You should have received a copy of the GNU General Public License
namespace ShareX
{
public static class StartupManagerFactory
public static class StartupManagerSingletonProvider
{
private static IStartupManager startupManager;
public static IStartupManager CurrentStartupManager { get; private set; }
public static IStartupManager StartupManager
{
get
{
if (startupManager == null)
{
startupManager = CreateStartupManager();
}
return startupManager;
}
}
public static IStartupManager CreateStartupManager()
static StartupManagerSingletonProvider()
{
#if WindowsStore
return new CentennialStartupManager();
CurrentStartupManager = new CentennialStartupManager();
#elif STEAM
return new SteamStartupManager();
CurrentStartupManager = new SteamStartupManager();
#else
return new DesktopStartupManager();
CurrentStartupManager = new DesktopStartupManager();
#endif
}
}

View file

@ -23,6 +23,8 @@ You should have received a copy of the GNU General Public License
#endregion License Information (GPL v3)
#if STEAM
using ShareX.HelpersLib;
namespace ShareX
@ -32,3 +34,5 @@ public class SteamStartupManager : GenericStartupManager
public override string StartupTargetPath => Helpers.GetAbsolutePath("../ShareX_Launcher.exe");
}
}
#endif