public async Task LaunchPlayer(Core.Models.Program program, bool isLaunchedFromTile) { await ShowSplashScreen(program.Name); var zipService = new ZipService(); var tempFolder = ApplicationData.Current.TemporaryFolder; var file = await tempFolder.CreateFileAsync(TempProgramName, CreationCollisionOption.ReplaceExisting); var stream = await file.OpenStreamForWriteAsync(); await zipService.ZipCatrobatPackage(stream, program.BasePath); var options = new Windows.System.LauncherOptions { DisplayApplicationPicker = false }; //await project.Save(); ??? TODO: this was in the previous version of catrobat --> do we need to save the project at this point? await LaunchPlayer(program.Name, isLaunchedFromTile); // TODO: manage closing/relaunching of the Player // TODO: review ...LaunchFileAsync (1 line underneath) --> seems to be that it never finishes //bool success = await Windows.System.Launcher.LaunchFileAsync(file, options); //if (success) //{ // // File launch success //} //else //{ // // File launch failed //} }
public async Task<Stream> CreateProgramPackageForExport(string programName) { var streamResult = new MemoryStream(); var tempPath = Path.Combine(StorageConstants.TempProgramExportPath, programName); var programFolderPath = Path.Combine(StorageConstants.ProgramsPath, programName); var programCodePath = Path.Combine(tempPath, StorageConstants.ProgramCodePath); using (var storage = StorageSystem.GetStorage()) { await storage.DeleteDirectoryAsync(tempPath); await storage.CopyDirectoryAsync(programFolderPath, tempPath); var programCode = await storage.ReadTextFileAsync(programCodePath); var converterResult = await CatrobatVersionConverter. ConvertToXmlVersion(programCode, XmlConstants.TargetOutputVersion); if (converterResult.Error != CatrobatVersionConverter.VersionConverterStatus.NoError) return null; } var zipService = new ZipService(); await zipService.ZipCatrobatPackage(streamResult, tempPath); streamResult.Seek(0, SeekOrigin.Begin); return streamResult; }
public async Task <Stream> CreateProgramPackageForExport(string programName) { var streamResult = new MemoryStream(); var tempPath = Path.Combine(StorageConstants.TempProgramExportPath, programName); var programFolderPath = Path.Combine(StorageConstants.ProgramsPath, programName); var programCodePath = Path.Combine(tempPath, StorageConstants.ProgramCodePath); using (var storage = StorageSystem.GetStorage()) { await storage.DeleteDirectoryAsync(tempPath); await storage.CopyDirectoryAsync(programFolderPath, tempPath); var programCode = await storage.ReadTextFileAsync(programCodePath); var converterResult = await CatrobatVersionConverter. ConvertToXmlVersion(programCode, XmlConstants.TargetOutputVersion); if (converterResult.Error != CatrobatVersionConverter.VersionConverterStatus.NoError) { return(null); } } var zipService = new ZipService(); await zipService.ZipCatrobatPackage(streamResult, tempPath); streamResult.Seek(0, SeekOrigin.Begin); return(streamResult); }