private void PlayScriptImg_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (!this.ParentWindow.mIsMacroPlaying) { if (MacroGraph.CheckIfDependentMacrosAreAvailable(this.mRecording)) { this.ToggleScriptPlayPauseUi(true); this.ParentWindow.mCommonHandler.PlayMacroScript(this.mRecording); ClientStats.SendMiscellaneousStatsAsync("MacroOperations", RegistryManager.Instance.UserGuid, RegistryManager.Instance.ClientVersion, "macro_play", "macro_popup", this.mRecording.RecordingType.ToString(), string.IsNullOrEmpty(this.mRecording.MacroId) ? "local" : "community", (string)null, (string)null, "Android"); this.ParentWindow.mCommonHandler.HideMacroRecorderWindow(); } else { CustomMessageWindow customMessageWindow = new CustomMessageWindow(); customMessageWindow.Owner = (Window)this.mMacroRecorderWindow; BlueStacksUIBinding.Bind(customMessageWindow.BodyTextBlock, "STRING_ERROR_IN_MERGE_MACRO", ""); customMessageWindow.AddButton(ButtonColors.Blue, "STRING_OK", (EventHandler)((o, evt) => {}), (string)null, false, (object)null, true); customMessageWindow.ShowDialog(); } } else { this.ParentWindow.mCommonHandler.AddToastPopup((Window)this.mMacroRecorderWindow, LocaleStrings.GetLocalizedString("STRING_STOP_THE_SCRIPT", ""), 4.0, true); } }
internal void InitMacroPlayback(string macroPath) { this.mWasMacroPlaybackStopped = false; MacroGraph.ReCreateMacroGraphInstance(); string macroName = Path.GetFileNameWithoutExtension(macroPath); this.MacroToPlay = MacroGraph.Instance.Vertices.Cast <MacroRecording>().Where <MacroRecording>((Func <MacroRecording, bool>)(macro_ => string.Equals(string.IsNullOrEmpty(macro_.FileName) ? macro_.Name : macro_.FileName, macroName, StringComparison.InvariantCultureIgnoreCase))).FirstOrDefault <MacroRecording>(); if (this.MacroToPlay.RecordingType == RecordingTypes.MultiRecording) { foreach (MacroRecording allLeaf in MacroGraph.Instance.GetAllLeaves(this.MacroToPlay)) { MacroRecording leafMacro = allLeaf; MacroRecording macroRecording = MacroGraph.Instance.Vertices.Cast <MacroRecording>().Where <MacroRecording>((Func <MacroRecording, bool>)(marco_ => marco_.Equals(leafMacro))).FirstOrDefault <MacroRecording>(); if (macroRecording.RecordingType == RecordingTypes.SingleRecording) { InputMapper.Instance.InitMacroPlayback(Path.Combine(RegistryStrings.MacroRecordingsFolderPath, (string.IsNullOrEmpty(macroRecording.FileName) ? macroRecording.Name.ToLower() : macroRecording.FileName) + ".json")); } } } else { InputMapper.Instance.InitMacroPlayback(macroPath); } }
private void ImportBtn_Click(object sender, RoutedEventArgs e) { int num = 0; bool flag1 = false; bool flag2 = true; List <MacroRecording> newlyAddedMacro = new List <MacroRecording>(); foreach (ImportMacroScriptsControl child in this.mScriptsStackPanel.Children) { bool?isChecked = child.mContent.IsChecked; bool flag3 = true; if (isChecked.GetValueOrDefault() == flag3 & isChecked.HasValue) { if (child.mImportName.Text.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0) { string path = string.Format((IFormatProvider)CultureInfo.InvariantCulture, "{0} {1} {2}", (object)LocaleStrings.GetLocalizedString("STRING_MACRO_NAME_ERROR", ""), (object)Environment.NewLine, (object)"\\ / : * ? \" < > |"); BlueStacksUIBinding.Bind(child.mWarningMsg, path, ""); child.mImportName.InputTextValidity = TextValidityOptions.Error; if (child.mImportName.IsEnabled) { child.mWarningMsg.Visibility = Visibility.Visible; } flag2 = false; } else if (((IEnumerable <string>)Constants.ReservedFileNamesList).Contains <string>(child.mImportName.Text.Trim().ToLower(CultureInfo.InvariantCulture))) { BlueStacksUIBinding.Bind(child.mWarningMsg, "STRING_MACRO_FILE_NAME_ERROR", ""); child.mImportName.InputTextValidity = TextValidityOptions.Error; if (child.mImportName.IsEnabled) { child.mWarningMsg.Visibility = Visibility.Visible; } flag2 = false; } else if (!this.CheckIfEditedMacroNameIsAllowed(child.mImportName.Text, child) && child.IsScriptInRenameMode()) { if (!string.IsNullOrEmpty(child.mImportName.Text.Trim())) { BlueStacksUIBinding.Bind(child.mWarningMsg, LocaleStrings.GetLocalizedString("STRING_DUPLICATE_MACRO_NAME_WARNING", ""), ""); } child.mImportName.InputTextValidity = TextValidityOptions.Error; if (child.mImportName.IsEnabled) { child.mWarningMsg.Visibility = Visibility.Visible; } flag2 = false; } else if (child.mDependentScriptsPanel.Visibility == Visibility.Visible && child.mDependentScriptsPanel.Children.Count > 0) { string path = this.CheckIfDependentScriptsHaveInvalidName(child); if (path != "TEXT_VALID") { BlueStacksUIBinding.Bind(child.mWarningMsg, path, ""); child.mImportName.InputTextValidity = TextValidityOptions.Error; flag2 = false; } else { child.mImportName.InputTextValidity = TextValidityOptions.Success; child.mWarningMsg.Visibility = Visibility.Collapsed; } } else { child.mImportName.InputTextValidity = TextValidityOptions.Success; child.mWarningMsg.Visibility = Visibility.Collapsed; } flag1 = true; } ++num; } if (!flag1) { this.ParentWindow.mCommonHandler.AddToastPopup((Window)this, LocaleStrings.GetLocalizedString("STRING_NO_IMPORT_MACRO_SELECTED", ""), 4.0, true); } else { if (!flag2) { return; } if (!Directory.Exists(RegistryStrings.MacroRecordingsFolderPath)) { Directory.CreateDirectory(RegistryStrings.MacroRecordingsFolderPath); } foreach (ImportMacroScriptsControl child1 in this.mScriptsStackPanel.Children) { bool?isChecked = child1.mContent.IsChecked; if (isChecked.GetValueOrDefault()) { MacroRecording record = this.mBoxToRecordingDict[child1]; isChecked = child1.mReplaceExistingBtn.IsChecked; string str; if (isChecked.HasValue) { isChecked = child1.mReplaceExistingBtn.IsChecked; if (isChecked.Value) { str = child1.mContent.Content.ToString(); goto label_40; } } str = child1.mImportName.Text.Trim(); label_40: string newScript = str; MacroRecording existingMacro = MacroGraph.Instance.Vertices.Cast <MacroRecording>().Where <MacroRecording>((Func <MacroRecording, bool>)(m => string.Equals(m.Name, newScript, StringComparison.InvariantCultureIgnoreCase))).FirstOrDefault <MacroRecording>(); if (existingMacro != null) { if (existingMacro.Parents.Count > 0) { for (int index = existingMacro.Parents.Count - 1; index >= 0; index--) { MacroRecording macroRecording = MacroGraph.Instance.Vertices.Cast <MacroRecording>().Where <MacroRecording>((Func <MacroRecording, bool>)(macro => macro.Equals((object)existingMacro.Parents[index]))).FirstOrDefault <MacroRecording>(); this.mOperationWindow.FlattenRecording(existingMacro.Parents[index] as MacroRecording, false); CommonHandlers.SaveMacroJson(existingMacro.Parents[index] as MacroRecording, (existingMacro.Parents[index] as MacroRecording).Name + ".json"); foreach (SingleMacroControl child2 in this.mOperationWindow.mScriptsStackPanel.Children) { if (child2.mRecording.Name.ToLower(CultureInfo.InvariantCulture).Trim() == macroRecording.Name.ToLower(CultureInfo.InvariantCulture).Trim()) { child2.mScriptSettingsImg.ImageName = "macro_settings"; } } MacroGraph.Instance.DeLinkMacroChild((BiDirectionalVertex <MacroRecording>)(existingMacro.Parents[index] as MacroRecording)); } } this.DeleteMacroScript(existingMacro); } record.Name = newScript; if (record.RecordingType == RecordingTypes.MultiRecording) { this.mOperationWindow.ImportMultiMacro(record, this.mOperationWindow.mImportMultiMacroAsUnified.Value, newlyAddedMacro, this.GetDictionaryOfNewNamesForDependentRecordings(record.Name)); } else { CommonHandlers.SaveMacroJson(record, record.Name.ToLower(CultureInfo.InvariantCulture).Trim() + ".json"); MacroGraph.Instance.AddVertex((BiDirectionalVertex <MacroRecording>)record); newlyAddedMacro.Add(record); } } } foreach (MacroRecording macro in newlyAddedMacro) { MacroGraph.LinkMacroChilds(macro); } this.mOperationWindow.mNewlyAddedMacrosList.AddRange((IEnumerable <MacroRecording>)newlyAddedMacro); this.ParentWindow.MacroRecorderWindow.mRenamingMacrosList.Clear(); this.Close(); } }