public void CopyLogItem_OnClick(object sender, RoutedEventArgs e)
        {
            LogcatItem item = LogcatList.SelectedItem as LogcatItem;

            if (item == null)
            {
                return;
            }
            Clipboard.SetText(item.RawContent);
            MessageBox.Show("Logcat Copied");
        }
        public void CopyLogItem_OnClick(object sender, RoutedEventArgs e)
        {
            if ((LogcatList.SelectedItems == null) || (LogcatList.SelectedItems.Count == 0))
            {
                return;
            }
            string contents = "";

            for (int i = 0; i < LogcatList.SelectedItems.Count; i++)
            {
                LogcatItem item = LogcatList.SelectedItems[i] as LogcatItem;
                contents += item.RawContent;
                if (i < LogcatList.SelectedItems.Count - 1)
                {
                    contents += "\n";
                }
            }
            Clipboard.SetText(contents);
            MessageBox.Show("Logcat Copied");
        }
 private void TestFilter_OnClick(object sender, RoutedEventArgs e)
 {
     if (LogcatList.Items.Filter == null)
     {
         LogcatList.Items.Filter = (item) =>
         {
             LogcatItem log = item as LogcatItem;
             if (log == null)
             {
                 return(false);
             }
             if (log.LevelToken == LogcatItem.Level.Debug)
             {
                 return(true);
             }
             return(false);
         };
     }
     else
     {
         LogcatList.Items.Filter = null;
     }
 }
        void OnLogcatOutput(LogcatItem.Level level_token, string time_token, int pid_token,
                            string tag_token, string msg_token, string raw_msg)
        {
            LogcatItem logcat_item = new LogcatItem()
            {
                LevelToken = level_token,
                TimeToken  = time_token,
                PidToken   = pid_token,
                TagToken   = tag_token,
                TextToken  = msg_token,
                RawContent = raw_msg
            };

            Dispatcher.InvokeAsync(() =>
            {
                LogsToView.Add(logcat_item);
                if (LogsToView.Count > LogLimitCount)
                {
                    LogsToView.RemoveAt(0);
                }
            });

            /*lock (DeferredLogs)
             * {
             *  DeferredLogs.Add(new LogcatItem()
             *  {
             *      LevelToken = level_token,
             *      TimeToken = time_token,
             *      PidToken = pid_token,
             *      TagToken = tag_token,
             *      TextToken = msg_token
             *  });
             * }
             * if (DeferredLogs.Count < 1) return;
             * List<LogcatItem> collectLogs;
             * lock (DeferredLogs)
             * {
             *  collectLogs = new List<LogcatItem>(DeferredLogs);
             *  DeferredLogs.Clear();
             * }
             * Dispatcher.InvokeAsync(() =>
             * {
             *  foreach (var log_item in collectLogs)
             *  {
             *      LogsToView.Add(log_item);
             *  }
             * });
             *  /*bool needRefresh = false;
             *  foreach (LogcatItem log_item in collectLogs)
             *  {
             *      if (LogcatList.Items.Count > LogLimitCount)
             *      {
             *          LogcatList.Items.RemoveAt(0);
             *      }
             *      LogcatList.Items.Add(log_item);
             *      if (LogcatList.Items.Filter != null)
             *      {
             *          if (!LogcatList.Items.Filter(log_item))
             *          {
             *              needRefresh = true;
             *          }
             *      }
             *  }
             *  if (needRefresh) LogcatList.Items.Refresh();*/
            /*if ((IsAutoScroll) && (LogcatList.Items.Count > 0))
             * {
             *  LogcatList.SelectedIndex = LogcatList.Items.Count - 1;
             *  LogcatList.ScrollIntoView(LogcatList.SelectedItem);
             * }
             * /*if (LogcatList.Items.Count > LogLimitCount)
             * {
             *  LogcatList.Items.RemoveAt(0);
             * }
             * LogcatItem log_item = new LogcatItem()
             * {
             *  LevelToken = level_token,
             *  TimeToken = time_token,
             *  PidToken = pid_token,
             *  TagToken = tag_token,
             *  TextToken = msg_token
             * };
             * LogcatList.Items.Add(log_item);
             * if (LogcatList.Items.Filter != null)
             * {
             *  if (!LogcatList.Items.Filter(log_item))
             *  {
             *      LogcatList.Items.Refresh();
             *  }
             * }*/
            //LogcatList.Items.Refresh();
            //});
        }