private void DoDebuggingGUI()
        {
            GUILayout.Label("Developer Mode is on, showing debugging buttons:", EditorStyles.boldLabel);
            EditorGUILayout.BeginHorizontal(AndroidLogcatStyles.toolbar);
            if (GUILayout.Button("Reload Me", AndroidLogcatStyles.toolbarButton))
            {
                EditorUtility.RequestScriptReload();
            }

            if (GUILayout.Button("AutoSelect " + AutoSelectPackage.ToString(), AndroidLogcatStyles.toolbarButton))
            {
                AutoSelectPackage = true;
            }

            if (GUILayout.Button("Stop logcat ", AndroidLogcatStyles.toolbarButton))
            {
                StopLogCat();
            }

            if (GUILayout.Button("Add Log lines", AndroidLogcatStyles.toolbarButton))
            {
                for (int i = 0; i < 7000; i++)
                    m_LogEntries.Add(new AndroidLogcat.LogEntry() { processId = i, message = "Dummy", tag = "sdsd" });
                Repaint();
            }

            if (GUILayout.Button("Remove All Log Lines", AndroidLogcatStyles.toolbarButton))
            {
                m_LogEntries.RemoveAt(0);
                Repaint();
            }
            EditorGUILayout.EndHorizontal();
        }
        private void DoDebuggingGUI()
        {
            GUILayout.Label("Developer Mode is on, showing debugging buttons:", EditorStyles.boldLabel);
            EditorGUILayout.BeginHorizontal(AndroidLogcatStyles.toolbar);

            if (GUILayout.Button("Reload Me", AndroidLogcatStyles.toolbarButton))
            {
#if UNITY_2019_3_OR_NEWER
                EditorUtility.RequestScriptReload();
#else
                UnityEditorInternal.InternalEditorUtility.RequestScriptReload();
#endif
            }


            if (GUILayout.Button("AutoSelect " + AutoSelectPackage.ToString(), AndroidLogcatStyles.toolbarButton))
            {
                AutoSelectPackage = true;
            }

            if (GUILayout.Button("Add Log lines", AndroidLogcatStyles.toolbarButton))
            {
                int count   = 10000;
                var entries = new List <LogcatEntry>(count);
                for (int i = 0; i < count; i++)
                {
                    entries.Add(new LogcatEntry("Dummy " + UnityEngine.Random.Range(0, int.MaxValue))
                    {
                        processId = m_LogEntries.Count + i, tag = "sdsd"
                    });
                }
                OnNewLogEntryAdded(entries);
                Repaint();
            }

            if (GUILayout.Button("Remove Log Line", AndroidLogcatStyles.toolbarButton))
            {
                if (m_LogEntries.Count > 0)
                {
                    RemoveMessages(1);
                }
                Repaint();
            }

            // Have a sane number which represents that we cannot keep up with async items in queue
            // Usually this indicates a bug, since async operations starts being more and more delayed
            const int kMaxAsyncItemsInQueue = 100;
            var       cannotKeepUp          = m_Runtime.Dispatcher.AsyncOperationsInQueue > kMaxAsyncItemsInQueue;
            var       style   = cannotKeepUp ? AndroidLogcatStyles.errorStyle : AndroidLogcatStyles.infoStyle;
            var       message = "Async Operation In Queue: " + m_Runtime.Dispatcher.AsyncOperationsInQueue + ", Executed: " + m_Runtime.Dispatcher.AsyncOperationsExecuted;
            if (cannotKeepUp)
            {
                message += " (CAN'T KEEP UP!!!!)";
            }
            GUILayout.Label(message, style);
            EditorGUILayout.EndHorizontal();
        }
        private void DoDebuggingGUI()
        {
            GUILayout.Label("Developer Mode is on, showing debugging buttons:", EditorStyles.boldLabel);
            EditorGUILayout.BeginHorizontal(AndroidLogcatStyles.toolbar);

            if (GUILayout.Button("Reload Me", AndroidLogcatStyles.toolbarButton))
            {
#if UNITY_2019_3_OR_NEWER
                EditorUtility.RequestScriptReload();
#else
                UnityEditorInternal.InternalEditorUtility.RequestScriptReload();
#endif
            }


            if (GUILayout.Button("AutoSelect " + AutoSelectPackage.ToString(), AndroidLogcatStyles.toolbarButton))
            {
                AutoSelectPackage = true;
            }

            if (GUILayout.Button("Stop logcat ", AndroidLogcatStyles.toolbarButton))
            {
                StopLogCat();
            }

            if (GUILayout.Button("Add Log lines", AndroidLogcatStyles.toolbarButton))
            {
                int count   = 10000;
                var entries = new List <AndroidLogcat.LogEntry>(count);
                for (int i = 0; i < count; i++)
                {
                    entries.Add(new AndroidLogcat.LogEntry()
                    {
                        processId = m_LogEntries.Count + i, message = "Dummy " + UnityEngine.Random.Range(0, int.MaxValue), tag = "sdsd"
                    });
                }
                OnNewLogEntryAdded(entries);
                Repaint();
            }

            if (GUILayout.Button("Remove Log Line", AndroidLogcatStyles.toolbarButton))
            {
                if (m_LogEntries.Count > 0)
                {
                    RemoveMessages(1);
                }
                Repaint();
            }
            EditorGUILayout.EndHorizontal();
        }