- more logs - download controller + manager überarbeitet - Retry wird besser angezeigt - Formatierungen
196 lines
5.6 KiB
C#
196 lines
5.6 KiB
C#
using BeWoLauncher.Logic.Controller;
|
|
using BeWoLauncher.Logic.Utils;
|
|
using BeWoLauncher.View;
|
|
using BeWoLauncher.View.Frames;
|
|
using BS.SharedLauncher.Enums;
|
|
using System;
|
|
using System.IO;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Threading;
|
|
using static BeWoLauncher.Logic.Controller.ViewController;
|
|
|
|
namespace BeWoLauncher.Logic.Behavior
|
|
{
|
|
public class ViewSwitchBehavior
|
|
{
|
|
private UserControl _currentView;
|
|
private FrameBase _currentFrame;
|
|
private LauncherMode _currentLauncherMode;
|
|
|
|
private UserControl CurrentView
|
|
{
|
|
get => _currentView;
|
|
set
|
|
{
|
|
_currentView = value;
|
|
|
|
CurrentWindow.Dispatcher.BeginInvoke(DispatcherPriority.Render,
|
|
(Action)delegate
|
|
{
|
|
CurrentWindow.SetMainContent(value);
|
|
});
|
|
}
|
|
}
|
|
private FrameBase CurrentFrame
|
|
{
|
|
get => _currentFrame;
|
|
set
|
|
{
|
|
_currentFrame = value;
|
|
|
|
if (CurrentView is FrameView frameview)
|
|
CurrentWindow.Dispatcher.BeginInvoke(DispatcherPriority.Render,
|
|
(Action)delegate
|
|
{
|
|
frameview.SetFrame(value);
|
|
});
|
|
else
|
|
CurrentView = new FrameView(value);
|
|
}
|
|
}
|
|
|
|
public ViewSwitchBehavior()
|
|
{
|
|
|
|
}
|
|
|
|
public void ShowView(ViewType vt)
|
|
{
|
|
var view = ViewController.ViewBuilder.GetNewView(vt);
|
|
|
|
CurrentView = view;
|
|
}
|
|
public void ShowFrame(FrameType ft)
|
|
{
|
|
CurrentFrame = ViewController.ViewBuilder.GetNewFrame(ft);
|
|
}
|
|
|
|
public void ShowInfo(bool is_update)
|
|
{
|
|
ViewController.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
|
|
{
|
|
if (is_update)
|
|
{
|
|
ShowFrame(FrameType.UpdateInfo);
|
|
}
|
|
else
|
|
{
|
|
ShowFrame(FrameType.InstallInfo);
|
|
}
|
|
}));
|
|
}
|
|
|
|
public void ShowError(Exception exception)
|
|
{
|
|
Error = exception;
|
|
|
|
ViewController.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
|
|
{
|
|
ShowFrame(FrameType.GenericFail);
|
|
}));
|
|
}
|
|
|
|
public void ShowError(string exception)
|
|
{
|
|
ErrorString = exception;
|
|
|
|
ViewController.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
|
|
{
|
|
ShowFrame(FrameType.GenericFail);
|
|
}));
|
|
}
|
|
|
|
public void ShowNoPermissions(string path)
|
|
{
|
|
ViewController.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
|
|
{
|
|
FailedPath = path;
|
|
ShowFrame(FrameType.NoPermissionInfo);
|
|
}));
|
|
}
|
|
|
|
public void ShowUninstallInfo()
|
|
{
|
|
ViewController.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
|
|
{
|
|
ShowFrame(FrameType.UninstallInfo);
|
|
}));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Zeigt Ladebildschirm und startet BeWo Prozess
|
|
/// </summary>
|
|
public void ShowLoading()
|
|
{
|
|
ViewController.Dispatcher.BeginInvoke(DispatcherPriority.Render, new Action(() =>
|
|
{
|
|
ShowFrame(FrameType.LoadingScreen);
|
|
}));
|
|
}
|
|
|
|
public void BackToLogin(object sender, EventArgs e)
|
|
{
|
|
StartWaiting();
|
|
|
|
ShowView(ViewType.LoginView);
|
|
}
|
|
public void LoginSuccessful(object sender, EventArgs e)
|
|
{
|
|
Task.Run(() => ViewController.LaunchBehavior.LoginSuccessful());
|
|
}
|
|
|
|
public void InstallInfoAccept(object sender, EventArgs e)
|
|
{
|
|
var install = sender as InstallInfoFrame;
|
|
|
|
if (IsDirectoryWritable(install.InstallLocation))
|
|
{
|
|
LauncherPaths.SetAndSaveInstallLocation(install.InstallLocation);
|
|
ShowFrame(FrameType.InstallProgress);
|
|
}
|
|
else
|
|
{
|
|
ShowFrame(FrameType.NoPermissionInfo);
|
|
}
|
|
}
|
|
public void InstallSuccesss(object sender, EventArgs e)
|
|
{
|
|
LauncherAppdataConfig.SetFirstInstallationSuccess(true);
|
|
ShowFrame(FrameType.LoadingScreen);
|
|
}
|
|
public void InstallFailed(object sender, EventArgs e)
|
|
{
|
|
ShowFrame(FrameType.InstallFailed);
|
|
}
|
|
public void UpdateFailed(object sender, EventArgs e)
|
|
{
|
|
ShowFrame(FrameType.UpdateFailed);
|
|
}
|
|
public void UninstallFailed(object sender, EventArgs e)
|
|
{
|
|
ShowFrame(FrameType.UninstallFailed);
|
|
}
|
|
|
|
public void UpdateStarting(object sender, EventArgs e)
|
|
{
|
|
ShowFrame(FrameType.UpdateProgress);
|
|
}
|
|
public void UpdateSuccess(object sender, EventArgs e)
|
|
{
|
|
LauncherAppdataConfig.SetFirstInstallationSuccess(true);
|
|
ShowFrame(FrameType.LoadingScreen);
|
|
}
|
|
|
|
public void UninstallStarting(object sender, EventArgs e)
|
|
{
|
|
ShowFrame(FrameType.UninstallProgress);
|
|
}
|
|
public void UninstallSuccess(object sender, EventArgs e)
|
|
{
|
|
LauncherAppdataConfig.Reset();
|
|
ShowFrame(FrameType.UninstallSuccessful);
|
|
}
|
|
}
|
|
}
|