private static IAndroidLogcatTaskResult ExecuteScreenCapture(IAndroidLogcatTaskInput input)
        {
            var    i = (AndroidLogcatCaptureScreenCaptureInput)input;
            string error;
            var    path = AndroidLogcatUtilities.CaptureScreen(i.adb, i.deviceId, out error);

            return(new AndroidLogcatCaptureScreenCaptureResult()
            {
                imagePath = path,
                error = error
            });
        }
        internal void OnGUI()
        {
            if (m_ApplySettings)
            {
                ApplySettings(m_Runtime.Settings);
                m_ApplySettings = false;
            }

            EditorGUILayout.BeginVertical();
            EditorGUILayout.BeginHorizontal(AndroidLogcatStyles.toolbar);
            {
                ShowDuringBuildRun = GUILayout.Toggle(ShowDuringBuildRun, kAutoRunText, AndroidLogcatStyles.toolbarButton);

                HandleSelectedDeviceField();

                EditorGUI.BeginDisabledGroup(!m_StatusBar.Connected);
                HandleSelectedPackage();

                HandleSearchField();

                SetRegex(GUILayout.Toggle(m_FilterIsRegularExpression, kRegexText, AndroidLogcatStyles.toolbarButton));

                EditorGUI.EndDisabledGroup();

                GUILayout.Space(kSpace);

                if (GUILayout.Button(kReconnect, AndroidLogcatStyles.toolbarButton))
                {
                    RestartLogCat();
                }
                if (GUILayout.Button(kDisconnect, AndroidLogcatStyles.toolbarButton))
                {
                    StopLogCat();
                }

                GUILayout.Space(kSpace);
                if (GUILayout.Button(kClearButtonText, AndroidLogcatStyles.toolbarButton))
                {
                    ClearLogCat();
                    Repaint();
                }

                GUILayout.Space(kSpace);
                if (GUILayout.Button(kCaptureScreenText, AndroidLogcatStyles.toolbarButton))
                {
                    var screenFilePath = AndroidLogcatUtilities.CaptureScreen(GetCachedAdb(), m_SelectedDeviceId);
                    if (!string.IsNullOrEmpty(screenFilePath))
                    {
                        AndroidLogcatScreenCaptureWindow.Show(screenFilePath);
                    }
                    Repaint();
                }

                GUILayout.Space(kSpace);
                if (GUILayout.Button(kOpenTerminal, AndroidLogcatStyles.toolbarButton))
                {
                    AndroidLogcatUtilities.OpenTerminal(Path.GetDirectoryName(GetCachedAdb().GetADBPath()));
                }
                GUILayout.Space(kSpace);
                if (GUILayout.Button(kStacktraceUtility, AndroidLogcatStyles.toolbarButton))
                {
                    AndroidLogcatStacktraceWindow.ShowStacktraceWindow();
                }
            }
            EditorGUILayout.EndHorizontal();

            if (Unsupported.IsDeveloperMode())
            {
                DoDebuggingGUI();
            }

            if (DoMessageView())
            {
                Repaint();
            }

            if (m_StatusBar != null)
            {
                m_StatusBar.DoGUI();
            }

            EditorGUILayout.EndVertical();
        }