private void TrySaveBuiltApp(AppInfo appInfo, byte[] appData) { if (!Directory.Exists(AppStorageDirectory)) Directory.CreateDirectory(AppStorageDirectory); // ncrunch: no coverage string appSavePath = Path.Combine(AppStorageDirectory, Path.GetFileName(appInfo.FilePath)); File.WriteAllBytes(appSavePath, appData); }
// ncrunch: no coverage start public static void HandleNoDeviceAvailableInView(AppInfo appInfo) { LogNoDeviceAvailable(appInfo); if (appInfo is Android.AndroidAppInfo) if (ShowDownloadAndroidDriversQuestionAndGetUserDecision() == MessageBoxResult.Yes) TryDownloadAndroidDriverAndShowInstructions(); }
private static void TryLaunchApp(AppInfo selectedApp, Action enableLaunchButtonAgain) { try { if (!selectedApp.IsDeviceAvailable) { AppInfoExtensions.HandleNoDeviceAvailableInView(selectedApp); return; } Device primaryDevice = selectedApp.AvailableDevices[0]; if (!primaryDevice.IsAppInstalled(selectedApp)) { Logger.Info(selectedApp + " wasn't installed on the device '" + primaryDevice + "' will install it now."); primaryDevice.Install(selectedApp); } selectedApp.LaunchAppOnPrimaryDevice(); } catch (Device.StartApplicationFailedOnDevice ex) { AppInfoExtensions.LogStartingAppFailed(selectedApp, ex.DeviceName); } catch (Exception ex) { Logger.Error(ex); } enableLaunchButtonAgain(); }
// ncrunch: no coverage start protected override void LaunchApp(AppInfo app) { string appFileDirectory = Path.GetDirectoryName(app.FilePath); if (appFileDirectory.Length == 0) appFileDirectory = Environment.CurrentDirectory; Process.Start(appFileDirectory); }
public void Uninstall(AppInfo app) { if (app == null) throw new NoAppSpecified(); if (IsAppInstalled(app)) UninstallApp(app); }
private void TryLaunch(AppInfo app) { if (app == null) throw new NoAppSpecified(); if (!IsAppInstalled(app)) throw new AppNotInstalled(this, app); LaunchApp(app); }
public void AddApp(AppInfo appInfo, byte[] appData = null) { if (appInfo == null) throw new NoAppInfoSpecified(); appsStorage.AddApp(appInfo); RaisePropertyChangedOfBuiltApps(); if (appData != null) SaveBuiltApp(appInfo, appData); }
// ncrunch: no coverage end public void Launch(AppInfo app) { try { TryLaunch(app); } catch (Exception ex) { throw new StartApplicationFailedOnDevice(Name, ex); } }
private void SaveBuiltApp(AppInfo appInfo, byte[] appData) { try { TrySaveBuiltApp(appInfo, appData); } // ncrunch: no coverage start catch (Exception ex) { throw new SavingBuiltAppFailed(ex); } // ncrunch: no coverage end }
public void AddApp(AppInfo app) { int indexOfApp = GetIndexOfAppInAvailableAppsList(app); if (indexOfApp != InvalidIndex) { availableApps[indexOfApp] = app; UpdateStorageDataInSettings(); } else { availableApps.Add(app); AddAppToStorageData(app); } }
public void Launch(AppInfo app) { try { if (app == null) throw new NoAppSpecified(); if (!IsAppInstalled(app)) throw new AppNotInstalled(this, app); LaunchApp(app); } catch (Exception ex) { throw new StartApplicationFailedOnDevice(Name, ex); } }
private static void LaunchApp(AppInfo selectedApp, Action enableLaunchButtonAgain) { try { TryLaunchApp(selectedApp); } catch (Device.StartApplicationFailedOnDevice ex) { AppInfoExtensions.LogStartingAppFailed(selectedApp, ex.DeviceName); } catch (Exception ex) { Logger.Error(ex); } enableLaunchButtonAgain(); }
private static void TryLaunchApp(AppInfo selectedApp) { if (!selectedApp.IsDeviceAvailable) { AppInfoExtensions.HandleNoDeviceAvailableInView(selectedApp); return; } Device primaryDevice = selectedApp.AvailableDevices[0]; if (!primaryDevice.IsAppInstalled(selectedApp)) { Logger.Info(selectedApp + " wasn't installed on the device '" + primaryDevice + "' will install it now."); primaryDevice.Install(selectedApp); } selectedApp.LaunchAppOnPrimaryDevice(); }
protected abstract void UninstallApp(AppInfo app);
// ncrunch: no coverage start private void OnAppRebuildRequest(AppInfo app) { SendBuildRequestToServer(app.SolutionFilePath, app.Name, app.Platform, true); }
public void InstallAndLaunchNewBuiltApp(AppInfo appInfo) { if (!appInfo.IsDeviceAvailable) { AppInfoExtensions.HandleNoDeviceAvailableInView(appInfo); UpdateBuildProgressBar("Launching App aborted", 100); ViewModel.OpenLocalBuiltAppsDirectory(); return; } Device primaryDevice = appInfo.AvailableDevices[0]; if (primaryDevice.IsAppInstalled(appInfo)) { UpdateBuildProgressBar(appInfo.Name + " was already installed, uninstalling it.", 90); primaryDevice.Uninstall(appInfo); } UpdateBuildProgressBar("Installing " + appInfo.Name + " on " + primaryDevice.Name, 95); primaryDevice.Install(appInfo); LaunchApp(appInfo, primaryDevice); }
private void DispatchAndHandleBuildAppReceivedEvent(AppInfo appInfo, byte[] appData) { Dispatcher.BeginInvoke(new Action(() => OnBuiltAppRecieved(appInfo, appData))); }
private void TryLaunchApp(AppInfo appInfo, Device device) { UpdateBuildProgressBar("App launched", 100); device.Launch(appInfo); }
private void TryLaunchApp(AppInfo appInfo, Device device) { try { UpdateBuildProgressBar("App launched", 100); device.Launch(appInfo); } catch (Device.StartApplicationFailedOnDevice ex) { AppInfoExtensions.LogStartingAppFailed(appInfo, ex.DeviceName); } }
private int GetIndexOfAppInAvailableAppsList(AppInfo app) { return availableApps.FindIndex(a => a.Name == app.Name && a.Platform == app.Platform); }
public AppNotInstalled(Device device, AppInfo app) : base(app.Name + " on " + device) { }
public UninstallationFailedOnDevice(Device device, AppInfo app) : base(app.Name + " on " + device) { }
private static void LogNoDeviceAvailable(AppInfo appToStart) { Logger.Warning("No " + appToStart.Platform + " device found. Please make sure your" + " device is connected and you have the correct driver installed."); }
public static void LogStartingAppFailed(AppInfo appToStart, string deviceName) { Logger.Warning(appToStart.Name + " can't be started on your " + appToStart.Platform + " device (" + deviceName + "). Please make sure your device is connected and the app was" + " correctly installed."); }
public NoDeviceAvailable(AppInfo appInfo) : base(appInfo.ToString()) { }
private int GetIndexOfAppInAvailableAppsList(AppInfo app) { return(availableApps.FindIndex(a => a.Name == app.Name && a.Platform == app.Platform)); }
private void OnBuiltAppRecieved(AppInfo appInfo, byte[] appData) { ViewModel.AppListViewModel.AddApp(appInfo, appData); SwitchToBuiltApps(); InstallAndLaunchNewBuiltApp(appInfo); }
public abstract bool IsAppInstalled(AppInfo app);
private void AddAppToStorageData(AppInfo app) { var appDataNode = new XmlData("App"); appDataNode.AddAttribute(XmlAttributeNameOfFileName, Path.GetFileName(app.FilePath)); appDataNode.AddAttribute(XmlAttributeNameOfPlatform, app.Platform); appDataNode.AddAttribute(XmlAttributeNameOfAppGuid, app.AppGuid); appDataNode.AddAttribute(XmlAttributeNameOfBuildDate, app.BuildDate); appDataNode.AddAttribute(XmlAttributeNameOfSolutionFilePath, app.SolutionFilePath); storageData.AddChild(appDataNode); UpdateStorageDataInSettings(); }
private void SaveBuiltApp(AppInfo appInfo, byte[] appData) { try { if (!Directory.Exists(AppStorageDirectory)) Directory.CreateDirectory(AppStorageDirectory); // ncrunch: no coverage string appSavePath = Path.Combine(AppStorageDirectory, Path.GetFileName(appInfo.FilePath)); File.WriteAllBytes(appSavePath, appData); } catch (Exception ex) { throw new SavingBuiltAppFailed(ex); } }
private void LaunchApp(AppInfo appInfo, Device device) { try { TryLaunchApp(appInfo, device); } catch (Device.StartApplicationFailedOnDevice ex) { AppInfoExtensions.LogStartingAppFailed(appInfo, ex.DeviceName); } }
protected override void InstallApp(AppInfo app) { }
protected abstract void LaunchApp(AppInfo app);
private void TriggerBuiltAppRecieved(AppInfo appInfo, byte[] appData) { if (BuiltAppRecieved != null) BuiltAppRecieved(appInfo, appData); }
private void OnRebuildAppClicked(object rebuildButton, RoutedEventArgs e) { AppInfo boundApp = GetBoundApp(rebuildButton); viewModel.RequestRebuild(boundApp); }
protected override void UninstallApp(AppInfo app) { File.Delete(app.FilePath); }
public override bool IsAppInstalled(AppInfo app) { return(File.Exists(app.FilePath)); }
public InstallationFailedOnDevice(Device device, AppInfo app) : base(app.Name + " on " + device) { }