OSDN Git Service

UserStreams関係の機能を削除
authorKimura Youichi <kim.upsilon@bucyou.net>
Fri, 28 Jan 2022 20:25:55 +0000 (05:25 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 29 Jan 2022 15:03:01 +0000 (00:03 +0900)
31 files changed:
OpenTween.Tests/Api/TwitterApiTest.cs
OpenTween/Api/DataModel/TwitterStreamEvent.cs [deleted file]
OpenTween/Api/DataModel/TwitterStreamMessage.cs
OpenTween/Api/TwitterApi.cs
OpenTween/Api/TwitterStreamObservable.cs
OpenTween/AppendSettingDialog.cs
OpenTween/EventViewerDialog.Designer.cs [deleted file]
OpenTween/EventViewerDialog.cs [deleted file]
OpenTween/EventViewerDialog.en.resx [deleted file]
OpenTween/EventViewerDialog.resx [deleted file]
OpenTween/Growl.cs
OpenTween/Models/TabInformations.cs
OpenTween/MyCommon.cs
OpenTween/OpenTween.csproj
OpenTween/Properties/Resources.Designer.cs
OpenTween/Properties/Resources.en.resx
OpenTween/Properties/Resources.resx
OpenTween/Resources/ChangeLog.txt
OpenTween/Setting/Panel/GetPeriodPanel.Designer.cs
OpenTween/Setting/Panel/GetPeriodPanel.cs
OpenTween/Setting/Panel/GetPeriodPanel.en.resx
OpenTween/Setting/Panel/GetPeriodPanel.resx
OpenTween/Setting/Panel/NotifyPanel.Designer.cs
OpenTween/Setting/Panel/NotifyPanel.cs
OpenTween/Setting/Panel/NotifyPanel.en.resx
OpenTween/Setting/Panel/NotifyPanel.resx
OpenTween/Setting/SettingCommon.cs
OpenTween/Tween.Designer.cs
OpenTween/Tween.cs
OpenTween/Tween.resx
OpenTween/Twitter.cs

index 026ec4b..da1ebc3 100644 (file)
@@ -1298,28 +1298,5 @@ namespace OpenTween.Api
 
             mock.VerifyAll();
         }
-
-        [Fact]
-        public async Task UserStreams_Test()
-        {
-            var mock = new Mock<IApiConnection>();
-            mock.Setup(x =>
-                x.GetStreamingStreamAsync(
-                    new Uri("https://userstream.twitter.com/1.1/user.json", UriKind.Absolute),
-                    new Dictionary<string, string> {
-                            { "replies", "all" },
-                            { "track", "OpenTween" },
-                    })
-            )
-            .ReturnsAsync(new MemoryStream());
-
-            using var twitterApi = new TwitterApi(ApiKey.Create("fake_consumer_key"), ApiKey.Create("fake_consumer_secret"));
-            twitterApi.apiConnection = mock.Object;
-
-            var observable = twitterApi.UserStreams(replies: "all", track: "OpenTween");
-            await observable.ForEachAsync(x => { });
-
-            mock.VerifyAll();
-        }
     }
 }
diff --git a/OpenTween/Api/DataModel/TwitterStreamEvent.cs b/OpenTween/Api/DataModel/TwitterStreamEvent.cs
deleted file mode 100644 (file)
index e2aa6a2..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-// OpenTween - Client of Twitter
-// Copyright (c) 2014 kim_upsilon (@kim_upsilon) <https://upsilo.net/~upsilon/>
-// All rights reserved.
-//
-// This file is part of OpenTween.
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by the Free
-// Software Foundation; either version 3 of the License, or (at your option)
-// any later version.
-//
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-// for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program. If not, see <http://www.gnu.org/licenses/>, or write to
-// the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-// Boston, MA 02110-1301, USA.
-
-#nullable enable annotations
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace OpenTween.Api.DataModel
-{
-    [DataContract]
-    public class TwitterStreamEvent
-    {
-        [DataMember(Name = "target")]
-        public TwitterUser Target { get; set; }
-
-        [DataMember(Name = "source")]
-        public TwitterUser Source { get; set; }
-
-        [DataMember(Name = "event")]
-        public string Event { get; set; }
-
-        [DataMember(Name = "created_at")]
-        public string CreatedAt { get; set; }
-
-        /// <exception cref="SerializationException"/>
-        public static TwitterStreamEvent ParseJson(string json)
-            => MyCommon.CreateDataFromJson<TwitterStreamEvent>(json);
-    }
-
-    [DataContract]
-    public class TwitterStreamEvent<T> : TwitterStreamEvent
-    {
-        [DataMember(Name = "target_object")]
-        public T TargetObject { get; set; }
-
-        /// <exception cref="SerializationException"/>
-        public static new TwitterStreamEvent<T> ParseJson(string json)
-            => MyCommon.CreateDataFromJson<TwitterStreamEvent<T>>(json);
-    }
-}
index 1bf42b1..f2b46a9 100644 (file)
@@ -40,67 +40,6 @@ namespace OpenTween.Api.DataModel
             => new StreamMessageStatus(TwitterStatusCompat.ParseJson(json));
     }
 
-    public class StreamMessageEvent : ITwitterStreamMessage
-    {
-        public TwitterStreamEvent Event { get; }
-        public string Json { get; }
-
-        public StreamMessageEvent(TwitterStreamEvent eventData, string json)
-        {
-            this.Event = eventData;
-            this.Json = json;
-        }
-
-        public TwitterStreamEvent<T> ParseTargetObjectAs<T>()
-            => TwitterStreamEvent<T>.ParseJson(this.Json);
-
-        public static StreamMessageEvent ParseJson(string json)
-            => new StreamMessageEvent(TwitterStreamEvent.ParseJson(json), json);
-    }
-
-    [DataContract]
-    public class StreamMessageDirectMessage : ITwitterStreamMessage
-    {
-        [DataMember(Name = "direct_message")]
-        public TwitterDirectMessage DirectMessage { get; set; }
-
-        public static StreamMessageDirectMessage ParseJson(string json)
-            => MyCommon.CreateDataFromJson<StreamMessageDirectMessage>(json);
-    }
-
-    [DataContract]
-    public class StreamMessageDelete : ITwitterStreamMessage
-    {
-        [DataContract]
-        public class DeletedId
-        {
-            [DataMember(Name = "id")]
-            public long Id { get; set; }
-        }
-
-        [DataMember(Name = "direct_message", IsRequired = false)]
-        public DeletedId? DirectMessage { get; set; }
-
-        [DataMember(Name = "status", IsRequired = false)]
-        public DeletedId? Status { get; set; }
-
-        public static StreamMessageDelete ParseJson(string json)
-            => MyCommon.CreateDataFromJson<StreamMessageDelete>(json);
-    }
-
-    [DataContract]
-    public class StreamMessageScrubGeo : ITwitterStreamMessage
-    {
-        [DataMember(Name = "user_id")]
-        public long UserId { get; set; }
-
-        [DataMember(Name = "up_to_status_id")]
-        public long UpToStatusId { get; set; }
-
-        public static StreamMessageScrubGeo ParseJson(string json)
-            => MyCommon.CreateDataFromJson<StreamMessageScrubGeo>(json);
-    }
-
     public class StreamMessageKeepAlive : ITwitterStreamMessage
     {
     }
index 593c3d6..928de6f 100644 (file)
@@ -779,22 +779,6 @@ namespace OpenTween.Api
             return this.Connection.PostJsonAsync(endpoint, json);
         }
 
-        public TwitterStreamObservable UserStreams(string? replies = null, string? track = null)
-        {
-            var endpoint = new Uri("https://userstream.twitter.com/1.1/user.json");
-            var param = new Dictionary<string, string>();
-
-            if (!MyCommon.IsNullOrEmpty(replies))
-                param["replies"] = replies;
-            if (!MyCommon.IsNullOrEmpty(track))
-                param["track"] = track;
-
-            Task<Stream> openStream()
-                => this.Connection.GetStreamingStreamAsync(endpoint, param);
-
-            return new TwitterStreamObservable(openStream);
-        }
-
         public OAuthEchoHandler CreateOAuthEchoHandler(Uri authServiceProvider, Uri? realm = null)
             => ((TwitterApiConnection)this.Connection).CreateOAuthEchoHandler(authServiceProvider, realm);
 
index d9c83fb..815f06d 100644 (file)
@@ -97,18 +97,6 @@ namespace OpenTween.Api
                 if (xElm.Element("text") != null)
                     return StreamMessageStatus.ParseJson(line);
 
-                if (xElm.Element("delete") != null)
-                    return StreamMessageDelete.ParseJson(line);
-
-                if (xElm.Element("event") != null)
-                    return StreamMessageEvent.ParseJson(line);
-
-                if (xElm.Element("direct_message") != null)
-                    return StreamMessageDirectMessage.ParseJson(line);
-
-                if (xElm.Element("scrub_geo") != null)
-                    return StreamMessageScrubGeo.ParseJson(line);
-
                 return new StreamMessageUnknown(line);
             }
             catch (XmlException)
index b7dc66b..3cd416d 100644 (file)
@@ -299,7 +299,7 @@ namespace OpenTween
         }
 
         private void CheckPostAndGet_CheckedChanged(object sender, EventArgs e)
-            => this.GetPeriodPanel.LabelPostAndGet.Visible = this.GetPeriodPanel.CheckPostAndGet.Checked && !tw.UserStreamActive;
+            => this.GetPeriodPanel.LabelPostAndGet.Visible = this.GetPeriodPanel.CheckPostAndGet.Checked;
 
         private void Setting_Shown(object sender, EventArgs e)
         {
@@ -310,8 +310,7 @@ namespace OpenTween
             } while (!this.IsHandleCreated);
             this.TopMost = this.PreviewPanel.CheckAlwaysTop.Checked;
 
-            this.GetPeriodPanel.LabelPostAndGet.Visible = this.GetPeriodPanel.CheckPostAndGet.Checked && !tw.UserStreamActive;
-            this.GetPeriodPanel.LabelUserStreamActive.Visible = tw.UserStreamActive;
+            this.GetPeriodPanel.LabelPostAndGet.Visible = this.GetPeriodPanel.CheckPostAndGet.Checked;
         }
 
         private void OpenUrl(string url)
@@ -358,7 +357,6 @@ namespace OpenTween
 
     public class IntervalChangedEventArgs : EventArgs
     {
-        public bool UserStream;
         public bool Timeline;
         public bool Reply;
         public bool DirectMessage;
@@ -368,7 +366,6 @@ namespace OpenTween
 
         public static IntervalChangedEventArgs ResetAll => new IntervalChangedEventArgs
         {
-            UserStream = true,
             Timeline = true,
             Reply = true,
             DirectMessage = true,
diff --git a/OpenTween/EventViewerDialog.Designer.cs b/OpenTween/EventViewerDialog.Designer.cs
deleted file mode 100644 (file)
index 75fc263..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-namespace OpenTween
-{
-    partial class EventViewerDialog
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EventViewerDialog));
-            this.SaveLogButton = new System.Windows.Forms.Button();
-            this.CheckBoxFilter = new System.Windows.Forms.CheckBox();
-            this.TabPageAll = new System.Windows.Forms.TabPage();
-            this.EventList = new System.Windows.Forms.ListView();
-            this.ColumnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-            this.ColumnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-            this.ColumnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-            this.ColumnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-            this.CheckRegex = new System.Windows.Forms.CheckBox();
-            this.TextBoxKeyword = new System.Windows.Forms.TextBox();
-            this.StatusLabelCount = new System.Windows.Forms.ToolStripStatusLabel();
-            this.OK_Button = new System.Windows.Forms.Button();
-            this.StatusStrip1 = new System.Windows.Forms.StatusStrip();
-            this.TabEventType = new System.Windows.Forms.TabControl();
-            this.ButtonRefresh = new System.Windows.Forms.Button();
-            this.CheckExcludeMyEvent = new System.Windows.Forms.CheckBox();
-            this.SaveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
-            this.TabPageAll.SuspendLayout();
-            this.StatusStrip1.SuspendLayout();
-            this.TabEventType.SuspendLayout();
-            this.SuspendLayout();
-            // 
-            // SaveLogButton
-            // 
-            resources.ApplyResources(this.SaveLogButton, "SaveLogButton");
-            this.SaveLogButton.Name = "SaveLogButton";
-            this.SaveLogButton.UseVisualStyleBackColor = true;
-            this.SaveLogButton.Click += new System.EventHandler(this.SaveLogButton_Click);
-            // 
-            // CheckBoxFilter
-            // 
-            resources.ApplyResources(this.CheckBoxFilter, "CheckBoxFilter");
-            this.CheckBoxFilter.Name = "CheckBoxFilter";
-            this.CheckBoxFilter.UseVisualStyleBackColor = true;
-            this.CheckBoxFilter.CheckedChanged += new System.EventHandler(this.TabEventType_SelectedIndexChanged);
-            // 
-            // TabPageAll
-            // 
-            this.TabPageAll.AccessibleRole = System.Windows.Forms.AccessibleRole.PageTab;
-            this.TabPageAll.Controls.Add(this.EventList);
-            resources.ApplyResources(this.TabPageAll, "TabPageAll");
-            this.TabPageAll.Name = "TabPageAll";
-            this.TabPageAll.Tag = "All";
-            this.TabPageAll.UseVisualStyleBackColor = true;
-            // 
-            // EventList
-            // 
-            this.EventList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.ColumnHeader1,
-            this.ColumnHeader2,
-            this.ColumnHeader3,
-            this.ColumnHeader4});
-            resources.ApplyResources(this.EventList, "EventList");
-            this.EventList.FullRowSelect = true;
-            this.EventList.Name = "EventList";
-            this.EventList.ShowItemToolTips = true;
-            this.EventList.UseCompatibleStateImageBehavior = false;
-            this.EventList.View = System.Windows.Forms.View.Details;
-            this.EventList.VirtualMode = true;
-            this.EventList.CacheVirtualItems += new System.Windows.Forms.CacheVirtualItemsEventHandler(this.EventList_CacheVirtualItems);
-            this.EventList.RetrieveVirtualItem += new System.Windows.Forms.RetrieveVirtualItemEventHandler(this.EventList_RetrieveVirtualItem);
-            this.EventList.DoubleClick += new System.EventHandler(this.EventList_DoubleClick);
-            this.EventList.KeyDown += new System.Windows.Forms.KeyEventHandler(this.EventList_KeyDown);
-            // 
-            // ColumnHeader1
-            // 
-            resources.ApplyResources(this.ColumnHeader1, "ColumnHeader1");
-            // 
-            // ColumnHeader2
-            // 
-            resources.ApplyResources(this.ColumnHeader2, "ColumnHeader2");
-            // 
-            // ColumnHeader3
-            // 
-            resources.ApplyResources(this.ColumnHeader3, "ColumnHeader3");
-            // 
-            // ColumnHeader4
-            // 
-            resources.ApplyResources(this.ColumnHeader4, "ColumnHeader4");
-            // 
-            // CheckRegex
-            // 
-            resources.ApplyResources(this.CheckRegex, "CheckRegex");
-            this.CheckRegex.Name = "CheckRegex";
-            this.CheckRegex.UseVisualStyleBackColor = true;
-            // 
-            // TextBoxKeyword
-            // 
-            resources.ApplyResources(this.TextBoxKeyword, "TextBoxKeyword");
-            this.TextBoxKeyword.Name = "TextBoxKeyword";
-            this.TextBoxKeyword.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TextBoxKeyword_KeyPress);
-            // 
-            // StatusLabelCount
-            // 
-            this.StatusLabelCount.Name = "StatusLabelCount";
-            resources.ApplyResources(this.StatusLabelCount, "StatusLabelCount");
-            // 
-            // OK_Button
-            // 
-            resources.ApplyResources(this.OK_Button, "OK_Button");
-            this.OK_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-            this.OK_Button.Name = "OK_Button";
-            this.OK_Button.Click += new System.EventHandler(this.OK_Button_Click);
-            // 
-            // StatusStrip1
-            // 
-            this.StatusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.StatusLabelCount});
-            resources.ApplyResources(this.StatusStrip1, "StatusStrip1");
-            this.StatusStrip1.Name = "StatusStrip1";
-            // 
-            // TabEventType
-            // 
-            resources.ApplyResources(this.TabEventType, "TabEventType");
-            this.TabEventType.Controls.Add(this.TabPageAll);
-            this.TabEventType.Name = "TabEventType";
-            this.TabEventType.SelectedIndex = 0;
-            this.TabEventType.SelectedIndexChanged += new System.EventHandler(this.TabEventType_SelectedIndexChanged);
-            this.TabEventType.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.TabEventType_Selecting);
-            // 
-            // ButtonRefresh
-            // 
-            resources.ApplyResources(this.ButtonRefresh, "ButtonRefresh");
-            this.ButtonRefresh.Name = "ButtonRefresh";
-            this.ButtonRefresh.UseVisualStyleBackColor = true;
-            this.ButtonRefresh.Click += new System.EventHandler(this.ButtonRefresh_Click);
-            // 
-            // CheckExcludeMyEvent
-            // 
-            resources.ApplyResources(this.CheckExcludeMyEvent, "CheckExcludeMyEvent");
-            this.CheckExcludeMyEvent.Name = "CheckExcludeMyEvent";
-            this.CheckExcludeMyEvent.UseVisualStyleBackColor = true;
-            this.CheckExcludeMyEvent.CheckedChanged += new System.EventHandler(this.CheckExcludeMyEvent_CheckedChanged);
-            // 
-            // EventViewerDialog
-            // 
-            resources.ApplyResources(this, "$this");
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
-            this.CancelButton = this.OK_Button;
-            this.Controls.Add(this.SaveLogButton);
-            this.Controls.Add(this.CheckBoxFilter);
-            this.Controls.Add(this.CheckRegex);
-            this.Controls.Add(this.TextBoxKeyword);
-            this.Controls.Add(this.OK_Button);
-            this.Controls.Add(this.StatusStrip1);
-            this.Controls.Add(this.TabEventType);
-            this.Controls.Add(this.ButtonRefresh);
-            this.Controls.Add(this.CheckExcludeMyEvent);
-            this.DoubleBuffered = true;
-            this.Name = "EventViewerDialog";
-            this.ShowIcon = false;
-            this.ShowInTaskbar = false;
-            this.Shown += new System.EventHandler(this.EventViewerDialog_Shown);
-            this.TabPageAll.ResumeLayout(false);
-            this.StatusStrip1.ResumeLayout(false);
-            this.StatusStrip1.PerformLayout();
-            this.TabEventType.ResumeLayout(false);
-            this.ResumeLayout(false);
-            this.PerformLayout();
-
-        }
-
-        #endregion
-
-        internal System.Windows.Forms.Button SaveLogButton;
-        internal System.Windows.Forms.CheckBox CheckBoxFilter;
-        internal System.Windows.Forms.TabPage TabPageAll;
-        internal System.Windows.Forms.ListView EventList;
-        internal System.Windows.Forms.ColumnHeader ColumnHeader1;
-        internal System.Windows.Forms.ColumnHeader ColumnHeader2;
-        internal System.Windows.Forms.ColumnHeader ColumnHeader3;
-        internal System.Windows.Forms.ColumnHeader ColumnHeader4;
-        internal System.Windows.Forms.CheckBox CheckRegex;
-        internal System.Windows.Forms.TextBox TextBoxKeyword;
-        internal System.Windows.Forms.ToolStripStatusLabel StatusLabelCount;
-        internal System.Windows.Forms.Button OK_Button;
-        internal System.Windows.Forms.StatusStrip StatusStrip1;
-        internal System.Windows.Forms.TabControl TabEventType;
-        internal System.Windows.Forms.Button ButtonRefresh;
-        internal System.Windows.Forms.CheckBox CheckExcludeMyEvent;
-        internal System.Windows.Forms.SaveFileDialog SaveFileDialog1;
-    }
-}
\ No newline at end of file
diff --git a/OpenTween/EventViewerDialog.cs b/OpenTween/EventViewerDialog.cs
deleted file mode 100644 (file)
index bf57258..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-// OpenTween - Client of Twitter
-// Copyright (c) 2007-2011 kiri_feather (@kiri_feather) <kiri.feather@gmail.com>
-//           (c) 2008-2011 Moz (@syo68k)
-//           (c) 2008-2011 takeshik (@takeshik) <http://www.takeshik.org/>
-//           (c) 2010-2011 anis774 (@anis774) <http://d.hatena.ne.jp/anis774/>
-//           (c) 2010-2011 fantasticswallow (@f_swallow) <http://twitter.com/f_swallow>
-//           (c) 2011-2012 kim_upsilon (@kim_upsilon) <https://upsilo.net/~upsilon/>
-// All rights reserved.
-// 
-// This file is part of OpenTween.
-// 
-// This program is free software; you can redistribute it and/or modify it
-// under the terms of the GNU General public License as published by the Free
-// Software Foundation; either version 3 of the License, or (at your option)
-// any later version.
-// 
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General public License
-// for more details. 
-// 
-// You should have received a copy of the GNU General public License along
-// with this program. If not, see <http://www.gnu.org/licenses/>, or write to
-// the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-// Boston, MA 02110-1301, USA.
-
-#nullable enable
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Diagnostics.CodeAnalysis;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using System.Text.RegularExpressions;
-using System.IO;
-using System.Globalization;
-using OpenTween.Setting;
-using System.Threading.Tasks;
-
-namespace OpenTween
-{
-    public partial class EventViewerDialog : OTBaseForm
-    {
-        public List<Twitter.FormattedEvent> EventSource { get; set; } = new List<Twitter.FormattedEvent>();
-
-        private Twitter.FormattedEvent[] _filterdEventSource = Array.Empty<Twitter.FormattedEvent>();
-
-        private ListViewItem[]? _ItemCache = null;
-        private int _itemCacheIndex;
-
-        private TabPage _curTab = null!;
-
-        public EventViewerDialog()
-        {
-            InitializeComponent();
-
-            // メイリオフォント指定時にタブの最小幅が広くなる問題の対策
-            this.TabEventType.HandleCreated += (s, e) => NativeMethods.SetMinTabWidth((TabControl)s, 40);
-        }
-
-        protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
-        {
-            base.ScaleControl(factor, specified);
-            ScaleChildControl(this.EventList, factor);
-        }
-
-        private void OK_Button_Click(object sender, EventArgs e)
-        {
-            this.DialogResult = DialogResult.OK;
-            this.Close();
-        }
-
-        private void Cancel_Button_Click(object sender, EventArgs e)
-        {
-            this.DialogResult = DialogResult.Cancel;
-            this.Close();
-        }
-
-        private ListViewItem CreateListViewItem(Twitter.FormattedEvent source)
-        {
-            string[] s = { source.CreatedAt.ToLocalTimeString(), source.Event.ToUpper(CultureInfo.CurrentCulture), source.Username, source.Target };
-            return new ListViewItem(s);
-        }
-
-        private void EventViewerDialog_Shown(object sender, EventArgs e)
-        {
-            // タブ初期化
-            foreach (var tabPage in CreateTabsFromUserStreamsEvent())
-            {
-                TabEventType.TabPages.Add(tabPage);
-            }
-
-            EventList.BeginUpdate();
-            _curTab = TabEventType.SelectedTab;
-            CreateFilterdEventSource();
-            EventList.EndUpdate();
-            this.TopMost = SettingManager.Common.AlwaysTop;
-        }
-
-        private async void EventList_DoubleClick(object sender, EventArgs e)
-            => await this.OpenEventStatusOrUser();
-
-        private async void EventList_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.KeyData == Keys.Enter)
-                await this.OpenEventStatusOrUser();
-        }
-
-        private async Task OpenEventStatusOrUser()
-        {
-            if (this.EventList.SelectedIndices.Count == 0)
-                return;
-
-            var tweenMain = (TweenMain)this.Owner;
-            var selectedEvent = this._filterdEventSource[this.EventList.SelectedIndices[0]];
-            if (selectedEvent != null)
-            {
-                if (selectedEvent.Id != 0)
-                    await tweenMain.OpenRelatedTab(selectedEvent.Id);
-                else
-                    await tweenMain.OpenUriAsync(new Uri("https://twitter.com/" + selectedEvent.Username));
-            }
-        }
-
-        private MyCommon.EVENTTYPE ParseEventTypeFromTag()
-            => (MyCommon.EVENTTYPE)Enum.Parse(typeof(MyCommon.EVENTTYPE), _curTab.Tag.ToString());
-
-        private bool IsFilterMatch(Twitter.FormattedEvent x)
-        {
-            if (!CheckBoxFilter.Checked || MyCommon.IsNullOrEmpty(TextBoxKeyword.Text))
-            {
-                return true;
-            }
-            else
-            {
-                if (CheckRegex.Checked)
-                {
-                    try
-                    {
-                        var rx = new Regex(TextBoxKeyword.Text);
-                        return rx.Match(x.Username).Success || rx.Match(x.Target).Success;
-                    }
-                    catch (Exception ex)
-                    {
-                        MessageBox.Show(Properties.Resources.ButtonOK_ClickText3 + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
-                        return false;
-                    }
-                }
-                else
-                {
-                    return x.Username.Contains(TextBoxKeyword.Text) || x.Target.Contains(TextBoxKeyword.Text);
-                }
-            }
-        }
-
-        private void CreateFilterdEventSource()
-        {
-            if (EventSource != null && EventSource.Count > 0)
-            {
-                _filterdEventSource = EventSource.FindAll((x) => !(CheckExcludeMyEvent.Checked && x.IsMe) &&
-                                                                 (x.Eventtype & ParseEventTypeFromTag()) != 0 &&
-                                                                 IsFilterMatch(x)).ToArray();
-                _ItemCache = null;
-                EventList.VirtualListSize = _filterdEventSource.Count();
-                StatusLabelCount.Text = string.Format("{0} / {1}", _filterdEventSource.Count(), EventSource.Count());
-            }
-            else
-            {
-                StatusLabelCount.Text = "0 / 0";
-            }
-        }
-
-        private void CheckExcludeMyEvent_CheckedChanged(object sender, EventArgs e)
-            => this.CreateFilterdEventSource();
-
-        private void ButtonRefresh_Click(object sender, EventArgs e)
-            => this.CreateFilterdEventSource();
-
-        private void TabEventType_SelectedIndexChanged(object sender, EventArgs e)
-            => this.CreateFilterdEventSource();
-
-        private void TabEventType_Selecting(object sender, TabControlCancelEventArgs e)
-        {
-            _curTab = e.TabPage;
-            if (!e.TabPage.Controls.Contains(EventList))
-            {
-                e.TabPage.Controls.Add(EventList);
-            }
-        }
-
-        private void TextBoxKeyword_KeyPress(object sender, KeyPressEventArgs e)
-        {
-            if (e.KeyChar == (char)Keys.Enter)
-            {
-                CreateFilterdEventSource();
-                e.Handled = true;
-            }
-        }
-
-        private void EventList_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
-        {
-            if (_ItemCache != null && e.ItemIndex >= _itemCacheIndex && e.ItemIndex < _itemCacheIndex + _ItemCache.Length)
-            {
-                //キャッシュヒット
-                e.Item = _ItemCache[e.ItemIndex - _itemCacheIndex];
-            }
-            else
-            {
-                //キャッシュミス
-                e.Item = CreateListViewItem(_filterdEventSource[e.ItemIndex]);
-            }
-        }
-
-        private void EventList_CacheVirtualItems(object sender, CacheVirtualItemsEventArgs e)
-            => this.CreateCache(e.StartIndex, e.EndIndex);
-
-        private void CreateCache(int StartIndex, int EndIndex)
-        {
-            //キャッシュ要求(要求範囲±30を作成)
-            StartIndex -= 30;
-            if (StartIndex < 0) StartIndex = 0;
-            EndIndex += 30;
-            if (EndIndex > _filterdEventSource.Count() - 1)
-            {
-                EndIndex = _filterdEventSource.Count() - 1;
-            }
-            _ItemCache = new ListViewItem[] { };
-            Array.Resize(ref _ItemCache, EndIndex - StartIndex + 1);
-            _itemCacheIndex = StartIndex;
-            for (var i = 0; i < _ItemCache.Length; i++)
-            {
-                _ItemCache[i] = CreateListViewItem(_filterdEventSource[StartIndex + i]);
-            }
-        }
-
-        private void SaveLogButton_Click(object sender, EventArgs e)
-        {
-            var rslt = MessageBox.Show(string.Format(Properties.Resources.SaveLogMenuItem_ClickText5, Environment.NewLine),
-                    Properties.Resources.SaveLogMenuItem_ClickText2,
-                    MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
-            switch (rslt)
-            {
-                case DialogResult.Yes:
-                    SaveFileDialog1.FileName = $"{ApplicationSettings.AssemblyName}Events{_curTab.Tag}{DateTimeUtc.Now.ToLocalTime():yyMMdd-HHmmss}.tsv";
-                    break;
-                case DialogResult.No:
-                    SaveFileDialog1.FileName = $"{ApplicationSettings.AssemblyName}Events{DateTimeUtc.Now.ToLocalTime():yyMMdd-HHmmss}.tsv";
-                    break;
-                default:
-                    return;
-            }
-
-            SaveFileDialog1.InitialDirectory = Application.StartupPath;
-            SaveFileDialog1.Filter = Properties.Resources.SaveLogMenuItem_ClickText3;
-            SaveFileDialog1.FilterIndex = 0;
-            SaveFileDialog1.Title = Properties.Resources.SaveLogMenuItem_ClickText4;
-            SaveFileDialog1.RestoreDirectory = true;
-
-            if (SaveFileDialog1.ShowDialog() == DialogResult.OK)
-            {
-                if (!SaveFileDialog1.ValidateNames) return;
-                using var sw = new StreamWriter(SaveFileDialog1.FileName, false, Encoding.UTF8);
-
-                switch (rslt)
-                {
-                    case DialogResult.Yes:
-                        SaveEventLog(_filterdEventSource.ToList(), sw);
-                        break;
-                    case DialogResult.No:
-                        SaveEventLog(EventSource, sw);
-                        break;
-                    default:
-                        break;
-                }
-            }
-            this.TopMost = SettingManager.Common.AlwaysTop;
-        }
-
-        private void SaveEventLog(List<Twitter.FormattedEvent> source, StreamWriter sw)
-        {
-            foreach (var _event in source)
-            {
-                sw.WriteLine(_event.Eventtype + "\t" +
-                             "\"" + _event.CreatedAt.ToLocalTimeString() + "\"\t" +
-                             _event.Event + "\t" +
-                             _event.Username + "\t" +
-                             _event.Target + "\t" +
-                             _event.Id);
-            }
-        }
-
-        [SuppressMessage("Microsoft.Reliability", "CA2000:DisposeObjectsBeforeLosingScope")]
-        private static IEnumerable<TabPage> CreateTabsFromUserStreamsEvent()
-        {
-            return Enum.GetNames(typeof(MyCommon.EVENTTYPE))
-                       .Where(e => e != "None" && e != "All")
-                       .Select(e => new TabPage(e)
-                       {
-                           Tag = e,
-                           UseVisualStyleBackColor = true,
-                           AccessibleRole = AccessibleRole.PageTab,
-                       });
-        }
-    }
-}
diff --git a/OpenTween/EventViewerDialog.en.resx b/OpenTween/EventViewerDialog.en.resx
deleted file mode 100644 (file)
index 119f3d1..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="CheckExcludeMyEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>126, 16</value>
-  </data>
-  <data name="CheckExcludeMyEvent.Text" xml:space="preserve">
-    <value>Exclude own events</value>
-  </data>
-  <data name="ButtonRefresh.Text" xml:space="preserve">
-    <value>Refresh</value>
-  </data>
-  <data name="TabPageAll.Text" xml:space="preserve">
-    <value>All</value>
-  </data>
-  <data name="CheckRegex.Size" type="System.Drawing.Size, System.Drawing">
-    <value>56, 16</value>
-  </data>
-  <data name="CheckRegex.Text" xml:space="preserve">
-    <value>Regex</value>
-  </data>
-  <data name="CheckBoxFilter.Size" type="System.Drawing.Size, System.Drawing">
-    <value>105, 16</value>
-  </data>
-  <data name="CheckBoxFilter.Text" xml:space="preserve">
-    <value>Keyword search</value>
-  </data>
-  <data name="SaveLogButton.Text" xml:space="preserve">
-    <value>Save...</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/OpenTween/EventViewerDialog.resx b/OpenTween/EventViewerDialog.resx
deleted file mode 100644 (file)
index 3d43874..0000000
+++ /dev/null
@@ -1,516 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="SaveLogButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Bottom, Right</value>
-  </data>
-  <data name="SaveLogButton.Location" type="System.Drawing.Point, System.Drawing">
-    <value>599, 239</value>
-  </data>
-  <data name="SaveLogButton.Size" type="System.Drawing.Size, System.Drawing">
-    <value>126, 22</value>
-  </data>
-  <data name="SaveLogButton.TabIndex" type="System.Int32, mscorlib">
-    <value>5</value>
-  </data>
-  <data name="SaveLogButton.Text" xml:space="preserve">
-    <value>ファイル保存</value>
-  </data>
-  <data name="&gt;&gt;SaveLogButton.Name" xml:space="preserve">
-    <value>SaveLogButton</value>
-  </data>
-  <data name="&gt;&gt;SaveLogButton.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;SaveLogButton.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;SaveLogButton.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="CheckBoxFilter.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Bottom, Left</value>
-  </data>
-  <data name="CheckBoxFilter.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckBoxFilter.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 277</value>
-  </data>
-  <data name="CheckBoxFilter.Size" type="System.Drawing.Size, System.Drawing">
-    <value>124, 16</value>
-  </data>
-  <data name="CheckBoxFilter.TabIndex" type="System.Int32, mscorlib">
-    <value>2</value>
-  </data>
-  <data name="CheckBoxFilter.Text" xml:space="preserve">
-    <value>キーワードで絞り込む</value>
-  </data>
-  <data name="&gt;&gt;CheckBoxFilter.Name" xml:space="preserve">
-    <value>CheckBoxFilter</value>
-  </data>
-  <data name="&gt;&gt;CheckBoxFilter.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckBoxFilter.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckBoxFilter.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;EventList.Name" xml:space="preserve">
-    <value>EventList</value>
-  </data>
-  <data name="&gt;&gt;EventList.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;EventList.Parent" xml:space="preserve">
-    <value>TabPageAll</value>
-  </data>
-  <data name="&gt;&gt;EventList.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="TabPageAll.Location" type="System.Drawing.Point, System.Drawing">
-    <value>4, 4</value>
-  </data>
-  <data name="TabPageAll.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 3, 3, 3</value>
-  </data>
-  <data name="TabPageAll.Size" type="System.Drawing.Size, System.Drawing">
-    <value>706, 193</value>
-  </data>
-  <data name="TabPageAll.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
-  </data>
-  <data name="TabPageAll.Text" xml:space="preserve">
-    <value>全て</value>
-  </data>
-  <data name="&gt;&gt;TabPageAll.Name" xml:space="preserve">
-    <value>TabPageAll</value>
-  </data>
-  <data name="&gt;&gt;TabPageAll.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;TabPageAll.Parent" xml:space="preserve">
-    <value>TabEventType</value>
-  </data>
-  <data name="&gt;&gt;TabPageAll.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="EventList.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
-    <value>Fill</value>
-  </data>
-  <data name="EventList.Location" type="System.Drawing.Point, System.Drawing">
-    <value>3, 3</value>
-  </data>
-  <data name="EventList.Size" type="System.Drawing.Size, System.Drawing">
-    <value>700, 187</value>
-  </data>
-  <data name="EventList.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
-  </data>
-  <data name="ColumnHeader1.Text" xml:space="preserve">
-    <value>Datetime</value>
-  </data>
-  <data name="ColumnHeader1.Width" type="System.Int32, mscorlib">
-    <value>86</value>
-  </data>
-  <data name="ColumnHeader2.Text" xml:space="preserve">
-    <value>Type</value>
-  </data>
-  <data name="ColumnHeader2.Width" type="System.Int32, mscorlib">
-    <value>90</value>
-  </data>
-  <data name="ColumnHeader3.Text" xml:space="preserve">
-    <value>Username</value>
-  </data>
-  <data name="ColumnHeader3.Width" type="System.Int32, mscorlib">
-    <value>106</value>
-  </data>
-  <data name="ColumnHeader4.Text" xml:space="preserve">
-    <value>Target</value>
-  </data>
-  <data name="ColumnHeader4.Width" type="System.Int32, mscorlib">
-    <value>360</value>
-  </data>
-  <data name="CheckRegex.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Bottom, Left</value>
-  </data>
-  <data name="CheckRegex.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckRegex.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 299</value>
-  </data>
-  <data name="CheckRegex.Size" type="System.Drawing.Size, System.Drawing">
-    <value>72, 16</value>
-  </data>
-  <data name="CheckRegex.TabIndex" type="System.Int32, mscorlib">
-    <value>4</value>
-  </data>
-  <data name="CheckRegex.Text" xml:space="preserve">
-    <value>正規表現</value>
-  </data>
-  <data name="&gt;&gt;CheckRegex.Name" xml:space="preserve">
-    <value>CheckRegex</value>
-  </data>
-  <data name="&gt;&gt;CheckRegex.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckRegex.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckRegex.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="TextBoxKeyword.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Bottom, Left</value>
-  </data>
-  <data name="TextBoxKeyword.Location" type="System.Drawing.Point, System.Drawing">
-    <value>142, 275</value>
-  </data>
-  <data name="TextBoxKeyword.Size" type="System.Drawing.Size, System.Drawing">
-    <value>231, 19</value>
-  </data>
-  <data name="TextBoxKeyword.TabIndex" type="System.Int32, mscorlib">
-    <value>3</value>
-  </data>
-  <data name="&gt;&gt;TextBoxKeyword.Name" xml:space="preserve">
-    <value>TextBoxKeyword</value>
-  </data>
-  <data name="&gt;&gt;TextBoxKeyword.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;TextBoxKeyword.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;TextBoxKeyword.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="StatusLabelCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>95, 17</value>
-  </data>
-  <data name="StatusLabelCount.Text" xml:space="preserve">
-    <value>StatusLabelCount</value>
-  </data>
-  <data name="OK_Button.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Bottom, Right</value>
-  </data>
-  <data name="OK_Button.Location" type="System.Drawing.Point, System.Drawing">
-    <value>659, 298</value>
-  </data>
-  <data name="OK_Button.Size" type="System.Drawing.Size, System.Drawing">
-    <value>67, 21</value>
-  </data>
-  <data name="OK_Button.TabIndex" type="System.Int32, mscorlib">
-    <value>7</value>
-  </data>
-  <data name="OK_Button.Text" xml:space="preserve">
-    <value>OK</value>
-  </data>
-  <data name="&gt;&gt;OK_Button.Name" xml:space="preserve">
-    <value>OK_Button</value>
-  </data>
-  <data name="&gt;&gt;OK_Button.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;OK_Button.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;OK_Button.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>24, 10</value>
-  </metadata>
-  <data name="StatusStrip1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>0, 340</value>
-  </data>
-  <data name="StatusStrip1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>738, 22</value>
-  </data>
-  <data name="StatusStrip1.TabIndex" type="System.Int32, mscorlib">
-    <value>7</value>
-  </data>
-  <data name="StatusStrip1.Text" xml:space="preserve">
-    <value>StatusStrip1</value>
-  </data>
-  <data name="&gt;&gt;StatusStrip1.Name" xml:space="preserve">
-    <value>StatusStrip1</value>
-  </data>
-  <data name="&gt;&gt;StatusStrip1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;StatusStrip1.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;StatusStrip1.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="TabEventType.Alignment" type="System.Windows.Forms.TabAlignment, System.Windows.Forms">
-    <value>Bottom</value>
-  </data>
-  <data name="TabEventType.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Top, Bottom, Left, Right</value>
-  </data>
-  <data name="TabEventType.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 12</value>
-  </data>
-  <data name="TabEventType.Size" type="System.Drawing.Size, System.Drawing">
-    <value>714, 218</value>
-  </data>
-  <data name="TabEventType.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;TabEventType.Name" xml:space="preserve">
-    <value>TabEventType</value>
-  </data>
-  <data name="&gt;&gt;TabEventType.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;TabEventType.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;TabEventType.ZOrder" xml:space="preserve">
-    <value>6</value>
-  </data>
-  <data name="ButtonRefresh.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Bottom, Right</value>
-  </data>
-  <data name="ButtonRefresh.Location" type="System.Drawing.Point, System.Drawing">
-    <value>600, 269</value>
-  </data>
-  <data name="ButtonRefresh.Size" type="System.Drawing.Size, System.Drawing">
-    <value>126, 21</value>
-  </data>
-  <data name="ButtonRefresh.TabIndex" type="System.Int32, mscorlib">
-    <value>6</value>
-  </data>
-  <data name="ButtonRefresh.Text" xml:space="preserve">
-    <value>最新の情報に更新</value>
-  </data>
-  <data name="&gt;&gt;ButtonRefresh.Name" xml:space="preserve">
-    <value>ButtonRefresh</value>
-  </data>
-  <data name="&gt;&gt;ButtonRefresh.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;ButtonRefresh.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;ButtonRefresh.ZOrder" xml:space="preserve">
-    <value>7</value>
-  </data>
-  <data name="CheckExcludeMyEvent.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Bottom, Left</value>
-  </data>
-  <data name="CheckExcludeMyEvent.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckExcludeMyEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 255</value>
-  </data>
-  <data name="CheckExcludeMyEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>197, 16</value>
-  </data>
-  <data name="CheckExcludeMyEvent.TabIndex" type="System.Int32, mscorlib">
-    <value>1</value>
-  </data>
-  <data name="CheckExcludeMyEvent.Text" xml:space="preserve">
-    <value>自分が発生させたイベントを除外する</value>
-  </data>
-  <data name="&gt;&gt;CheckExcludeMyEvent.Name" xml:space="preserve">
-    <value>CheckExcludeMyEvent</value>
-  </data>
-  <data name="&gt;&gt;CheckExcludeMyEvent.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckExcludeMyEvent.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckExcludeMyEvent.ZOrder" xml:space="preserve">
-    <value>8</value>
-  </data>
-  <metadata name="SaveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>150, 10</value>
-  </metadata>
-  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>39</value>
-  </metadata>
-  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
-    <value>96, 96</value>
-  </data>
-  <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
-    <value>738, 362</value>
-  </data>
-  <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
-    <value>Manual</value>
-  </data>
-  <data name="$this.Text" xml:space="preserve">
-    <value>Events</value>
-  </data>
-  <data name="&gt;&gt;ColumnHeader1.Name" xml:space="preserve">
-    <value>ColumnHeader1</value>
-  </data>
-  <data name="&gt;&gt;ColumnHeader1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;ColumnHeader2.Name" xml:space="preserve">
-    <value>ColumnHeader2</value>
-  </data>
-  <data name="&gt;&gt;ColumnHeader2.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;ColumnHeader3.Name" xml:space="preserve">
-    <value>ColumnHeader3</value>
-  </data>
-  <data name="&gt;&gt;ColumnHeader3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;ColumnHeader4.Name" xml:space="preserve">
-    <value>ColumnHeader4</value>
-  </data>
-  <data name="&gt;&gt;ColumnHeader4.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;StatusLabelCount.Name" xml:space="preserve">
-    <value>StatusLabelCount</value>
-  </data>
-  <data name="&gt;&gt;StatusLabelCount.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;SaveFileDialog1.Name" xml:space="preserve">
-    <value>SaveFileDialog1</value>
-  </data>
-  <data name="&gt;&gt;SaveFileDialog1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.SaveFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;$this.Name" xml:space="preserve">
-    <value>EventViewerDialog</value>
-  </data>
-  <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>OpenTween.OTBaseForm, OpenTween, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-</root>
\ No newline at end of file
index 70efc4d..f989ec9 100644 (file)
@@ -49,7 +49,6 @@ namespace OpenTween
         private object? _growlNTreply;
         private object? _growlNTdm;
         private object? _growlNTnew;
-        private object? _growlNTusevent;
         private object? _growlApp;
 
         private object? _targetConnector;
@@ -78,7 +77,6 @@ namespace OpenTween
             Reply = 0,
             DirectMessage = 1,
             Notify = 2,
-            UserStreamEvent = 3,
         }
 
         public GrowlHelper(string appName)
@@ -155,9 +153,6 @@ namespace OpenTween
                 _growlNTnew = _t.InvokeMember(null,
                     BindingFlags.CreateInstance, null, null, new object[] { "NOTIFY", "新着通知" }, CultureInfo.InvariantCulture);
 
-                _growlNTusevent = _t.InvokeMember(null,
-                    BindingFlags.CreateInstance, null, null, new object[] { "USERSTREAM_EVENT", "UserStream Event" }, CultureInfo.InvariantCulture);
-
                 var encryptType =
                         _connector.GetType("Growl.Connector.Cryptography+SymmetricAlgorithmType").InvokeMember(
                             "PlainText", BindingFlags.GetField, null, null, null, CultureInfo.InvariantCulture);
@@ -228,7 +223,6 @@ namespace OpenTween
                     _growlNTreply,
                     _growlNTdm,
                     _growlNTnew,
-                    _growlNTusevent,
                 };
 
                 mi.Invoke(_targetConnector, new object[] { _growlApp, arglist.ToArray(_t) });
@@ -263,7 +257,6 @@ namespace OpenTween
                 NotifyType.Reply => "REPLY",
                 NotifyType.DirectMessage => "DIRECT_MESSAGE",
                 NotifyType.Notify => "NOTIFY",
-                NotifyType.UserStreamEvent => "USERSTREAM_EVENT",
                 _ => "",
             };
 
@@ -360,9 +353,6 @@ namespace OpenTween
                         case "NOTIFY":
                             nt = NotifyType.Notify;
                             break;
-                        case "USERSTREAM_EVENT":
-                            nt = NotifyType.UserStreamEvent;
-                            break;
                         default:
                             return;
                     }
index 1dc4f1f..d3cce54 100644 (file)
@@ -279,37 +279,6 @@ namespace OpenTween.Models
         public PostClass? RetweetSource(long Id)
             => this.Posts.TryGetValue(Id, out var status) ? status : null;
 
-        public void ScrubGeoReserve(long id, long upToStatusId)
-        {
-            lock (LockObj)
-                this.ScrubGeo(id, upToStatusId);
-        }
-
-        private void ScrubGeo(long userId, long upToStatusId)
-        {
-            lock (LockObj)
-            {
-                var userPosts = from post in this.Posts.Values
-                                where post.UserId == userId && post.UserId <= upToStatusId
-                                select post;
-
-                foreach (var p in userPosts)
-                {
-                    p.PostGeo = null;
-                }
-
-                var userPosts2 = from tb in this.GetTabsInnerStorageType()
-                                 from post in tb.Posts.Values
-                                 where post.UserId == userId && post.UserId <= upToStatusId
-                                 select post;
-
-                foreach (var p in userPosts2)
-                {
-                    p.PostGeo = null;
-                }
-            }
-        }
-
         public void RemovePostFromAllTabs(long statusId, bool setIsDeleted)
         {
             foreach (var tab in this.Tabs)
index 82d8ff4..bc06bd1 100644 (file)
@@ -149,7 +149,6 @@ namespace OpenTween
             PublicSearch,            //公式検索
             List,                    //Lists
             Related,                 //関連発言
-            UserStream,              //UserStream
             UserTimeline,            //UserTimeline
             BlockIds,                //Blocking/ids
             Configuration,           //Twitter Configuration読み込み
@@ -189,36 +188,6 @@ namespace OpenTween
             BlinkIcon,
         }
 
-        [Flags]
-        public enum EVENTTYPE
-        {
-            None = 0,
-            Favorite = 1,
-            Unfavorite = 2,
-            Follow = 4,
-            ListMemberAdded = 8,
-            ListMemberRemoved = 16,
-            Block = 32,
-            Unblock = 64,
-            UserUpdate = 128,
-            Deleted = 256,
-            ListCreated = 512,
-            ListUpdated = 1024,
-            Unfollow = 2048,
-            ListUserSubscribed = 4096,
-            ListUserUnsubscribed = 8192,
-            ListDestroyed = 16384,
-            Mute = 32768,
-            Unmute = 65536,
-            QuotedTweet = 131072,
-            Retweet = 262144,
-
-            All = (None | Favorite | Unfavorite | Follow | ListMemberAdded | ListMemberRemoved |
-                   Block | Unblock | UserUpdate | Deleted | ListCreated | ListUpdated | Unfollow |
-                   ListUserSubscribed | ListUserUnsubscribed | ListDestroyed |
-                   Mute | Unmute | QuotedTweet | Retweet),
-        }
-
         public static _Assembly EntryAssembly { get; internal set; }
         public static string FileVersion { get; internal set; }
 
index b4fbf60..a7ec6b0 100644 (file)
@@ -85,7 +85,6 @@
     <Compile Include="Api\DataModel\TwitterRateLimits.cs" />
     <Compile Include="Api\DataModel\TwitterSearchResult.cs" />
     <Compile Include="Api\DataModel\TwitterStatus.cs" />
-    <Compile Include="Api\DataModel\TwitterStreamEvent.cs" />
     <Compile Include="Api\DataModel\TwitterStreamMessage.cs" />
     <Compile Include="Api\DataModel\TwitterTextConfiguration.cs" />
     <Compile Include="Api\DataModel\TwitterUploadMediaResult.cs" />
     <Compile Include="EncryptApiKeyDialog.Designer.cs">
       <DependentUpon>EncryptApiKeyDialog.cs</DependentUpon>
     </Compile>
-    <Compile Include="EventViewerDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="EventViewerDialog.Designer.cs">
-      <DependentUpon>EventViewerDialog.cs</DependentUpon>
-    </Compile>
     <Compile Include="Extensions.cs" />
     <Compile Include="FilterDialog.cs">
       <SubType>Form</SubType>
     <EmbeddedResource Include="EncryptApiKeyDialog.resx">
       <DependentUpon>EncryptApiKeyDialog.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="EventViewerDialog.en.resx">
-      <DependentUpon>EventViewerDialog.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="EventViewerDialog.resx">
-      <DependentUpon>EventViewerDialog.cs</DependentUpon>
-    </EmbeddedResource>
     <EmbeddedResource Include="FilterDialog.en.resx">
       <DependentUpon>FilterDialog.cs</DependentUpon>
     </EmbeddedResource>
index 4d26930..298e6f1 100644 (file)
@@ -19,7 +19,7 @@ namespace OpenTween.Properties {
     // または Visual Studio のようなツールを使用して自動生成されました。
     // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に
     // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     internal class Resources {
@@ -142,51 +142,6 @@ namespace OpenTween.Properties {
         }
         
         /// <summary>
-        ///   REST API上限 :  に類似しているローカライズされた文字列を検索します。
-        /// </summary>
-        internal static string ApiInfo1 {
-            get {
-                return ResourceManager.GetString("ApiInfo1", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   画像投稿API残数: に類似しているローカライズされた文字列を検索します。
-        /// </summary>
-        internal static string ApiInfo10 {
-            get {
-                return ResourceManager.GetString("ApiInfo10", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   画像投稿APIリセット日時: に類似しているローカライズされた文字列を検索します。
-        /// </summary>
-        internal static string ApiInfo11 {
-            get {
-                return ResourceManager.GetString("ApiInfo11", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   REST API残数 :  に類似しているローカライズされた文字列を検索します。
-        /// </summary>
-        internal static string ApiInfo2 {
-            get {
-                return ResourceManager.GetString("ApiInfo2", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   REST API残数リセット日時 :  に類似しているローカライズされた文字列を検索します。
-        /// </summary>
-        internal static string ApiInfo3 {
-            get {
-                return ResourceManager.GetString("ApiInfo3", resourceCulture);
-            }
-        }
-        
-        /// <summary>
         ///   API情報 に類似しているローカライズされた文字列を検索します。
         /// </summary>
         internal static string ApiInfo4 {
@@ -214,42 +169,6 @@ namespace OpenTween.Properties {
         }
         
         /// <summary>
-        ///   UserStream接続 :  に類似しているローカライズされた文字列を検索します。
-        /// </summary>
-        internal static string ApiInfo7 {
-            get {
-                return ResourceManager.GetString("ApiInfo7", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   APIアクセス権限: に類似しているローカライズされた文字列を検索します。
-        /// </summary>
-        internal static string ApiInfo8 {
-            get {
-                return ResourceManager.GetString("ApiInfo8", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   画像投稿API上限: に類似しているローカライズされた文字列を検索します。
-        /// </summary>
-        internal static string ApiInfo9 {
-            get {
-                return ResourceManager.GetString("ApiInfo9", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   (画像投稿後に取得/更新されます) に類似しているローカライズされた文字列を検索します。
-        /// </summary>
-        internal static string ApiInfo91 {
-            get {
-                return ResourceManager.GetString("ApiInfo91", resourceCulture);
-            }
-        }
-        
-        /// <summary>
         ///   (アイコン) に類似した型 System.Drawing.Icon のローカライズされたリソースを検索します。
         /// </summary>
         internal static System.Drawing.Icon At {
@@ -3213,15 +3132,6 @@ namespace OpenTween.Properties {
         }
         
         /// <summary>
-        ///   反映間隔には数値(0~60)を指定してください。 に類似しているローカライズされた文字列を検索します。
-        /// </summary>
-        internal static string UserstreamPeriod_ValidatingText1 {
-            get {
-                return ResourceManager.GetString("UserstreamPeriod_ValidatingText1", resourceCulture);
-            }
-        }
-        
-        /// <summary>
         ///   タイトル: に類似しているローカライズされた文字列を検索します。
         /// </summary>
         internal static string VimeoInfoText1 {
index 0dc5af6..3a90bbc 100644 (file)
   <data name="SetFiltersText13" xml:space="preserve">
     <value>CaseSensitive/</value>
   </data>
-  <data name="ApiInfo1" xml:space="preserve">
-    <value>Upper bound : </value>
-  </data>
-  <data name="ApiInfo2" xml:space="preserve">
-    <value>Remain count : </value>
-  </data>
-  <data name="ApiInfo3" xml:space="preserve">
-    <value>Reset time : </value>
-  </data>
   <data name="ApiInfo4" xml:space="preserve">
     <value>API Information</value>
   </data>
@@ -907,9 +898,6 @@ Do you want to upload the {1} selected media file(s)?</value>
   <data name="GetFriendshipInfo8" xml:space="preserve">
     <value>Confirm Unfollow</value>
   </data>
-  <data name="UserstreamPeriod_ValidatingText1" xml:space="preserve">
-    <value>Refresh interval must be number 0 to 60</value>
-  </data>
   <data name="TabUsageTypeName_UserTimeline" xml:space="preserve">
     <value>UserTimeline</value>
   </data>
@@ -937,24 +925,6 @@ Do you want to upload the {1} selected media file(s)?</value>
   <data name="RegistrationEmail2" xml:space="preserve">
     <value>Thank you for registration!</value>
   </data>
-  <data name="ApiInfo10" xml:space="preserve">
-    <value>MediaRateLimit : </value>
-  </data>
-  <data name="ApiInfo11" xml:space="preserve">
-    <value>MediaRateLimit(RestTime) : </value>
-  </data>
-  <data name="ApiInfo7" xml:space="preserve">
-    <value>UserStreams : </value>
-  </data>
-  <data name="ApiInfo8" xml:space="preserve">
-    <value>Access Level : </value>
-  </data>
-  <data name="ApiInfo9" xml:space="preserve">
-    <value>MediaRateLimit(Remaining) : </value>
-  </data>
-  <data name="ApiInfo91" xml:space="preserve">
-    <value>(unknown)</value>
-  </data>
   <data name="ButtonDelete_ClickText3" xml:space="preserve">
     <value>Delete selected rules? ({0} nums)</value>
   </data>
index 9795756..b06eb0b 100644 (file)
   <data name="SetFiltersText13" xml:space="preserve">
     <value>大小区別/</value>
   </data>
-  <data name="ApiInfo1" xml:space="preserve">
-    <value>REST API上限 : </value>
-  </data>
-  <data name="ApiInfo2" xml:space="preserve">
-    <value>REST API残数 : </value>
-  </data>
-  <data name="ApiInfo3" xml:space="preserve">
-    <value>REST API残数リセット日時 : </value>
-  </data>
   <data name="ApiInfo4" xml:space="preserve">
     <value>API情報</value>
   </data>
   <data name="GetFriendshipInfo8" xml:space="preserve">
     <value>フォロー解除確認</value>
   </data>
-  <data name="UserstreamPeriod_ValidatingText1" xml:space="preserve">
-    <value>反映間隔には数値(0~60)を指定してください。</value>
-  </data>
   <data name="TabUsageTypeName_UserTimeline" xml:space="preserve">
     <value>UserTimeline</value>
   </data>
   <data name="TranslateDefaultLanguage" xml:space="preserve">
     <value>ja</value>
   </data>
-  <data name="ApiInfo7" xml:space="preserve">
-    <value>UserStream接続 : </value>
-  </data>
   <data name="Disabled" xml:space="preserve">
     <value>無効</value>
   </data>
   <data name="RegistrationEmail2" xml:space="preserve">
     <value>登録ありがとうございます。</value>
   </data>
-  <data name="ApiInfo10" xml:space="preserve">
-    <value>画像投稿API残数:</value>
-  </data>
-  <data name="ApiInfo11" xml:space="preserve">
-    <value>画像投稿APIリセット日時:</value>
-  </data>
-  <data name="ApiInfo8" xml:space="preserve">
-    <value>APIアクセス権限:</value>
-  </data>
-  <data name="ApiInfo9" xml:space="preserve">
-    <value>画像投稿API上限:</value>
-  </data>
-  <data name="ApiInfo91" xml:space="preserve">
-    <value>(画像投稿後に取得/更新されます)</value>
-  </data>
   <data name="DeleteMenuText1" xml:space="preserve">
     <value>削除(&amp;D)</value>
   </data>
index 02a9533..a212275 100644 (file)
@@ -4,6 +4,7 @@
  * CHG: pic.twitter.com の画像URLのフォーマット変更に対応
  * CHG: Instagramのサムネイルを表示するURLのパターンを追加
  * CHG: YouTubeのサムネイルを表示するURLのパターンを追加 (thx @Hawklaver!)
+ * CHG: UserStreams関係の機能を削除
  * FIX: DMの添付画像をブラウザで開く場合に使用するURLを変更
  * FIX: 大文字アルファベットを含むハッシュタグがユーザー情報画面で正しくリンク化されない不具合を修正 (thx @naminodarie!)
 
index ac7dbf9..41fd4ba 100644 (file)
@@ -29,9 +29,6 @@
         private void InitializeComponent()
         {
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GetPeriodPanel));
-            this.UserstreamPeriod = new System.Windows.Forms.TextBox();
-            this.Label46 = new System.Windows.Forms.Label();
-            this.LabelUserStreamActive = new System.Windows.Forms.Label();
             this.Label21 = new System.Windows.Forms.Label();
             this.UserTimelinePeriod = new System.Windows.Forms.TextBox();
             this.TimelinePeriod = new System.Windows.Forms.TextBox();
             this.CheckPostAndGet = new System.Windows.Forms.CheckBox();
             this.Label5 = new System.Windows.Forms.Label();
             this.DMPeriod = new System.Windows.Forms.TextBox();
-            this.StartupUserstreamCheck = new System.Windows.Forms.CheckBox();
             this.SuspendLayout();
             // 
-            // UserstreamPeriod
-            // 
-            resources.ApplyResources(this.UserstreamPeriod, "UserstreamPeriod");
-            this.UserstreamPeriod.Name = "UserstreamPeriod";
-            this.UserstreamPeriod.Validating += new System.ComponentModel.CancelEventHandler(this.UserstreamPeriod_Validating);
-            // 
-            // Label46
-            // 
-            resources.ApplyResources(this.Label46, "Label46");
-            this.Label46.Name = "Label46";
-            // 
-            // LabelUserStreamActive
-            // 
-            resources.ApplyResources(this.LabelUserStreamActive, "LabelUserStreamActive");
-            this.LabelUserStreamActive.Name = "LabelUserStreamActive";
-            // 
             // Label21
             // 
             resources.ApplyResources(this.Label21, "Label21");
             this.DMPeriod.Name = "DMPeriod";
             this.DMPeriod.Validating += new System.ComponentModel.CancelEventHandler(this.DMPeriod_Validating);
             // 
-            // StartupUserstreamCheck
-            // 
-            resources.ApplyResources(this.StartupUserstreamCheck, "StartupUserstreamCheck");
-            this.StartupUserstreamCheck.Name = "StartupUserstreamCheck";
-            this.StartupUserstreamCheck.UseVisualStyleBackColor = true;
-            // 
             // GetPeriodPanel
             // 
             resources.ApplyResources(this, "$this");
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
-            this.Controls.Add(this.UserstreamPeriod);
-            this.Controls.Add(this.Label46);
-            this.Controls.Add(this.LabelUserStreamActive);
             this.Controls.Add(this.Label21);
             this.Controls.Add(this.UserTimelinePeriod);
             this.Controls.Add(this.TimelinePeriod);
             this.Controls.Add(this.CheckPostAndGet);
             this.Controls.Add(this.Label5);
             this.Controls.Add(this.DMPeriod);
-            this.Controls.Add(this.StartupUserstreamCheck);
             this.Name = "GetPeriodPanel";
             this.ResumeLayout(false);
             this.PerformLayout();
         }
 
         #endregion
-
-        internal System.Windows.Forms.TextBox UserstreamPeriod;
-        internal System.Windows.Forms.Label Label46;
-        internal System.Windows.Forms.Label LabelUserStreamActive;
         internal System.Windows.Forms.Label Label21;
         internal System.Windows.Forms.TextBox UserTimelinePeriod;
         internal System.Windows.Forms.TextBox TimelinePeriod;
         internal System.Windows.Forms.CheckBox CheckPostAndGet;
         internal System.Windows.Forms.Label Label5;
         internal System.Windows.Forms.TextBox DMPeriod;
-        internal System.Windows.Forms.CheckBox StartupUserstreamCheck;
     }
 }
index fb0d496..fdeadc9 100644 (file)
@@ -46,9 +46,7 @@ namespace OpenTween.Setting.Panel
 
         public void LoadConfig(SettingCommon settingCommon)
         {
-            this.StartupUserstreamCheck.Checked = settingCommon.UserstreamStartup;
             this.CheckPostAndGet.Checked = settingCommon.PostAndGet;
-            this.UserstreamPeriod.Text = settingCommon.UserstreamPeriod.ToString();
             this.TimelinePeriod.Text = settingCommon.TimelinePeriod.ToString();
             this.ReplyPeriod.Text = settingCommon.ReplyPeriod.ToString();
             this.DMPeriod.Text = settingCommon.DMPeriod.ToString();
@@ -59,20 +57,11 @@ namespace OpenTween.Setting.Panel
 
         public void SaveConfig(SettingCommon settingCommon)
         {
-            settingCommon.UserstreamStartup = this.StartupUserstreamCheck.Checked;
             settingCommon.PostAndGet = this.CheckPostAndGet.Checked;
 
             var arg = new IntervalChangedEventArgs();
             var isIntervalChanged = false;
 
-            var userstreamPeriod = int.Parse(this.UserstreamPeriod.Text);
-            if (settingCommon.UserstreamPeriod != userstreamPeriod)
-            {
-                settingCommon.UserstreamPeriod = userstreamPeriod;
-                arg.UserStream = true;
-                isIntervalChanged = true;
-            }
-
             var timelinePeriod = int.Parse(this.TimelinePeriod.Text);
             if (settingCommon.TimelinePeriod != timelinePeriod)
             {
@@ -125,28 +114,6 @@ namespace OpenTween.Setting.Panel
                 this.IntervalChanged?.Invoke(this, arg);
         }
 
-        private void UserstreamPeriod_Validating(object sender, CancelEventArgs e)
-        {
-            int prd;
-            try
-            {
-                prd = int.Parse(UserstreamPeriod.Text);
-            }
-            catch (Exception)
-            {
-                MessageBox.Show(Properties.Resources.UserstreamPeriod_ValidatingText1);
-                e.Cancel = true;
-                return;
-            }
-
-            if (prd < 0 || prd > 60)
-            {
-                MessageBox.Show(Properties.Resources.UserstreamPeriod_ValidatingText1);
-                e.Cancel = true;
-                return;
-            }
-        }
-
         private void TimelinePeriod_Validating(object sender, CancelEventArgs e)
         {
             int prd;
index 2ef73ea..ebc92a0 100644 (file)
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="Label46.Size" type="System.Drawing.Size, System.Drawing">
-    <value>191, 12</value>
-  </data>
-  <data name="Label46.Text" xml:space="preserve">
-    <value>User Streams Refresh Interval (sec)</value>
-  </data>
-  <data name="LabelUserStreamActive.Size" type="System.Drawing.Size, System.Drawing">
-    <value>395, 24</value>
-  </data>
-  <data name="LabelUserStreamActive.Text" xml:space="preserve">
-    <value>UserStream is enable.
-Periodic fetching, Timeline/Mentions/DM, and Post&amp;Fetch function is disable.</value>
-  </data>
   <data name="Label21.Text" xml:space="preserve">
     <value>UserTimeline Interval (sec)</value>
   </data>
@@ -176,10 +163,4 @@ Periodic fetching, Timeline/Mentions/DM, and Post&amp;Fetch function is disable.
   <data name="Label5.Text" xml:space="preserve">
     <value>DM Fetching Interval (sec.)</value>
   </data>
-  <data name="StartupUserstreamCheck.Size" type="System.Drawing.Size, System.Drawing">
-    <value>149, 16</value>
-  </data>
-  <data name="StartupUserstreamCheck.Text" xml:space="preserve">
-    <value>Auto connect at starting</value>
-  </data>
 </root>
\ No newline at end of file
index 7eaf894..dae4ec5 100644 (file)
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="UserstreamPeriod.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>Disable</value>
-  </data>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="UserstreamPeriod.Location" type="System.Drawing.Point, System.Drawing">
-    <value>259, 23</value>
-  </data>
-  <data name="UserstreamPeriod.Size" type="System.Drawing.Size, System.Drawing">
-    <value>65, 19</value>
-  </data>
   <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="UserstreamPeriod.TabIndex" type="System.Int32, mscorlib">
-    <value>21</value>
-  </data>
-  <data name="&gt;&gt;UserstreamPeriod.Name" xml:space="preserve">
-    <value>UserstreamPeriod</value>
-  </data>
-  <data name="&gt;&gt;UserstreamPeriod.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;UserstreamPeriod.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;UserstreamPeriod.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="Label46.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="Label46.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="Label46.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 26</value>
-  </data>
-  <data name="Label46.Size" type="System.Drawing.Size, System.Drawing">
-    <value>137, 12</value>
-  </data>
-  <data name="Label46.TabIndex" type="System.Int32, mscorlib">
-    <value>20</value>
-  </data>
-  <data name="Label46.Text" xml:space="preserve">
-    <value>UserStream反映間隔(秒)</value>
-  </data>
-  <data name="&gt;&gt;Label46.Name" xml:space="preserve">
-    <value>Label46</value>
-  </data>
-  <data name="&gt;&gt;Label46.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;Label46.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;Label46.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="LabelUserStreamActive.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="LabelUserStreamActive.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="LabelUserStreamActive.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 303</value>
-  </data>
-  <data name="LabelUserStreamActive.Size" type="System.Drawing.Size, System.Drawing">
-    <value>348, 36</value>
-  </data>
-  <data name="LabelUserStreamActive.TabIndex" type="System.Int32, mscorlib">
-    <value>37</value>
-  </data>
-  <data name="LabelUserStreamActive.Text" xml:space="preserve">
-    <value>UserStreamが有効です。
-タイムライン/Mentions/DMの定期更新、投稿時取得は停止しています。
-これらはUserStreamによりリアルタイム更新されます。</value>
-  </data>
-  <data name="&gt;&gt;LabelUserStreamActive.Name" xml:space="preserve">
-    <value>LabelUserStreamActive</value>
-  </data>
-  <data name="&gt;&gt;LabelUserStreamActive.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;LabelUserStreamActive.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;LabelUserStreamActive.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
   <data name="Label21.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   <data name="Label21.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
   </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="Label21.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 217</value>
+    <value>23, 182</value>
   </data>
   <data name="Label21.Size" type="System.Drawing.Size, System.Drawing">
     <value>144, 12</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label21.ZOrder" xml:space="preserve">
-    <value>3</value>
+    <value>0</value>
   </data>
   <data name="UserTimelinePeriod.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>Disable</value>
   </data>
   <data name="UserTimelinePeriod.Location" type="System.Drawing.Point, System.Drawing">
-    <value>259, 214</value>
+    <value>259, 179</value>
   </data>
   <data name="UserTimelinePeriod.Size" type="System.Drawing.Size, System.Drawing">
     <value>65, 19</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;UserTimelinePeriod.ZOrder" xml:space="preserve">
-    <value>4</value>
+    <value>1</value>
   </data>
   <data name="TimelinePeriod.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>Disable</value>
   </data>
   <data name="TimelinePeriod.Location" type="System.Drawing.Point, System.Drawing">
-    <value>259, 52</value>
+    <value>259, 17</value>
   </data>
   <data name="TimelinePeriod.Size" type="System.Drawing.Size, System.Drawing">
     <value>65, 19</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;TimelinePeriod.ZOrder" xml:space="preserve">
-    <value>5</value>
+    <value>2</value>
   </data>
   <data name="Label3.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>NoControl</value>
   </data>
   <data name="Label3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 55</value>
+    <value>23, 20</value>
   </data>
   <data name="Label3.Size" type="System.Drawing.Size, System.Drawing">
     <value>130, 12</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label3.ZOrder" xml:space="preserve">
-    <value>6</value>
+    <value>3</value>
   </data>
   <data name="LabelPostAndGet.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;LabelPostAndGet.ZOrder" xml:space="preserve">
-    <value>7</value>
+    <value>4</value>
   </data>
   <data name="Label33.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>NoControl</value>
   </data>
   <data name="Label33.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 188</value>
+    <value>23, 153</value>
   </data>
   <data name="Label33.Size" type="System.Drawing.Size, System.Drawing">
     <value>102, 12</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label33.ZOrder" xml:space="preserve">
-    <value>8</value>
+    <value>5</value>
   </data>
   <data name="ListsPeriod.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>Disable</value>
   </data>
   <data name="ListsPeriod.Location" type="System.Drawing.Point, System.Drawing">
-    <value>259, 185</value>
+    <value>259, 150</value>
   </data>
   <data name="ListsPeriod.Size" type="System.Drawing.Size, System.Drawing">
     <value>65, 19</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;ListsPeriod.ZOrder" xml:space="preserve">
-    <value>9</value>
+    <value>6</value>
   </data>
   <data name="Label7.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>NoControl</value>
   </data>
   <data name="Label7.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 159</value>
+    <value>23, 124</value>
   </data>
   <data name="Label7.Size" type="System.Drawing.Size, System.Drawing">
     <value>137, 12</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label7.ZOrder" xml:space="preserve">
-    <value>10</value>
+    <value>7</value>
   </data>
   <data name="PubSearchPeriod.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>Disable</value>
   </data>
   <data name="PubSearchPeriod.Location" type="System.Drawing.Point, System.Drawing">
-    <value>259, 156</value>
+    <value>259, 121</value>
   </data>
   <data name="PubSearchPeriod.Size" type="System.Drawing.Size, System.Drawing">
     <value>65, 19</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;PubSearchPeriod.ZOrder" xml:space="preserve">
-    <value>11</value>
+    <value>8</value>
   </data>
   <data name="Label69.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>NoControl</value>
   </data>
   <data name="Label69.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 101</value>
+    <value>23, 66</value>
   </data>
   <data name="Label69.Size" type="System.Drawing.Size, System.Drawing">
     <value>123, 12</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label69.ZOrder" xml:space="preserve">
-    <value>12</value>
+    <value>9</value>
   </data>
   <data name="ReplyPeriod.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>Disable</value>
   </data>
   <data name="ReplyPeriod.Location" type="System.Drawing.Point, System.Drawing">
-    <value>259, 98</value>
+    <value>259, 63</value>
   </data>
   <data name="ReplyPeriod.Size" type="System.Drawing.Size, System.Drawing">
     <value>65, 19</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;ReplyPeriod.ZOrder" xml:space="preserve">
-    <value>13</value>
+    <value>10</value>
   </data>
   <data name="CheckPostAndGet.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>NoControl</value>
   </data>
   <data name="CheckPostAndGet.Location" type="System.Drawing.Point, System.Drawing">
-    <value>45, 73</value>
+    <value>45, 38</value>
   </data>
   <data name="CheckPostAndGet.Size" type="System.Drawing.Size, System.Drawing">
     <value>84, 16</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;CheckPostAndGet.ZOrder" xml:space="preserve">
-    <value>14</value>
+    <value>11</value>
   </data>
   <data name="Label5.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>NoControl</value>
   </data>
   <data name="Label5.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 130</value>
+    <value>23, 95</value>
   </data>
   <data name="Label5.Size" type="System.Drawing.Size, System.Drawing">
     <value>94, 12</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Label5.ZOrder" xml:space="preserve">
-    <value>15</value>
+    <value>12</value>
   </data>
   <data name="DMPeriod.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>Disable</value>
   </data>
   <data name="DMPeriod.Location" type="System.Drawing.Point, System.Drawing">
-    <value>259, 127</value>
+    <value>259, 92</value>
   </data>
   <data name="DMPeriod.Size" type="System.Drawing.Size, System.Drawing">
     <value>65, 19</value>
     <value>$this</value>
   </data>
   <data name="&gt;&gt;DMPeriod.ZOrder" xml:space="preserve">
-    <value>16</value>
-  </data>
-  <data name="StartupUserstreamCheck.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="StartupUserstreamCheck.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="StartupUserstreamCheck.Location" type="System.Drawing.Point, System.Drawing">
-    <value>330, 25</value>
-  </data>
-  <data name="StartupUserstreamCheck.Size" type="System.Drawing.Size, System.Drawing">
-    <value>117, 16</value>
-  </data>
-  <data name="StartupUserstreamCheck.TabIndex" type="System.Int32, mscorlib">
-    <value>22</value>
-  </data>
-  <data name="StartupUserstreamCheck.Text" xml:space="preserve">
-    <value>起動時に自動接続</value>
-  </data>
-  <data name="&gt;&gt;StartupUserstreamCheck.Name" xml:space="preserve">
-    <value>StartupUserstreamCheck</value>
-  </data>
-  <data name="&gt;&gt;StartupUserstreamCheck.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;StartupUserstreamCheck.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;StartupUserstreamCheck.ZOrder" xml:space="preserve">
-    <value>17</value>
+    <value>13</value>
   </data>
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
     <value>GetPeriodPanel</value>
   </data>
   <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>OpenTween.Setting.Panel.SettingPanelBase, OpenTween, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null</value>
+    <value>OpenTween.Setting.Panel.SettingPanelBase, OpenTween, Version=2.4.3.1, Culture=neutral, PublicKeyToken=null</value>
   </data>
 </root>
\ No newline at end of file
index 55d7d38..d356c68 100644 (file)
         private void InitializeComponent()
         {
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NotifyPanel));
-            this.IsRemoveSameFavEventCheckBox = new System.Windows.Forms.CheckBox();
-            this.CheckUserUpdateEvent = new System.Windows.Forms.CheckBox();
-            this.Label35 = new System.Windows.Forms.Label();
-            this.ComboBoxEventNotifySound = new System.Windows.Forms.ComboBox();
-            this.CheckFavEventUnread = new System.Windows.Forms.CheckBox();
-            this.CheckListCreatedEvent = new System.Windows.Forms.CheckBox();
-            this.CheckBlockEvent = new System.Windows.Forms.CheckBox();
-            this.CheckForceEventNotify = new System.Windows.Forms.CheckBox();
-            this.CheckListMemberRemovedEvent = new System.Windows.Forms.CheckBox();
-            this.CheckListMemberAddedEvent = new System.Windows.Forms.CheckBox();
-            this.CheckFollowEvent = new System.Windows.Forms.CheckBox();
-            this.CheckUnfavoritesEvent = new System.Windows.Forms.CheckBox();
-            this.CheckFavoritesEvent = new System.Windows.Forms.CheckBox();
-            this.CheckEventNotify = new System.Windows.Forms.CheckBox();
-            this.CheckQuotedTweetEvent = new System.Windows.Forms.CheckBox();
-            this.CheckRetweetEvent = new System.Windows.Forms.CheckBox();
             this.SuspendLayout();
             // 
-            // IsRemoveSameFavEventCheckBox
-            // 
-            resources.ApplyResources(this.IsRemoveSameFavEventCheckBox, "IsRemoveSameFavEventCheckBox");
-            this.IsRemoveSameFavEventCheckBox.Name = "IsRemoveSameFavEventCheckBox";
-            this.IsRemoveSameFavEventCheckBox.UseVisualStyleBackColor = true;
-            // 
-            // CheckUserUpdateEvent
-            // 
-            resources.ApplyResources(this.CheckUserUpdateEvent, "CheckUserUpdateEvent");
-            this.CheckUserUpdateEvent.Checked = true;
-            this.CheckUserUpdateEvent.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckUserUpdateEvent.Name = "CheckUserUpdateEvent";
-            this.CheckUserUpdateEvent.ThreeState = true;
-            this.CheckUserUpdateEvent.UseVisualStyleBackColor = true;
-            // 
-            // Label35
-            // 
-            resources.ApplyResources(this.Label35, "Label35");
-            this.Label35.Name = "Label35";
-            // 
-            // ComboBoxEventNotifySound
-            // 
-            this.ComboBoxEventNotifySound.FormattingEnabled = true;
-            resources.ApplyResources(this.ComboBoxEventNotifySound, "ComboBoxEventNotifySound");
-            this.ComboBoxEventNotifySound.Name = "ComboBoxEventNotifySound";
-            // 
-            // CheckFavEventUnread
-            // 
-            resources.ApplyResources(this.CheckFavEventUnread, "CheckFavEventUnread");
-            this.CheckFavEventUnread.Checked = true;
-            this.CheckFavEventUnread.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckFavEventUnread.Name = "CheckFavEventUnread";
-            this.CheckFavEventUnread.UseVisualStyleBackColor = true;
-            // 
-            // CheckListCreatedEvent
-            // 
-            resources.ApplyResources(this.CheckListCreatedEvent, "CheckListCreatedEvent");
-            this.CheckListCreatedEvent.Checked = true;
-            this.CheckListCreatedEvent.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckListCreatedEvent.Name = "CheckListCreatedEvent";
-            this.CheckListCreatedEvent.ThreeState = true;
-            this.CheckListCreatedEvent.UseVisualStyleBackColor = true;
-            // 
-            // CheckBlockEvent
-            // 
-            resources.ApplyResources(this.CheckBlockEvent, "CheckBlockEvent");
-            this.CheckBlockEvent.Checked = true;
-            this.CheckBlockEvent.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckBlockEvent.Name = "CheckBlockEvent";
-            this.CheckBlockEvent.ThreeState = true;
-            this.CheckBlockEvent.UseVisualStyleBackColor = true;
-            // 
-            // CheckForceEventNotify
-            // 
-            resources.ApplyResources(this.CheckForceEventNotify, "CheckForceEventNotify");
-            this.CheckForceEventNotify.Checked = true;
-            this.CheckForceEventNotify.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckForceEventNotify.Name = "CheckForceEventNotify";
-            this.CheckForceEventNotify.UseVisualStyleBackColor = true;
-            // 
-            // CheckListMemberRemovedEvent
-            // 
-            resources.ApplyResources(this.CheckListMemberRemovedEvent, "CheckListMemberRemovedEvent");
-            this.CheckListMemberRemovedEvent.Checked = true;
-            this.CheckListMemberRemovedEvent.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckListMemberRemovedEvent.Name = "CheckListMemberRemovedEvent";
-            this.CheckListMemberRemovedEvent.ThreeState = true;
-            this.CheckListMemberRemovedEvent.UseVisualStyleBackColor = true;
-            // 
-            // CheckListMemberAddedEvent
-            // 
-            resources.ApplyResources(this.CheckListMemberAddedEvent, "CheckListMemberAddedEvent");
-            this.CheckListMemberAddedEvent.Checked = true;
-            this.CheckListMemberAddedEvent.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckListMemberAddedEvent.Name = "CheckListMemberAddedEvent";
-            this.CheckListMemberAddedEvent.ThreeState = true;
-            this.CheckListMemberAddedEvent.UseVisualStyleBackColor = true;
-            // 
-            // CheckFollowEvent
-            // 
-            resources.ApplyResources(this.CheckFollowEvent, "CheckFollowEvent");
-            this.CheckFollowEvent.Checked = true;
-            this.CheckFollowEvent.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckFollowEvent.Name = "CheckFollowEvent";
-            this.CheckFollowEvent.ThreeState = true;
-            this.CheckFollowEvent.UseVisualStyleBackColor = true;
-            // 
-            // CheckUnfavoritesEvent
-            // 
-            resources.ApplyResources(this.CheckUnfavoritesEvent, "CheckUnfavoritesEvent");
-            this.CheckUnfavoritesEvent.Checked = true;
-            this.CheckUnfavoritesEvent.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckUnfavoritesEvent.Name = "CheckUnfavoritesEvent";
-            this.CheckUnfavoritesEvent.ThreeState = true;
-            this.CheckUnfavoritesEvent.UseVisualStyleBackColor = true;
-            // 
-            // CheckFavoritesEvent
-            // 
-            resources.ApplyResources(this.CheckFavoritesEvent, "CheckFavoritesEvent");
-            this.CheckFavoritesEvent.Checked = true;
-            this.CheckFavoritesEvent.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckFavoritesEvent.Name = "CheckFavoritesEvent";
-            this.CheckFavoritesEvent.ThreeState = true;
-            this.CheckFavoritesEvent.UseVisualStyleBackColor = true;
-            // 
-            // CheckEventNotify
-            // 
-            resources.ApplyResources(this.CheckEventNotify, "CheckEventNotify");
-            this.CheckEventNotify.Checked = true;
-            this.CheckEventNotify.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckEventNotify.Name = "CheckEventNotify";
-            this.CheckEventNotify.UseVisualStyleBackColor = true;
-            this.CheckEventNotify.CheckedChanged += new System.EventHandler(this.CheckEventNotify_CheckedChanged);
-            // 
-            // CheckQuotedTweetEvent
-            // 
-            resources.ApplyResources(this.CheckQuotedTweetEvent, "CheckQuotedTweetEvent");
-            this.CheckQuotedTweetEvent.Checked = true;
-            this.CheckQuotedTweetEvent.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckQuotedTweetEvent.Name = "CheckQuotedTweetEvent";
-            this.CheckQuotedTweetEvent.ThreeState = true;
-            this.CheckQuotedTweetEvent.UseVisualStyleBackColor = true;
-            // 
-            // CheckRetweetEvent
-            // 
-            resources.ApplyResources(this.CheckRetweetEvent, "CheckRetweetEvent");
-            this.CheckRetweetEvent.Checked = true;
-            this.CheckRetweetEvent.CheckState = System.Windows.Forms.CheckState.Checked;
-            this.CheckRetweetEvent.Name = "CheckRetweetEvent";
-            this.CheckRetweetEvent.ThreeState = true;
-            this.CheckRetweetEvent.UseVisualStyleBackColor = true;
-            // 
             // NotifyPanel
             // 
             resources.ApplyResources(this, "$this");
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
-            this.Controls.Add(this.IsRemoveSameFavEventCheckBox);
-            this.Controls.Add(this.CheckUserUpdateEvent);
-            this.Controls.Add(this.Label35);
-            this.Controls.Add(this.ComboBoxEventNotifySound);
-            this.Controls.Add(this.CheckFavEventUnread);
-            this.Controls.Add(this.CheckListCreatedEvent);
-            this.Controls.Add(this.CheckBlockEvent);
-            this.Controls.Add(this.CheckForceEventNotify);
-            this.Controls.Add(this.CheckListMemberRemovedEvent);
-            this.Controls.Add(this.CheckListMemberAddedEvent);
-            this.Controls.Add(this.CheckFollowEvent);
-            this.Controls.Add(this.CheckUnfavoritesEvent);
-            this.Controls.Add(this.CheckFavoritesEvent);
-            this.Controls.Add(this.CheckEventNotify);
-            this.Controls.Add(this.CheckRetweetEvent);
-            this.Controls.Add(this.CheckQuotedTweetEvent);
             this.Name = "NotifyPanel";
             this.ResumeLayout(false);
-            this.PerformLayout();
 
         }
 
         #endregion
-
-        internal System.Windows.Forms.CheckBox IsRemoveSameFavEventCheckBox;
-        internal System.Windows.Forms.CheckBox CheckUserUpdateEvent;
-        internal System.Windows.Forms.Label Label35;
-        internal System.Windows.Forms.ComboBox ComboBoxEventNotifySound;
-        internal System.Windows.Forms.CheckBox CheckFavEventUnread;
-        internal System.Windows.Forms.CheckBox CheckListCreatedEvent;
-        internal System.Windows.Forms.CheckBox CheckBlockEvent;
-        internal System.Windows.Forms.CheckBox CheckForceEventNotify;
-        internal System.Windows.Forms.CheckBox CheckListMemberRemovedEvent;
-        internal System.Windows.Forms.CheckBox CheckListMemberAddedEvent;
-        internal System.Windows.Forms.CheckBox CheckFollowEvent;
-        internal System.Windows.Forms.CheckBox CheckUnfavoritesEvent;
-        internal System.Windows.Forms.CheckBox CheckFavoritesEvent;
-        internal System.Windows.Forms.CheckBox CheckEventNotify;
-        internal System.Windows.Forms.CheckBox CheckQuotedTweetEvent;
-        internal System.Windows.Forms.CheckBox CheckRetweetEvent;
     }
 }
index 5a7c168..7e3ac68 100644 (file)
 
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
 using System.Linq;
 using System.Text;
-using System.Windows.Forms;
-using System.IO;
 
 namespace OpenTween.Setting.Panel
 {
@@ -45,166 +40,10 @@ namespace OpenTween.Setting.Panel
 
         public void LoadConfig(SettingCommon settingCommon)
         {
-            this.ApplyEventNotifyFlag(settingCommon.EventNotifyEnabled, settingCommon.EventNotifyFlag, settingCommon.IsMyEventNotifyFlag);
-            this.CheckForceEventNotify.Checked = settingCommon.ForceEventNotify;
-            this.CheckFavEventUnread.Checked = settingCommon.FavEventUnread;
-
-            this.SoundFileListup();
-
-            var soundFile = settingCommon.EventSoundFile ?? "";
-            var soundFileIdx = this.ComboBoxEventNotifySound.Items.IndexOf(soundFile);
-            if (soundFileIdx != -1)
-                this.ComboBoxEventNotifySound.SelectedIndex = soundFileIdx;
-
-            this.IsRemoveSameFavEventCheckBox.Checked = settingCommon.IsRemoveSameEvent;
         }
 
         public void SaveConfig(SettingCommon settingCommon)
         {
-            settingCommon.EventNotifyEnabled = this.CheckEventNotify.Checked;
-            this.GetEventNotifyFlag(ref settingCommon.EventNotifyFlag, ref settingCommon.IsMyEventNotifyFlag);
-            settingCommon.ForceEventNotify = this.CheckForceEventNotify.Checked;
-            settingCommon.FavEventUnread = this.CheckFavEventUnread.Checked;
-            settingCommon.EventSoundFile = (string)this.ComboBoxEventNotifySound.SelectedItem;
-            settingCommon.IsRemoveSameEvent = this.IsRemoveSameFavEventCheckBox.Checked;
-        }
-
-        private void SoundFileListup()
-        {
-            this.ComboBoxEventNotifySound.Items.Clear();
-            this.ComboBoxEventNotifySound.Items.Add("");
-            var oDir = new DirectoryInfo(Application.StartupPath + Path.DirectorySeparatorChar);
-            if (Directory.Exists(Path.Combine(Application.StartupPath, "Sounds")))
-            {
-                oDir = oDir.GetDirectories("Sounds")[0];
-            }
-            foreach (var oFile in oDir.GetFiles("*.wav"))
-            {
-                this.ComboBoxEventNotifySound.Items.Add(oFile.Name);
-            }
-        }
-
-        private class EventCheckboxTblElement
-        {
-            public CheckBox CheckBox = null!;
-            public MyCommon.EVENTTYPE Type;
-        }
-
-        private EventCheckboxTblElement[] GetEventCheckboxTable()
-        {
-            return new[]
-            {
-                new EventCheckboxTblElement
-                {
-                    CheckBox = this.CheckFavoritesEvent,
-                    Type = MyCommon.EVENTTYPE.Favorite,
-                },
-                new EventCheckboxTblElement
-                {
-                    CheckBox = this.CheckUnfavoritesEvent,
-                    Type = MyCommon.EVENTTYPE.Unfavorite,
-                },
-                new EventCheckboxTblElement
-                {
-                    CheckBox = this.CheckFollowEvent,
-                    Type = MyCommon.EVENTTYPE.Follow,
-                },
-                new EventCheckboxTblElement
-                {
-                    CheckBox = this.CheckListMemberAddedEvent,
-                    Type = MyCommon.EVENTTYPE.ListMemberAdded,
-                },
-                new EventCheckboxTblElement
-                {
-                    CheckBox = this.CheckListMemberRemovedEvent,
-                    Type = MyCommon.EVENTTYPE.ListMemberRemoved,
-                },
-                new EventCheckboxTblElement
-                {
-                    CheckBox = this.CheckBlockEvent,
-                    Type = MyCommon.EVENTTYPE.Block,
-                },
-                new EventCheckboxTblElement
-                {
-                    CheckBox = this.CheckUserUpdateEvent,
-                    Type = MyCommon.EVENTTYPE.UserUpdate,
-                },
-                new EventCheckboxTblElement
-                {
-                    CheckBox = this.CheckListCreatedEvent,
-                    Type = MyCommon.EVENTTYPE.ListCreated,
-                },
-                new EventCheckboxTblElement
-                {
-                    CheckBox = this.CheckQuotedTweetEvent,
-                    Type = MyCommon.EVENTTYPE.QuotedTweet,
-                },
-                new EventCheckboxTblElement
-                {
-                    CheckBox = this.CheckRetweetEvent,
-                    Type = MyCommon.EVENTTYPE.Retweet,
-                },
-            };
-        }
-
-        private void GetEventNotifyFlag(ref MyCommon.EVENTTYPE eventnotifyflag, ref MyCommon.EVENTTYPE isMyeventnotifyflag)
-        {
-            var evt = MyCommon.EVENTTYPE.None;
-            var myevt = MyCommon.EVENTTYPE.None;
-
-            foreach (var tbl in GetEventCheckboxTable())
-            {
-                switch (tbl.CheckBox.CheckState)
-                {
-                    case CheckState.Checked:
-                        evt |= tbl.Type;
-                        myevt |= tbl.Type;
-                        break;
-                    case CheckState.Indeterminate:
-                        evt |= tbl.Type;
-                        break;
-                    case CheckState.Unchecked:
-                        break;
-                }
-            }
-            eventnotifyflag = evt;
-            isMyeventnotifyflag = myevt;
-        }
-
-        private void ApplyEventNotifyFlag(bool rootEnabled, MyCommon.EVENTTYPE eventnotifyflag, MyCommon.EVENTTYPE isMyeventnotifyflag)
-        {
-            var evt = eventnotifyflag;
-            var myevt = isMyeventnotifyflag;
-
-            this.CheckEventNotify.Checked = rootEnabled;
-
-            foreach (var tbl in GetEventCheckboxTable())
-            {
-                if ((evt & tbl.Type) != 0)
-                {
-                    if ((myevt & tbl.Type) != 0)
-                    {
-                        tbl.CheckBox.CheckState = CheckState.Checked;
-                    }
-                    else
-                    {
-                        tbl.CheckBox.CheckState = CheckState.Indeterminate;
-                    }
-                }
-                else
-                {
-                    tbl.CheckBox.CheckState = CheckState.Unchecked;
-                }
-                tbl.CheckBox.Enabled = rootEnabled;
-            }
-        }
-
-        private void CheckEventNotify_CheckedChanged(object sender, EventArgs e)
-        {
-            foreach (var tbl in this.GetEventCheckboxTable())
-            {
-                tbl.CheckBox.Enabled = this.CheckEventNotify.Checked;
-            }
         }
     }
 }
index 123741d..1af7de1 100644 (file)
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="IsRemoveSameFavEventCheckBox.Size" type="System.Drawing.Size, System.Drawing">
-    <value>254, 16</value>
-  </data>
-  <data name="IsRemoveSameFavEventCheckBox.Text" xml:space="preserve">
-    <value>Ignore duplicated Favorite/Unfavorite events</value>
-  </data>
-  <data name="CheckUserUpdateEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>45, 195</value>
-  </data>
-  <data name="CheckUserUpdateEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>85, 16</value>
-  </data>
-  <data name="CheckUserUpdateEvent.Text" xml:space="preserve">
-    <value>Bio updated</value>
-  </data>
-  <data name="Label35.Size" type="System.Drawing.Size, System.Drawing">
-    <value>132, 12</value>
-  </data>
-  <data name="Label35.Text" xml:space="preserve">
-    <value>Play sound notify events</value>
-  </data>
-  <data name="CheckFavEventUnread.Size" type="System.Drawing.Size, System.Drawing">
-    <value>190, 16</value>
-  </data>
-  <data name="CheckFavEventUnread.Text" xml:space="preserve">
-    <value>Mark favorited tweets as unread</value>
-  </data>
-  <data name="CheckListCreatedEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>45, 220</value>
-  </data>
-  <data name="CheckListCreatedEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>91, 16</value>
-  </data>
-  <data name="CheckListCreatedEvent.Text" xml:space="preserve">
-    <value>Lists created</value>
-  </data>
-  <data name="CheckBlockEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>45, 170</value>
-  </data>
-  <data name="CheckBlockEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>68, 16</value>
-  </data>
-  <data name="CheckBlockEvent.Text" xml:space="preserve">
-    <value>Blocking</value>
-  </data>
-  <data name="CheckForceEventNotify.Size" type="System.Drawing.Size, System.Drawing">
-    <value>234, 16</value>
-  </data>
-  <data name="CheckForceEventNotify.Text" xml:space="preserve">
-    <value>Notify Events even if disable alert popup</value>
-  </data>
-  <data name="CheckListMemberRemovedEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>45, 145</value>
-  </data>
-  <data name="CheckListMemberRemovedEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>147, 16</value>
-  </data>
-  <data name="CheckListMemberRemovedEvent.Text" xml:space="preserve">
-    <value>Removed from the Lists</value>
-  </data>
-  <data name="CheckListMemberAddedEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>45, 120</value>
-  </data>
-  <data name="CheckListMemberAddedEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>119, 16</value>
-  </data>
-  <data name="CheckListMemberAddedEvent.Text" xml:space="preserve">
-    <value>Added to the Lists</value>
-  </data>
-  <data name="CheckFollowEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>45, 95</value>
-  </data>
-  <data name="CheckFollowEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>69, 16</value>
-  </data>
-  <data name="CheckFollowEvent.Text" xml:space="preserve">
-    <value>Followed</value>
-  </data>
-  <data name="CheckUnfavoritesEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>45, 70</value>
-  </data>
-  <data name="CheckUnfavoritesEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>94, 16</value>
-  </data>
-  <data name="CheckUnfavoritesEvent.Text" xml:space="preserve">
-    <value>Fav Removed</value>
-  </data>
-  <data name="CheckFavoritesEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>45, 48</value>
-  </data>
-  <data name="CheckFavoritesEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>79, 16</value>
-  </data>
-  <data name="CheckFavoritesEvent.Text" xml:space="preserve">
-    <value>Fav Added</value>
-  </data>
-  <data name="CheckEventNotify.Size" type="System.Drawing.Size, System.Drawing">
-    <value>189, 16</value>
-  </data>
-  <data name="CheckEventNotify.Text" xml:space="preserve">
-    <value>Notify Events(Only UserStream)</value>
-  </data>
-  <data name="CheckQuotedTweetEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>60, 16</value>
-  </data>
-  <data name="CheckQuotedTweetEvent.Text" xml:space="preserve">
-    <value>Quotes</value>
-  </data>
-  <data name="CheckRetweetEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>72, 16</value>
-  </data>
-  <data name="CheckRetweetEvent.Text" xml:space="preserve">
-    <value>Retweets</value>
-  </data>
 </root>
\ No newline at end of file
index 8efc293..0510b43 100644 (file)
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="IsRemoveSameFavEventCheckBox.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="IsRemoveSameFavEventCheckBox.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="IsRemoveSameFavEventCheckBox.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 298</value>
-  </data>
-  <data name="IsRemoveSameFavEventCheckBox.Size" type="System.Drawing.Size, System.Drawing">
-    <value>260, 16</value>
-  </data>
-  <data name="IsRemoveSameFavEventCheckBox.TabIndex" type="System.Int32, mscorlib">
-    <value>28</value>
-  </data>
-  <data name="IsRemoveSameFavEventCheckBox.Text" xml:space="preserve">
-    <value>重複するFav追加、Fav削除のイベントは無視する</value>
-  </data>
-  <data name="&gt;&gt;IsRemoveSameFavEventCheckBox.Name" xml:space="preserve">
-    <value>IsRemoveSameFavEventCheckBox</value>
-  </data>
-  <data name="&gt;&gt;IsRemoveSameFavEventCheckBox.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;IsRemoveSameFavEventCheckBox.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;IsRemoveSameFavEventCheckBox.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="CheckUserUpdateEvent.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckUserUpdateEvent.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckUserUpdateEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>40, 198</value>
-  </data>
-  <data name="CheckUserUpdateEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>189, 16</value>
-  </data>
-  <data name="CheckUserUpdateEvent.TabIndex" type="System.Int32, mscorlib">
-    <value>22</value>
-  </data>
-  <data name="CheckUserUpdateEvent.Text" xml:space="preserve">
-    <value>ユーザーのプロフィールが更新された</value>
-  </data>
-  <data name="&gt;&gt;CheckUserUpdateEvent.Name" xml:space="preserve">
-    <value>CheckUserUpdateEvent</value>
-  </data>
-  <data name="&gt;&gt;CheckUserUpdateEvent.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckUserUpdateEvent.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckUserUpdateEvent.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="Label35.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="Label35.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="Label35.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 326</value>
-  </data>
-  <data name="Label35.Size" type="System.Drawing.Size, System.Drawing">
-    <value>176, 12</value>
-  </data>
-  <data name="Label35.TabIndex" type="System.Int32, mscorlib">
-    <value>26</value>
-  </data>
-  <data name="Label35.Text" xml:space="preserve">
-    <value>イベント通知の際に再生するサウンド</value>
-  </data>
-  <data name="&gt;&gt;Label35.Name" xml:space="preserve">
-    <value>Label35</value>
-  </data>
-  <data name="&gt;&gt;Label35.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;Label35.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;Label35.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="ComboBoxEventNotifySound.Location" type="System.Drawing.Point, System.Drawing">
-    <value>286, 323</value>
-  </data>
-  <data name="ComboBoxEventNotifySound.Size" type="System.Drawing.Size, System.Drawing">
-    <value>188, 20</value>
-  </data>
-  <data name="ComboBoxEventNotifySound.TabIndex" type="System.Int32, mscorlib">
-    <value>27</value>
-  </data>
-  <data name="&gt;&gt;ComboBoxEventNotifySound.Name" xml:space="preserve">
-    <value>ComboBoxEventNotifySound</value>
-  </data>
-  <data name="&gt;&gt;ComboBoxEventNotifySound.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;ComboBoxEventNotifySound.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;ComboBoxEventNotifySound.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="CheckFavEventUnread.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckFavEventUnread.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckFavEventUnread.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 273</value>
-  </data>
-  <data name="CheckFavEventUnread.Size" type="System.Drawing.Size, System.Drawing">
-    <value>271, 16</value>
-  </data>
-  <data name="CheckFavEventUnread.TabIndex" type="System.Int32, mscorlib">
-    <value>25</value>
-  </data>
-  <data name="CheckFavEventUnread.Text" xml:space="preserve">
-    <value>Favoritesイベント受信の際に書き込みを未読に戻す</value>
-  </data>
-  <data name="&gt;&gt;CheckFavEventUnread.Name" xml:space="preserve">
-    <value>CheckFavEventUnread</value>
-  </data>
-  <data name="&gt;&gt;CheckFavEventUnread.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckFavEventUnread.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckFavEventUnread.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <data name="CheckListCreatedEvent.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckListCreatedEvent.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckListCreatedEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>40, 223</value>
-  </data>
-  <data name="CheckListCreatedEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>134, 16</value>
-  </data>
-  <data name="CheckListCreatedEvent.TabIndex" type="System.Int32, mscorlib">
-    <value>23</value>
-  </data>
-  <data name="CheckListCreatedEvent.Text" xml:space="preserve">
-    <value>Listsの作成に成功した</value>
-  </data>
-  <data name="&gt;&gt;CheckListCreatedEvent.Name" xml:space="preserve">
-    <value>CheckListCreatedEvent</value>
-  </data>
-  <data name="&gt;&gt;CheckListCreatedEvent.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckListCreatedEvent.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckListCreatedEvent.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="CheckBlockEvent.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckBlockEvent.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckBlockEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>40, 173</value>
-  </data>
-  <data name="CheckBlockEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>211, 16</value>
-  </data>
-  <data name="CheckBlockEvent.TabIndex" type="System.Int32, mscorlib">
-    <value>21</value>
-  </data>
-  <data name="CheckBlockEvent.Text" xml:space="preserve">
-    <value>他のユーザーに対するブロックが成功した</value>
-  </data>
-  <data name="&gt;&gt;CheckBlockEvent.Name" xml:space="preserve">
-    <value>CheckBlockEvent</value>
-  </data>
-  <data name="&gt;&gt;CheckBlockEvent.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckBlockEvent.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckBlockEvent.ZOrder" xml:space="preserve">
-    <value>6</value>
-  </data>
-  <data name="CheckForceEventNotify.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckForceEventNotify.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckForceEventNotify.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 248</value>
-  </data>
-  <data name="CheckForceEventNotify.Size" type="System.Drawing.Size, System.Drawing">
-    <value>213, 16</value>
-  </data>
-  <data name="CheckForceEventNotify.TabIndex" type="System.Int32, mscorlib">
-    <value>24</value>
-  </data>
-  <data name="CheckForceEventNotify.Text" xml:space="preserve">
-    <value>新着通知が無効でもイベントを通知する</value>
-  </data>
-  <data name="&gt;&gt;CheckForceEventNotify.Name" xml:space="preserve">
-    <value>CheckForceEventNotify</value>
-  </data>
-  <data name="&gt;&gt;CheckForceEventNotify.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckForceEventNotify.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckForceEventNotify.ZOrder" xml:space="preserve">
-    <value>7</value>
-  </data>
-  <data name="CheckListMemberRemovedEvent.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckListMemberRemovedEvent.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckListMemberRemovedEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>40, 148</value>
-  </data>
-  <data name="CheckListMemberRemovedEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>119, 16</value>
-  </data>
-  <data name="CheckListMemberRemovedEvent.TabIndex" type="System.Int32, mscorlib">
-    <value>20</value>
-  </data>
-  <data name="CheckListMemberRemovedEvent.Text" xml:space="preserve">
-    <value>Listsから削除された</value>
-  </data>
-  <data name="&gt;&gt;CheckListMemberRemovedEvent.Name" xml:space="preserve">
-    <value>CheckListMemberRemovedEvent</value>
-  </data>
-  <data name="&gt;&gt;CheckListMemberRemovedEvent.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckListMemberRemovedEvent.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckListMemberRemovedEvent.ZOrder" xml:space="preserve">
-    <value>8</value>
-  </data>
-  <data name="CheckListMemberAddedEvent.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckListMemberAddedEvent.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckListMemberAddedEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>40, 123</value>
-  </data>
-  <data name="CheckListMemberAddedEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>110, 16</value>
-  </data>
-  <data name="CheckListMemberAddedEvent.TabIndex" type="System.Int32, mscorlib">
-    <value>19</value>
-  </data>
-  <data name="CheckListMemberAddedEvent.Text" xml:space="preserve">
-    <value>Listsに追加された</value>
-  </data>
-  <data name="&gt;&gt;CheckListMemberAddedEvent.Name" xml:space="preserve">
-    <value>CheckListMemberAddedEvent</value>
-  </data>
-  <data name="&gt;&gt;CheckListMemberAddedEvent.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckListMemberAddedEvent.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckListMemberAddedEvent.ZOrder" xml:space="preserve">
-    <value>9</value>
-  </data>
-  <data name="CheckFollowEvent.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckFollowEvent.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckFollowEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>40, 98</value>
-  </data>
-  <data name="CheckFollowEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>87, 16</value>
-  </data>
-  <data name="CheckFollowEvent.TabIndex" type="System.Int32, mscorlib">
-    <value>18</value>
-  </data>
-  <data name="CheckFollowEvent.Text" xml:space="preserve">
-    <value>フォローされた</value>
-  </data>
-  <data name="&gt;&gt;CheckFollowEvent.Name" xml:space="preserve">
-    <value>CheckFollowEvent</value>
-  </data>
-  <data name="&gt;&gt;CheckFollowEvent.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckFollowEvent.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckFollowEvent.ZOrder" xml:space="preserve">
-    <value>10</value>
-  </data>
-  <data name="CheckUnfavoritesEvent.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckUnfavoritesEvent.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckUnfavoritesEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>40, 73</value>
-  </data>
-  <data name="CheckUnfavoritesEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>192, 16</value>
-  </data>
-  <data name="CheckUnfavoritesEvent.TabIndex" type="System.Int32, mscorlib">
-    <value>17</value>
-  </data>
-  <data name="CheckUnfavoritesEvent.Text" xml:space="preserve">
-    <value>Fav削除した、またはFav削除された</value>
-  </data>
-  <data name="&gt;&gt;CheckUnfavoritesEvent.Name" xml:space="preserve">
-    <value>CheckUnfavoritesEvent</value>
-  </data>
-  <data name="&gt;&gt;CheckUnfavoritesEvent.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckUnfavoritesEvent.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckUnfavoritesEvent.ZOrder" xml:space="preserve">
-    <value>11</value>
-  </data>
-  <data name="CheckFavoritesEvent.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckFavoritesEvent.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckFavoritesEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>40, 48</value>
-  </data>
-  <data name="CheckFavoritesEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>192, 16</value>
-  </data>
-  <data name="CheckFavoritesEvent.TabIndex" type="System.Int32, mscorlib">
-    <value>16</value>
-  </data>
-  <data name="CheckFavoritesEvent.Text" xml:space="preserve">
-    <value>Fav追加した、またはFav追加された</value>
-  </data>
-  <data name="&gt;&gt;CheckFavoritesEvent.Name" xml:space="preserve">
-    <value>CheckFavoritesEvent</value>
-  </data>
-  <data name="&gt;&gt;CheckFavoritesEvent.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckFavoritesEvent.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckFavoritesEvent.ZOrder" xml:space="preserve">
-    <value>12</value>
-  </data>
-  <data name="CheckEventNotify.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckEventNotify.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckEventNotify.Location" type="System.Drawing.Point, System.Drawing">
-    <value>23, 23</value>
-  </data>
-  <data name="CheckEventNotify.Size" type="System.Drawing.Size, System.Drawing">
-    <value>376, 16</value>
-  </data>
-  <data name="CheckEventNotify.TabIndex" type="System.Int32, mscorlib">
-    <value>15</value>
-  </data>
-  <data name="CheckEventNotify.Text" xml:space="preserve">
-    <value>次のイベントを受信したときにバルーンで通知する(UserStream有効時のみ)</value>
-  </data>
-  <data name="&gt;&gt;CheckEventNotify.Name" xml:space="preserve">
-    <value>CheckEventNotify</value>
-  </data>
-  <data name="&gt;&gt;CheckEventNotify.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckEventNotify.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckEventNotify.ZOrder" xml:space="preserve">
-    <value>13</value>
-  </data>
-  <data name="CheckQuotedTweetEvent.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckQuotedTweetEvent.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckQuotedTweetEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>275, 48</value>
-  </data>
-  <data name="CheckQuotedTweetEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>199, 16</value>
-  </data>
-  <data name="CheckQuotedTweetEvent.TabIndex" type="System.Int32, mscorlib">
-    <value>29</value>
-  </data>
-  <data name="CheckQuotedTweetEvent.Text" xml:space="preserve">
-    <value>ツイートを引用した、または引用された</value>
-  </data>
-  <data name="&gt;&gt;CheckQuotedTweetEvent.Name" xml:space="preserve">
-    <value>CheckQuotedTweetEvent</value>
-  </data>
-  <data name="&gt;&gt;CheckQuotedTweetEvent.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckQuotedTweetEvent.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckQuotedTweetEvent.ZOrder" xml:space="preserve">
-    <value>15</value>
-  </data>
-  <data name="CheckRetweetEvent.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="CheckRetweetEvent.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="CheckRetweetEvent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>275, 73</value>
-  </data>
-  <data name="CheckRetweetEvent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>184, 16</value>
-  </data>
-  <data name="CheckRetweetEvent.TabIndex" type="System.Int32, mscorlib">
-    <value>30</value>
-  </data>
-  <data name="CheckRetweetEvent.Text" xml:space="preserve">
-    <value>公式RTした、または公式RTされた</value>
-  </data>
-  <data name="&gt;&gt;CheckRetweetEvent.Name" xml:space="preserve">
-    <value>CheckRetweetEvent</value>
-  </data>
-  <data name="&gt;&gt;CheckRetweetEvent.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CheckRetweetEvent.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;CheckRetweetEvent.ZOrder" xml:space="preserve">
-    <value>14</value>
-  </data>
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
     <value>96, 96</value>
   </data>
     <value>NotifyPanel</value>
   </data>
   <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>OpenTween.Setting.Panel.SettingPanelBase, OpenTween, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null</value>
+    <value>OpenTween.Setting.Panel.SettingPanelBase, OpenTween, Version=2.4.3.1, Culture=neutral, PublicKeyToken=null</value>
   </data>
 </root>
\ No newline at end of file
index e5d8dfa..ac87931 100644 (file)
@@ -116,13 +116,7 @@ namespace OpenTween
         public bool ListLock = false;
         public MyCommon.IconSizes IconSize = MyCommon.IconSizes.Icon16;
         public bool NewAllPop = true;
-        public bool EventNotifyEnabled = true;
-        public MyCommon.EVENTTYPE EventNotifyFlag = MyCommon.EVENTTYPE.All;
-        public MyCommon.EVENTTYPE IsMyEventNotifyFlag = MyCommon.EVENTTYPE.All;
-        public bool ForceEventNotify = false;
-        public bool FavEventUnread = true;
         public string TranslateLanguage = Properties.Resources.TranslateDefaultLanguage;
-        public string EventSoundFile = "";
 
         /// <summary>
         /// サウンド再生(タブ別設定より優先)
@@ -216,10 +210,6 @@ namespace OpenTween
         public int FirstCountApi = 100;
         public int SearchCountApi = 100;
         public int FavoritesCountApi = 40;
-        public string TrackWord = "";
-        public bool AllAtReply = false;
-        public bool UserstreamStartup = true;
-        public int UserstreamPeriod = 0;
         public int UserTimelineCountApi = 20;
         public int UserTimelinePeriod = 600;
         public bool OpenUserTimeline = true;
@@ -237,7 +227,6 @@ namespace OpenTween
         public MapProvider MapThumbnailProvider = MapProvider.OpenStreetMap;
         public bool IsListsIncludeRts = false;
         public bool TabMouseLock = false;
-        public bool IsRemoveSameEvent = false;
         public bool IsUseNotifyGrowl = false;
         public bool ForceIPv4 = false;
         public bool ErrorReportAnonymous = true;
index 99cd1ad..f9ce209 100644 (file)
             this.ToolStripSeparator34 = new System.Windows.Forms.ToolStripSeparator();
             this.RtCountMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.ListManageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-            this.MenuItemUserStream = new System.Windows.Forms.ToolStripMenuItem();
-            this.StopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-            this.ToolStripSeparator40 = new System.Windows.Forms.ToolStripSeparator();
-            this.TrackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-            this.AllrepliesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-            this.ToolStripSeparator42 = new System.Windows.Forms.ToolStripSeparator();
-            this.EventViewerMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.MenuItemHelp = new System.Windows.Forms.ToolStripMenuItem();
             this.MatomeMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.ShortcutKeyListMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.MenuItemOperate,
             this.MenuItemTab,
             this.MenuItemCommand,
-            this.MenuItemUserStream,
             this.MenuItemHelp});
             this.MenuStrip1.Name = "MenuStrip1";
             this.MenuStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
             resources.ApplyResources(this.ListManageToolStripMenuItem, "ListManageToolStripMenuItem");
             this.ListManageToolStripMenuItem.Click += new System.EventHandler(this.ListManageToolStripMenuItem_Click);
             // 
-            // MenuItemUserStream
-            // 
-            this.MenuItemUserStream.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.StopToolStripMenuItem,
-            this.ToolStripSeparator40,
-            this.TrackToolStripMenuItem,
-            this.AllrepliesToolStripMenuItem,
-            this.ToolStripSeparator42,
-            this.EventViewerMenuItem});
-            resources.ApplyResources(this.MenuItemUserStream, "MenuItemUserStream");
-            this.MenuItemUserStream.Name = "MenuItemUserStream";
-            // 
-            // StopToolStripMenuItem
-            // 
-            this.StopToolStripMenuItem.Name = "StopToolStripMenuItem";
-            resources.ApplyResources(this.StopToolStripMenuItem, "StopToolStripMenuItem");
-            this.StopToolStripMenuItem.Click += new System.EventHandler(this.StopToolStripMenuItem_Click);
-            // 
-            // ToolStripSeparator40
-            // 
-            this.ToolStripSeparator40.Name = "ToolStripSeparator40";
-            resources.ApplyResources(this.ToolStripSeparator40, "ToolStripSeparator40");
-            // 
-            // TrackToolStripMenuItem
-            // 
-            this.TrackToolStripMenuItem.CheckOnClick = true;
-            this.TrackToolStripMenuItem.Name = "TrackToolStripMenuItem";
-            resources.ApplyResources(this.TrackToolStripMenuItem, "TrackToolStripMenuItem");
-            this.TrackToolStripMenuItem.Click += new System.EventHandler(this.TrackToolStripMenuItem_Click);
-            // 
-            // AllrepliesToolStripMenuItem
-            // 
-            this.AllrepliesToolStripMenuItem.CheckOnClick = true;
-            this.AllrepliesToolStripMenuItem.Name = "AllrepliesToolStripMenuItem";
-            resources.ApplyResources(this.AllrepliesToolStripMenuItem, "AllrepliesToolStripMenuItem");
-            this.AllrepliesToolStripMenuItem.Click += new System.EventHandler(this.AllrepliesToolStripMenuItem_Click);
-            // 
-            // ToolStripSeparator42
-            // 
-            this.ToolStripSeparator42.Name = "ToolStripSeparator42";
-            resources.ApplyResources(this.ToolStripSeparator42, "ToolStripSeparator42");
-            // 
-            // EventViewerMenuItem
-            // 
-            this.EventViewerMenuItem.Name = "EventViewerMenuItem";
-            resources.ApplyResources(this.EventViewerMenuItem, "EventViewerMenuItem");
-            this.EventViewerMenuItem.Click += new System.EventHandler(this.EventViewerMenuItem_Click);
-            // 
             // MenuItemHelp
             // 
             this.MenuItemHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
         internal System.Windows.Forms.ToolStripSeparator ToolStripSeparator34;
         internal System.Windows.Forms.ToolStripMenuItem RtCountMenuItem;
         internal System.Windows.Forms.ToolStripMenuItem ListManageToolStripMenuItem;
-        internal System.Windows.Forms.ToolStripMenuItem MenuItemUserStream;
-        internal System.Windows.Forms.ToolStripMenuItem StopToolStripMenuItem;
-        internal System.Windows.Forms.ToolStripSeparator ToolStripSeparator40;
-        internal System.Windows.Forms.ToolStripMenuItem TrackToolStripMenuItem;
-        internal System.Windows.Forms.ToolStripMenuItem AllrepliesToolStripMenuItem;
-        internal System.Windows.Forms.ToolStripSeparator ToolStripSeparator42;
-        internal System.Windows.Forms.ToolStripMenuItem EventViewerMenuItem;
         internal System.Windows.Forms.ToolStripMenuItem MenuItemHelp;
         internal System.Windows.Forms.ToolStripMenuItem MatomeMenuItem;
         internal System.Windows.Forms.ToolStripMenuItem ShortcutKeyListMenuItem;
index 8c87161..a53e55d 100644 (file)
@@ -160,7 +160,6 @@ namespace OpenTween
         public AtIdSupplement HashSupl = null!;
 
         public HashtagManage HashMgr = null!;
-        private EventViewerDialog evtDialog = null!;
 
         //表示フォント、色、アイコン
 
@@ -366,7 +365,6 @@ namespace OpenTween
         //////////////////////////////////////////////////////////////////////////////////////////////////////////
 
         private readonly TimelineScheduler timelineScheduler = new TimelineScheduler();
-        private ThrottleTimer refreshThrottlingTimer = null!;
         private DebounceTimer selectionDebouncer = null!;
         private DebounceTimer saveConfigDebouncer = null!;
 
@@ -508,7 +506,6 @@ namespace OpenTween
 
                 this.thumbnailTokenSource?.Dispose();
 
-                this.tw.Dispose();
                 this.twitterApi.Dispose();
                 this._hookGlobalHotkey.Dispose();
             }
@@ -910,10 +907,6 @@ namespace OpenTween
             TwitterApiConnection.RestApiHost = SettingManager.Common.TwitterApiHost;
             tw.RestrictFavCheck = SettingManager.Common.RestrictFavCheck;
             tw.ReadOwnPost = SettingManager.Common.ReadOwnPost;
-            tw.TrackWord = SettingManager.Common.TrackWord;
-            TrackToolStripMenuItem.Checked = !MyCommon.IsNullOrEmpty(tw.TrackWord);
-            tw.AllAtReply = SettingManager.Common.AllAtReply;
-            AllrepliesToolStripMenuItem.Checked = tw.AllAtReply;
             ShortUrl.Instance.DisableExpanding = !SettingManager.Common.TinyUrlResolve;
             ShortUrl.Instance.BitlyAccessToken = SettingManager.Common.BitlyAccessToken;
             ShortUrl.Instance.BitlyId = SettingManager.Common.BilyUser;
@@ -1216,8 +1209,6 @@ namespace OpenTween
             }));
             this.RefreshTimelineScheduler();
 
-            var streamingRefreshInterval = TimeSpan.FromSeconds(SettingManager.Common.UserstreamPeriod);
-            this.refreshThrottlingTimer = ThrottleTimer.Create(() => this.InvokeAsync(() => this.RefreshTimeline()), streamingRefreshInterval);
             this.selectionDebouncer = DebounceTimer.Create(() => this.InvokeAsync(() => this.UpdateSelectedPost()), TimeSpan.FromMilliseconds(100), leading: true);
             this.saveConfigDebouncer = DebounceTimer.Create(() => this.InvokeAsync(() => this.SaveConfigsAll(ifModified: true)), TimeSpan.FromSeconds(1));
 
@@ -1376,14 +1367,6 @@ namespace OpenTween
 
         private void TimerInterval_Changed(object sender, IntervalChangedEventArgs e)
         {
-            if (e.UserStream)
-            {
-                var interval = TimeSpan.FromSeconds(SettingManager.Common.UserstreamPeriod);
-                var newTimer = ThrottleTimer.Create(() => this.InvokeAsync(() => this.RefreshTimeline()), interval);
-                var oldTimer = Interlocked.Exchange(ref this.refreshThrottlingTimer, newTimer);
-                oldTimer.Dispose();
-            }
-
             this.RefreshTimelineScheduler();
         }
 
@@ -1711,35 +1694,6 @@ namespace OpenTween
 
         private bool BalloonRequired()
         {
-            var ev = new Twitter.FormattedEvent
-            {
-                Eventtype = MyCommon.EVENTTYPE.None,
-            };
-
-            return BalloonRequired(ev);
-        }
-
-        private bool IsEventNotifyAsEventType(MyCommon.EVENTTYPE type)
-        {
-            if (type == MyCommon.EVENTTYPE.None)
-                return true;
-
-            if (!SettingManager.Common.EventNotifyEnabled)
-                return false;
-
-            return SettingManager.Common.EventNotifyFlag.HasFlag(type);
-        }
-
-        private bool IsMyEventNotityAsEventType(Twitter.FormattedEvent ev)
-        {
-            if (!ev.IsMe)
-                return true;
-
-            return SettingManager.Common.IsMyEventNotifyFlag.HasFlag(ev.Eventtype);
-        }
-
-        private bool BalloonRequired(Twitter.FormattedEvent ev)
-        {
             if (this._initial)
                 return false;
 
@@ -1748,11 +1702,7 @@ namespace OpenTween
 
             // 「新着通知」が無効
             if (!this.NewPostPopMenuItem.Checked)
-            {
-                // 「新着通知が無効でもイベントを通知する」にも該当しない
-                if (!SettingManager.Common.ForceEventNotify || ev.Eventtype == MyCommon.EVENTTYPE.None)
-                    return false;
-            }
+                return false;
 
             // 「画面最小化・アイコン時のみバルーンを表示する」が有効
             if (SettingManager.Common.LimitBalloon)
@@ -1761,7 +1711,7 @@ namespace OpenTween
                     return false;
             }
 
-            return this.IsEventNotifyAsEventType(ev.Eventtype) && this.IsMyEventNotityAsEventType(ev);
+            return true;
         }
 
         private void NotifyNewPosts(PostClass[] notifyPosts, string soundFile, int addCount, bool newMentions)
@@ -2720,19 +2670,16 @@ namespace OpenTween
             this.SetMainWindowTitle();
 
             // TLに反映
-            if (!this.tw.UserStreamActive)
+            if (SettingManager.Common.PostAndGet)
+                await this.RefreshTabAsync<HomeTabModel>();
+            else
             {
-                if (SettingManager.Common.PostAndGet)
-                    await this.RefreshTabAsync<HomeTabModel>();
-                else
+                if (post != null)
                 {
-                    if (post != null)
-                    {
-                        this._statuses.AddPost(post);
-                        this._statuses.DistributePosts();
-                    }
-                    this.RefreshTimeline();
+                    this._statuses.AddPost(post);
+                    this._statuses.DistributePosts();
                 }
+                this.RefreshTimeline();
             }
         }
 
@@ -2799,20 +2746,16 @@ namespace OpenTween
                     this._postTimestamps.RemoveAt(i);
             }
 
-            // TLに反映
-            if (!this.tw.UserStreamActive)
-            {
-                // 自分のRTはTLの更新では取得できない場合があるので、
-                // 投稿時取得の有無に関わらず追加しておく
-                posts.ForEach(post => this._statuses.AddPost(post));
+            // 自分のRTはTLの更新では取得できない場合があるので、
+            // 投稿時取得の有無に関わらず追加しておく
+            posts.ForEach(post => this._statuses.AddPost(post));
 
-                if (SettingManager.Common.PostAndGet)
-                    await this.RefreshTabAsync<HomeTabModel>();
-                else
-                {
-                    this._statuses.DistributePosts();
-                    this.RefreshTimeline();
-                }
+            if (SettingManager.Common.PostAndGet)
+                await this.RefreshTabAsync<HomeTabModel>();
+            else
+            {
+                this._statuses.DistributePosts();
+                this.RefreshTimeline();
             }
         }
 
@@ -7052,8 +6995,6 @@ namespace OpenTween
                 SettingManager.Common.HashIsHead = HashMgr.IsHead;
                 SettingManager.Common.HashIsPermanent = HashMgr.IsPermanent;
                 SettingManager.Common.HashIsNotAddToAtReply = HashMgr.IsNotAddToAtReply;
-                SettingManager.Common.TrackWord = tw.TrackWord;
-                SettingManager.Common.AllAtReply = tw.AllAtReply;
                 SettingManager.Common.UseImageService = ImageSelector.ServiceIndex;
                 SettingManager.Common.UseImageServiceName = ImageSelector.ServiceName;
 
@@ -9571,28 +9512,12 @@ namespace OpenTween
             if (flg) LView.Invalidate(bnd);
         }
 
-        private void StartUserStream()
-        {
-            tw.NewPostFromStream += tw_NewPostFromStream;
-            tw.UserStreamStarted += tw_UserStreamStarted;
-            tw.UserStreamStopped += tw_UserStreamStopped;
-            tw.PostDeleted += tw_PostDeleted;
-            tw.UserStreamEventReceived += tw_UserStreamEventArrived;
-
-            this.RefreshUserStreamsMenu();
-
-            if (SettingManager.Common.UserstreamStartup)
-                tw.StartUserStream();
-        }
-
         private async void TweenMain_Shown(object sender, EventArgs e)
         {
             NotifyIcon1.Visible = true;
 
             if (this.IsNetworkAvailable())
             {
-                StartUserStream();
-
                 var loadTasks = new List<Task>
                 {
                     this.RefreshMuteUserIdsAsync(),
@@ -11043,302 +10968,6 @@ namespace OpenTween
             MessageBox.Show(buf.ToString(), "アイコンキャッシュ使用状況");
         }
 
-#region "Userstream"
-        private async void tw_PostDeleted(object sender, PostDeletedEventArgs e)
-        {
-            try
-            {
-                if (InvokeRequired && !IsDisposed)
-                {
-                    await this.InvokeAsync(() =>
-                    {
-                        this._statuses.RemovePostFromAllTabs(e.StatusId, setIsDeleted: true);
-                        if (this.CurrentTab.Contains(e.StatusId))
-                        {
-                            this.PurgeListViewItemCache();
-                            this.CurrentListView.Update();
-                            var post = this.CurrentPost;
-                            if (post != null && post.StatusId == e.StatusId)
-                                this.DispSelectedPost(true);
-                        }
-                    });
-                    return;
-                }
-            }
-            catch (ObjectDisposedException)
-            {
-                return;
-            }
-            catch (InvalidOperationException)
-            {
-                return;
-            }
-        }
-
-        private void tw_NewPostFromStream(object sender, EventArgs e)
-        {
-            if (SettingManager.Common.ReadOldPosts)
-            {
-                _statuses.SetReadHomeTab(); //新着時未読クリア
-            }
-
-            this._statuses.DistributePosts();
-
-            _ = this.refreshThrottlingTimer.Call();
-        }
-
-        private async void tw_UserStreamStarted(object sender, EventArgs e)
-        {
-            try
-            {
-                if (InvokeRequired && !IsDisposed)
-                {
-                    await this.InvokeAsync(() => this.tw_UserStreamStarted(sender, e));
-                    return;
-                }
-            }
-            catch (ObjectDisposedException)
-            {
-                return;
-            }
-            catch (InvalidOperationException)
-            {
-                return;
-            }
-
-            this.RefreshUserStreamsMenu();
-            this.MenuItemUserStream.Enabled = true;
-
-            StatusLabel.Text = "UserStream Started.";
-        }
-
-        private async void tw_UserStreamStopped(object sender, EventArgs e)
-        {
-            try
-            {
-                if (InvokeRequired && !IsDisposed)
-                {
-                    await this.InvokeAsync(() => this.tw_UserStreamStopped(sender, e));
-                    return;
-                }
-            }
-            catch (ObjectDisposedException)
-            {
-                return;
-            }
-            catch (InvalidOperationException)
-            {
-                return;
-            }
-
-            this.RefreshUserStreamsMenu();
-            this.MenuItemUserStream.Enabled = true;
-
-            StatusLabel.Text = "UserStream Stopped.";
-        }
-
-        private void RefreshUserStreamsMenu()
-        {
-            if (this.tw.UserStreamActive)
-            {
-                this.MenuItemUserStream.Text = "&UserStream ▶";
-                this.StopToolStripMenuItem.Text = "&Stop";
-            }
-            else
-            {
-                this.MenuItemUserStream.Text = "&UserStream ■";
-                this.StopToolStripMenuItem.Text = "&Start";
-            }
-        }
-
-        private async void tw_UserStreamEventArrived(object sender, UserStreamEventReceivedEventArgs e)
-        {
-            try
-            {
-                if (InvokeRequired && !IsDisposed)
-                {
-                    await this.InvokeAsync(() => this.tw_UserStreamEventArrived(sender, e));
-                    return;
-                }
-            }
-            catch (ObjectDisposedException)
-            {
-                return;
-            }
-            catch (InvalidOperationException)
-            {
-                return;
-            }
-            var ev = e.EventData;
-            StatusLabel.Text = "Event: " + ev.Event;
-            NotifyEvent(ev);
-            if (ev.Event == "favorite" || ev.Event == "unfavorite")
-            {
-                if (this.CurrentTab.Contains(ev.Id))
-                {
-                    this.PurgeListViewItemCache();
-                    this.CurrentListView.Update();
-                }
-                if (ev.Event == "unfavorite" && ev.Username.Equals(tw.Username, StringComparison.InvariantCultureIgnoreCase))
-                {
-                    var favTab = this._statuses.FavoriteTab;
-                    favTab.EnqueueRemovePost(ev.Id, setIsDeleted: false);
-                }
-            }
-        }
-
-        private void NotifyEvent(Twitter.FormattedEvent ev)
-        {
-            //新着通知 
-            if (BalloonRequired(ev))
-            {
-                NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
-                var title = new StringBuilder();
-                if (SettingManager.Common.DispUsername)
-                {
-                    title.Append(tw.Username);
-                    title.Append(" - ");
-                }
-                title.Append(ApplicationSettings.ApplicationName);
-                title.Append(" [");
-                title.Append(ev.Event.ToUpper(CultureInfo.CurrentCulture));
-                title.Append("] by ");
-                if (!MyCommon.IsNullOrEmpty(ev.Username))
-                {
-                    title.Append(ev.Username);
-                }
-
-                string text;
-                if (!MyCommon.IsNullOrEmpty(ev.Target))
-                    text = ev.Target;
-                else
-                    text = " ";
-
-                if (SettingManager.Common.IsUseNotifyGrowl)
-                {
-                    gh.Notify(GrowlHelper.NotifyType.UserStreamEvent,
-                              ev.Id.ToString(), title.ToString(), text);
-                }
-                else
-                {
-                    NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
-                    NotifyIcon1.BalloonTipTitle = title.ToString();
-                    NotifyIcon1.BalloonTipText = text;
-                    NotifyIcon1.ShowBalloonTip(500);
-                }
-            }
-
-            //サウンド再生
-            var snd = SettingManager.Common.EventSoundFile;
-            if (!_initial && SettingManager.Common.PlaySound && !MyCommon.IsNullOrEmpty(snd))
-            {
-                if ((ev.Eventtype & SettingManager.Common.EventNotifyFlag) != 0 && IsMyEventNotityAsEventType(ev))
-                {
-                    try
-                    {
-                        var dir = Application.StartupPath;
-                        if (Directory.Exists(Path.Combine(dir, "Sounds")))
-                        {
-                            dir = Path.Combine(dir, "Sounds");
-                        }
-                        using var player = new SoundPlayer(Path.Combine(dir, snd));
-                        player.Play();
-                    }
-                    catch (Exception)
-                    {
-                    }
-                }
-            }
-        }
-
-        private void StopToolStripMenuItem_Click(object sender, EventArgs e)
-        {
-            MenuItemUserStream.Enabled = false;
-            if (StopRefreshAllMenuItem.Checked)
-            {
-                StopRefreshAllMenuItem.Checked = false;
-                return;
-            }
-            if (this.tw.UserStreamActive)
-            {
-                tw.StopUserStream();
-            }
-            else
-            {
-                tw.StartUserStream();
-            }
-        }
-
-        private static string inputTrack = "";
-
-        private void TrackToolStripMenuItem_Click(object sender, EventArgs e)
-        {
-            if (TrackToolStripMenuItem.Checked)
-            {
-                using (var inputForm = new InputTabName())
-                {
-                    inputForm.TabName = inputTrack;
-                    inputForm.FormTitle = "Input track word";
-                    inputForm.FormDescription = "Track word";
-                    if (inputForm.ShowDialog() != DialogResult.OK)
-                    {
-                        TrackToolStripMenuItem.Checked = false;
-                        return;
-                    }
-                    inputTrack = inputForm.TabName.Trim();
-                }
-                if (!inputTrack.Equals(tw.TrackWord))
-                {
-                    tw.TrackWord = inputTrack;
-                    this.MarkSettingCommonModified();
-                    TrackToolStripMenuItem.Checked = !MyCommon.IsNullOrEmpty(inputTrack);
-                    tw.ReconnectUserStream();
-                }
-            }
-            else
-            {
-                tw.TrackWord = "";
-                tw.ReconnectUserStream();
-            }
-            this.MarkSettingCommonModified();
-        }
-
-        private void AllrepliesToolStripMenuItem_Click(object sender, EventArgs e)
-        {
-            tw.AllAtReply = AllrepliesToolStripMenuItem.Checked;
-            this.MarkSettingCommonModified();
-            tw.ReconnectUserStream();
-        }
-
-        private void EventViewerMenuItem_Click(object sender, EventArgs e)
-        {
-            if (evtDialog == null || evtDialog.IsDisposed)
-            {
-                this.evtDialog = new EventViewerDialog
-                {
-                    Owner = this,
-                };
-
-                //親の中央に表示
-                this.evtDialog.Location = new Point
-                {
-                    X = Convert.ToInt32(this.Location.X + this.Size.Width / 2 - evtDialog.Size.Width / 2),
-                    Y = Convert.ToInt32(this.Location.Y + this.Size.Height / 2 - evtDialog.Size.Height / 2),
-                };
-            }
-            evtDialog.EventSource = tw.StoredEvent;
-            if (!evtDialog.Visible)
-            {
-                evtDialog.Show(this);
-            }
-            else
-            {
-                evtDialog.Activate();
-            }
-            this.TopMost = SettingManager.Common.AlwaysTop;
-        }
-#endregion
-
         private void TweenRestartMenuItem_Click(object sender, EventArgs e)
         {
             MyCommon._endingFlag = true;
@@ -11424,14 +11053,6 @@ namespace OpenTween
 
         private void TimelineRefreshEnableChange(bool isEnable)
         {
-            if (isEnable)
-            {
-                tw.StartUserStream();
-            }
-            else
-            {
-                tw.StopUserStream();
-            }
             this.timelineScheduler.Enabled = isEnable;
         }
 
index 141eb84..2a28a20 100644 (file)
   <data name="MenuItemCommand.Text" xml:space="preserve">
     <value>その他機能(&amp;C)</value>
   </data>
-  <data name="StopToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>227, 22</value>
-  </data>
-  <data name="StopToolStripMenuItem.Text" xml:space="preserve">
-    <value>Stop</value>
-  </data>
-  <data name="ToolStripSeparator40.Size" type="System.Drawing.Size, System.Drawing">
-    <value>224, 6</value>
-  </data>
-  <data name="TrackToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>227, 22</value>
-  </data>
-  <data name="TrackToolStripMenuItem.Text" xml:space="preserve">
-    <value>Track</value>
-  </data>
-  <data name="AllrepliesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>227, 22</value>
-  </data>
-  <data name="AllrepliesToolStripMenuItem.Text" xml:space="preserve">
-    <value>All @replies</value>
-  </data>
-  <data name="ToolStripSeparator42.Size" type="System.Drawing.Size, System.Drawing">
-    <value>224, 6</value>
-  </data>
-  <data name="EventViewerMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
-    <value>Ctrl+Shift+E</value>
-  </data>
-  <data name="EventViewerMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>227, 22</value>
-  </data>
-  <data name="EventViewerMenuItem.Text" xml:space="preserve">
-    <value>View Events</value>
-  </data>
-  <data name="MenuItemUserStream.Enabled" type="System.Boolean, mscorlib">
-    <value>False</value>
-  </data>
-  <data name="MenuItemUserStream.Size" type="System.Drawing.Size, System.Drawing">
-    <value>90, 20</value>
-  </data>
-  <data name="MenuItemUserStream.Text" xml:space="preserve">
-    <value>UserStream</value>
-  </data>
   <data name="MatomeMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
     <value>F1</value>
   </data>
   <data name="&gt;&gt;ListManageToolStripMenuItem.Type" xml:space="preserve">
     <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;MenuItemUserStream.Name" xml:space="preserve">
-    <value>MenuItemUserStream</value>
-  </data>
-  <data name="&gt;&gt;MenuItemUserStream.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;StopToolStripMenuItem.Name" xml:space="preserve">
-    <value>StopToolStripMenuItem</value>
-  </data>
-  <data name="&gt;&gt;StopToolStripMenuItem.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;ToolStripSeparator40.Name" xml:space="preserve">
-    <value>ToolStripSeparator40</value>
-  </data>
-  <data name="&gt;&gt;ToolStripSeparator40.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;TrackToolStripMenuItem.Name" xml:space="preserve">
-    <value>TrackToolStripMenuItem</value>
-  </data>
-  <data name="&gt;&gt;TrackToolStripMenuItem.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;AllrepliesToolStripMenuItem.Name" xml:space="preserve">
-    <value>AllrepliesToolStripMenuItem</value>
-  </data>
-  <data name="&gt;&gt;AllrepliesToolStripMenuItem.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;ToolStripSeparator42.Name" xml:space="preserve">
-    <value>ToolStripSeparator42</value>
-  </data>
-  <data name="&gt;&gt;ToolStripSeparator42.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;EventViewerMenuItem.Name" xml:space="preserve">
-    <value>EventViewerMenuItem</value>
-  </data>
-  <data name="&gt;&gt;EventViewerMenuItem.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
   <data name="&gt;&gt;MenuItemHelp.Name" xml:space="preserve">
     <value>MenuItemHelp</value>
   </data>
index 5c6db1a..92eb41e 100644 (file)
@@ -218,7 +218,6 @@ namespace OpenTween
             }
             this.ResetApiStatus();
             this.Api.Initialize(token, tokenSecret, userId, username);
-            if (SettingManager.Common.UserstreamStartup) this.ReconnectUserStream();
         }
 
         internal static string PreProcessUrl(string orgData)
@@ -1089,122 +1088,6 @@ namespace OpenTween
                 tab.OldestId = minimumId.Value;
         }
 
-        private void CreateDirectMessagesFromJson(TwitterDirectMessage[] item, MyCommon.WORKERTYPE gType, bool read)
-        {
-            foreach (var message in item)
-            {
-                var post = new PostClass();
-                try
-                {
-                    post.StatusId = message.Id;
-
-                    //二重取得回避
-                    lock (LockObj)
-                    {
-                        if (TabInformations.GetInstance().DirectMessageTab.Contains(post.StatusId)) continue;
-                    }
-                    //sender_id
-                    //recipient_id
-                    post.CreatedAt = MyCommon.DateTimeParse(message.CreatedAt);
-                    //本文
-                    var textFromApi = message.Text;
-                    //HTMLに整形
-                    post.Text = CreateHtmlAnchor(textFromApi, message.Entities, quotedStatusLink: null);
-                    post.TextFromApi = this.ReplaceTextFromApi(textFromApi, message.Entities, quotedStatusLink: null);
-                    post.TextFromApi = WebUtility.HtmlDecode(post.TextFromApi);
-                    post.TextFromApi = post.TextFromApi.Replace("<3", "\u2661");
-                    post.AccessibleText = CreateAccessibleText(textFromApi, message.Entities, quotedStatus: null, quotedStatusLink: null);
-                    post.AccessibleText = WebUtility.HtmlDecode(post.AccessibleText);
-                    post.AccessibleText = post.AccessibleText.Replace("<3", "\u2661");
-                    post.IsFav = false;
-
-                    this.ExtractEntities(message.Entities, post.ReplyToList, post.Media);
-
-                    post.QuoteStatusIds = GetQuoteTweetStatusIds(message.Entities, quotedStatusLink: null)
-                        .Distinct().ToArray();
-
-                    post.ExpandedUrls = message.Entities.OfType<TwitterEntityUrl>()
-                        .Select(x => new PostClass.ExpandedUrlInfo(x.Url, x.ExpandedUrl))
-                        .ToArray();
-
-                    //以下、ユーザー情報
-                    TwitterUser? user;
-                    if (gType == MyCommon.WORKERTYPE.UserStream)
-                    {
-                        if (this.Api.CurrentUserId == message.Recipient?.Id)
-                        {
-                            user = message.Sender;
-                            post.IsMe = false;
-                            post.IsOwl = true;
-                        }
-                        else
-                        {
-                            user = message.Recipient;
-                            post.IsMe = true;
-                            post.IsOwl = false;
-                        }
-                    }
-                    else
-                    {
-                        if (gType == MyCommon.WORKERTYPE.DirectMessegeRcv)
-                        {
-                            user = message.Sender;
-                            post.IsMe = false;
-                            post.IsOwl = true;
-                        }
-                        else
-                        {
-                            user = message.Recipient;
-                            post.IsMe = true;
-                            post.IsOwl = false;
-                        }
-                    }
-
-                    if (user != null)
-                    {
-                        post.UserId = user.Id;
-                        post.ScreenName = user.ScreenName;
-                        post.Nickname = user.Name.Trim();
-                        post.ImageUrl = user.ProfileImageUrlHttps;
-                        post.IsProtect = user.Protected;
-                        post.IsMe = post.UserId == this.UserId;
-                    }
-                    else
-                    {
-                        post.UserId = 0L;
-                        post.ScreenName = "?????";
-                        post.Nickname = "Unknown User";
-                    }
-
-                    // メモリ使用量削減 (同一のテキストであれば同一の string インスタンスを参照させる)
-                    if (post.Text == post.TextFromApi)
-                        post.Text = post.TextFromApi;
-                    if (post.AccessibleText == post.TextFromApi)
-                        post.AccessibleText = post.TextFromApi;
-
-                    // 他の発言と重複しやすい (共通化できる) 文字列は string.Intern を通す
-                    post.ScreenName = string.Intern(post.ScreenName);
-                    post.Nickname = string.Intern(post.Nickname);
-                    post.ImageUrl = string.Intern(post.ImageUrl);
-                }
-                catch(Exception ex)
-                {
-                    MyCommon.TraceOut(ex, MethodBase.GetCurrentMethod().Name);
-                    MessageBox.Show("Parse Error(CreateDirectMessagesFromJson)");
-                    continue;
-                }
-
-                post.IsRead = read;
-                if (post.IsMe && !read && this.ReadOwnPost) post.IsRead = true;
-                post.IsReply = false;
-                post.IsExcludeReply = false;
-                post.IsDm = true;
-
-                var dmTab = TabInformations.GetInstance().DirectMessageTab;
-                dmTab.AddPostQueue(post);
-            }
-        }
-
         public async Task GetDirectMessageEvents(bool read, bool backward)
         {
             this.CheckAccountState();
@@ -1868,489 +1751,25 @@ namespace OpenTween
             return remainWeight / config.Scale;
         }
 
+        public bool IsDisposed { get; private set; } = false;
 
-#region "UserStream"
-        public string TrackWord { get; set; } = "";
-        public bool AllAtReply { get; set; } = false;
-
-        public event EventHandler? NewPostFromStream;
-        public event EventHandler? UserStreamStarted;
-        public event EventHandler? UserStreamStopped;
-        public event EventHandler<PostDeletedEventArgs>? PostDeleted;
-        public event EventHandler<UserStreamEventReceivedEventArgs>? UserStreamEventReceived;
-        private DateTimeUtc _lastUserstreamDataReceived;
-        private StreamAutoConnector? userStreamConnector;
-
-        public class FormattedEvent
-        {
-            public MyCommon.EVENTTYPE Eventtype { get; set; }
-            public DateTimeUtc CreatedAt { get; set; }
-            public string Event { get; set; } = "";
-            public string Username { get; set; } = "";
-            public string Target { get; set; } = "";
-            public long Id { get; set; }
-            public bool IsMe { get; set; }
-        }
-
-        public List<FormattedEvent> StoredEvent { get; } = new List<FormattedEvent>();
-
-        private readonly IReadOnlyDictionary<string, MyCommon.EVENTTYPE> eventTable = new Dictionary<string, MyCommon.EVENTTYPE>
-        {
-            ["favorite"] = MyCommon.EVENTTYPE.Favorite,
-            ["unfavorite"] = MyCommon.EVENTTYPE.Unfavorite,
-            ["follow"] = MyCommon.EVENTTYPE.Follow,
-            ["list_member_added"] = MyCommon.EVENTTYPE.ListMemberAdded,
-            ["list_member_removed"] = MyCommon.EVENTTYPE.ListMemberRemoved,
-            ["block"] = MyCommon.EVENTTYPE.Block,
-            ["unblock"] = MyCommon.EVENTTYPE.Unblock,
-            ["user_update"] = MyCommon.EVENTTYPE.UserUpdate,
-            ["deleted"] = MyCommon.EVENTTYPE.Deleted,
-            ["list_created"] = MyCommon.EVENTTYPE.ListCreated,
-            ["list_destroyed"] = MyCommon.EVENTTYPE.ListDestroyed,
-            ["list_updated"] = MyCommon.EVENTTYPE.ListUpdated,
-            ["unfollow"] = MyCommon.EVENTTYPE.Unfollow,
-            ["list_user_subscribed"] = MyCommon.EVENTTYPE.ListUserSubscribed,
-            ["list_user_unsubscribed"] = MyCommon.EVENTTYPE.ListUserUnsubscribed,
-            ["mute"] = MyCommon.EVENTTYPE.Mute,
-            ["unmute"] = MyCommon.EVENTTYPE.Unmute,
-            ["quoted_tweet"] = MyCommon.EVENTTYPE.QuotedTweet,
-        };
-
-        public bool IsUserstreamDataReceived
-            => (DateTimeUtc.Now - this._lastUserstreamDataReceived).TotalSeconds < 31;
-
-        private void userStream_MessageReceived(ITwitterStreamMessage message)
-        {
-            this._lastUserstreamDataReceived = DateTimeUtc.Now;
-
-            switch (message)
-            {
-                case StreamMessageStatus statusMessage:
-                    var status = statusMessage.Status.Normalize();
-
-                    if (status.RetweetedStatus is TwitterStatus retweetedStatus)
-                    {
-                        var sourceUserId = statusMessage.Status.User.Id;
-                        var targetUserId = retweetedStatus.User.Id;
-
-                        // 自分に関係しないリツイートの場合は無視する
-                        var selfUserId = this.UserId;
-                        if (sourceUserId == selfUserId || targetUserId == selfUserId)
-                        {
-                            // 公式 RT をイベントとしても扱う
-                            var evt = this.CreateEventFromRetweet(status);
-                            this.StoredEvent.Insert(0, evt);
-                            this.UserStreamEventReceived?.Invoke(this, new UserStreamEventReceivedEventArgs(evt));
-                        }
-                        // 従来通り公式 RT の表示も行うため break しない
-                    }
-
-                    this.CreatePostsFromJson(new[] { status }, MyCommon.WORKERTYPE.UserStream, null, false);
-                    this.NewPostFromStream?.Invoke(this, EventArgs.Empty);
-                    break;
-
-                case StreamMessageDirectMessage dmMessage:
-                    this.CreateDirectMessagesFromJson(new[] { dmMessage.DirectMessage }, MyCommon.WORKERTYPE.UserStream, false);
-                    this.NewPostFromStream?.Invoke(this, EventArgs.Empty);
-                    break;
-
-                case StreamMessageDelete deleteMessage:
-                    var deletedId = deleteMessage.Status?.Id ?? deleteMessage.DirectMessage?.Id;
-                    if (deletedId == null)
-                        break;
-
-                    this.PostDeleted?.Invoke(this, new PostDeletedEventArgs(deletedId.Value));
-
-                    foreach (var index in MyCommon.CountDown(this.StoredEvent.Count - 1, 0))
-                    {
-                        var evt = this.StoredEvent[index];
-                        if (evt.Id == deletedId.Value && (evt.Event == "favorite" || evt.Event == "unfavorite"))
-                        {
-                            this.StoredEvent.RemoveAt(index);
-                        }
-                    }
-                    break;
-
-                case StreamMessageEvent eventMessage:
-                    this.CreateEventFromJson(eventMessage);
-                    break;
-
-                case StreamMessageScrubGeo scrubGeoMessage:
-                    TabInformations.GetInstance().ScrubGeoReserve(scrubGeoMessage.UserId, scrubGeoMessage.UpToStatusId);
-                    break;
-
-                default:
-                    break;
-            }
-        }
-
-        /// <summary>
-        /// UserStreamsから受信した公式RTをイベントに変換します
-        /// </summary>
-        private FormattedEvent CreateEventFromRetweet(TwitterStatus status)
-        {
-            if (status.RetweetedStatus == null)
-                throw new InvalidOperationException();
-
-            return new FormattedEvent
-            {
-                Eventtype = MyCommon.EVENTTYPE.Retweet,
-                Event = "retweet",
-                CreatedAt = MyCommon.DateTimeParse(status.CreatedAt),
-                IsMe = status.User.Id == this.UserId,
-                Username = status.User.ScreenName,
-                Target = string.Format("@{0}:{1}", new[]
-                {
-                    status.RetweetedStatus.User.ScreenName,
-                    WebUtility.HtmlDecode(status.RetweetedStatus.FullText),
-                }),
-                Id = status.RetweetedStatus.Id,
-            };
-        }
-
-        private void CreateEventFromJson(StreamMessageEvent message)
-        {
-            var eventData = message.Event;
-
-            var evt = new FormattedEvent
-            {
-                CreatedAt = MyCommon.DateTimeParse(eventData.CreatedAt),
-                Event = eventData.Event,
-                Username = eventData.Source.ScreenName,
-                IsMe = eventData.Source.Id == this.UserId,
-                Eventtype = eventTable.TryGetValue(eventData.Event, out var eventType) ? eventType : MyCommon.EVENTTYPE.None,
-            };
-
-            TwitterStreamEvent<TwitterStatusCompat> tweetEvent;
-            TwitterStatus tweet;
-
-            switch (eventData.Event)
-            {
-                case "access_revoked":
-                case "access_unrevoked":
-                case "user_delete":
-                case "user_suspend":
-                    return;
-                case "follow":
-                    if (eventData.Target.Id == this.UserId)
-                    {
-                        if (!this.followerId.Contains(eventData.Source.Id)) this.followerId.Add(eventData.Source.Id);
-                    }
-                    else
-                    {
-                        return;    //Block後のUndoをすると、SourceとTargetが逆転したfollowイベントが帰ってくるため。
-                    }
-                    evt.Target = "";
-                    break;
-                case "unfollow":
-                    evt.Target = "@" + eventData.Target.ScreenName;
-                    break;
-                case "favorited_retweet":
-                case "retweeted_retweet":
-                    return;
-                case "favorite":
-                case "unfavorite":
-                    tweetEvent = message.ParseTargetObjectAs<TwitterStatusCompat>();
-                    tweet = tweetEvent.TargetObject.Normalize();
-                    evt.Target = "@" + tweet.User.ScreenName + ":" + WebUtility.HtmlDecode(tweet.FullText);
-                    evt.Id = tweet.Id;
-
-                    if (SettingManager.Common.IsRemoveSameEvent)
-                    {
-                        if (this.StoredEvent.Any(ev => ev.Username == evt.Username && ev.Eventtype == evt.Eventtype && ev.Target == evt.Target))
-                            return;
-                    }
-
-                    var tabinfo = TabInformations.GetInstance();
-
-                    var statusId = tweet.Id;
-                    if (!tabinfo.Posts.TryGetValue(statusId, out var post))
-                        break;
-
-                    if (eventData.Event == "favorite")
-                    {
-                        var favTab = tabinfo.FavoriteTab;
-                        favTab.AddPostQueue(post);
-
-                        if (tweetEvent.Source.Id == this.UserId)
-                        {
-                            post.IsFav = true;
-                        }
-                        else if (tweetEvent.Target.Id == this.UserId)
-                        {
-                            post.FavoritedCount++;
-
-                            if (SettingManager.Common.FavEventUnread)
-                                tabinfo.SetReadAllTab(post.StatusId, read: false);
-                        }
-                    }
-                    else // unfavorite
-                    {
-                        if (tweetEvent.Source.Id == this.UserId)
-                        {
-                            post.IsFav = false;
-                        }
-                        else if (tweetEvent.Target.Id == this.UserId)
-                        {
-                            post.FavoritedCount = Math.Max(0, post.FavoritedCount - 1);
-                        }
-                    }
-                    break;
-                case "quoted_tweet":
-                    if (evt.IsMe) return;
-
-                    tweetEvent = message.ParseTargetObjectAs<TwitterStatusCompat>();
-                    tweet = tweetEvent.TargetObject.Normalize();
-                    evt.Target = "@" + tweet.User.ScreenName + ":" + WebUtility.HtmlDecode(tweet.FullText);
-                    evt.Id = tweet.Id;
-
-                    if (SettingManager.Common.IsRemoveSameEvent)
-                    {
-                        if (this.StoredEvent.Any(ev => ev.Username == evt.Username && ev.Eventtype == evt.Eventtype && ev.Target == evt.Target))
-                            return;
-                    }
-                    break;
-                case "list_member_added":
-                case "list_member_removed":
-                case "list_created":
-                case "list_destroyed":
-                case "list_updated":
-                case "list_user_subscribed":
-                case "list_user_unsubscribed":
-                    var listEvent = message.ParseTargetObjectAs<TwitterList>();
-                    evt.Target = listEvent.TargetObject.FullName;
-                    break;
-                case "block":
-                    if (!TabInformations.GetInstance().BlockIds.Contains(eventData.Target.Id)) TabInformations.GetInstance().BlockIds.Add(eventData.Target.Id);
-                    evt.Target = "";
-                    break;
-                case "unblock":
-                    if (TabInformations.GetInstance().BlockIds.Contains(eventData.Target.Id)) TabInformations.GetInstance().BlockIds.Remove(eventData.Target.Id);
-                    evt.Target = "";
-                    break;
-                case "user_update":
-                    evt.Target = "";
-                    break;
-                
-                // Mute / Unmute
-                case "mute":
-                    evt.Target = "@" + eventData.Target.ScreenName;
-                    if (!TabInformations.GetInstance().MuteUserIds.Contains(eventData.Target.Id))
-                    {
-                        TabInformations.GetInstance().MuteUserIds.Add(eventData.Target.Id);
-                    }
-                    break;
-                case "unmute":
-                    evt.Target = "@" + eventData.Target.ScreenName;
-                    if (TabInformations.GetInstance().MuteUserIds.Contains(eventData.Target.Id))
-                    {
-                        TabInformations.GetInstance().MuteUserIds.Remove(eventData.Target.Id);
-                    }
-                    break;
-
-                default:
-                    MyCommon.TraceOut("Unknown Event:" + evt.Event + Environment.NewLine + message.Json);
-                    break;
-            }
-            this.StoredEvent.Insert(0, evt);
-
-            this.UserStreamEventReceived?.Invoke(this, new UserStreamEventReceivedEventArgs(evt));
-        }
-
-        private void userStream_Started()
-            => this.UserStreamStarted?.Invoke(this, EventArgs.Empty);
-
-        private void userStream_Stopped()
-            => this.UserStreamStopped?.Invoke(this, EventArgs.Empty);
-
-        public bool UserStreamActive
-            => this.userStreamConnector != null && this.userStreamConnector.IsStreamActive;
-
-        public void StartUserStream()
-        {
-            var replies = this.AllAtReply ? "all" : null;
-            var streamObservable = this.Api.UserStreams(replies, this.TrackWord);
-            var newConnector = new StreamAutoConnector(streamObservable);
-
-            newConnector.MessageReceived += userStream_MessageReceived;
-            newConnector.Started += userStream_Started;
-            newConnector.Stopped += userStream_Stopped;
-
-            newConnector.Start();
-
-            var oldConnector = Interlocked.Exchange(ref this.userStreamConnector, newConnector);
-            oldConnector?.Dispose();
-        }
-
-        public void StopUserStream()
-        {
-            var oldConnector = Interlocked.Exchange(ref this.userStreamConnector, null);
-            oldConnector?.Dispose();
-        }
-
-        public void ReconnectUserStream()
-        {
-            if (this.userStreamConnector != null)
-            {
-                this.StartUserStream();
-            }
-        }
-
-        private class StreamAutoConnector : IDisposable
+        protected virtual void Dispose(bool disposing)
         {
-            private readonly TwitterStreamObservable streamObservable;
-
-            public bool IsStreamActive { get; private set; }
-            public bool IsDisposed { get; private set; }
-
-            public event Action<ITwitterStreamMessage>? MessageReceived;
-            public event Action? Stopped;
-            public event Action? Started;
-
-            private Task? streamTask;
-            private CancellationTokenSource streamCts = new CancellationTokenSource();
-
-            public StreamAutoConnector(TwitterStreamObservable streamObservable)
-                => this.streamObservable = streamObservable;
-
-            public void Start()
-            {
-                var cts = new CancellationTokenSource();
-
-                this.streamCts = cts;
-                this.streamTask = Task.Run(async () =>
-                {
-                    try
-                    {
-                        await this.StreamLoop(cts.Token)
-                            .ConfigureAwait(false);
-                    }
-                    catch (OperationCanceledException) { }
-                });
-            }
-
-            public void Stop()
-            {
-                this.streamCts?.Cancel();
-
-                // streamTask の完了を待たずに IsStreamActive を false にセットする
-                this.IsStreamActive = false;
-                this.Stopped?.Invoke();
-            }
-
-            private async Task StreamLoop(CancellationToken cancellationToken)
-            {
-                var sleep = TimeSpan.Zero;
-                for (; ; )
-                {
-                    if (sleep != TimeSpan.Zero)
-                    {
-                        await Task.Delay(sleep, cancellationToken)
-                            .ConfigureAwait(false);
-                        sleep = TimeSpan.Zero;
-                    }
-
-                    if (!MyCommon.IsNetworkAvailable())
-                    {
-                        sleep = TimeSpan.FromSeconds(30);
-                        continue;
-                    }
-
-                    this.IsStreamActive = true;
-                    this.Started?.Invoke();
-
-                    try
-                    {
-                        await this.streamObservable.ForEachAsync(
-                            x => this.MessageReceived?.Invoke(x),
-                            cancellationToken);
-
-                        // キャンセルされていないのにストリームが終了した場合
-                        sleep = TimeSpan.FromSeconds(30);
-                    }
-                    catch (TwitterApiException ex) when (ex.StatusCode == HttpStatusCode.Gone)
-                    {
-                        // UserStreams停止によるエラーの場合は長めに間隔を開ける
-                        sleep = TimeSpan.FromMinutes(10);
-                    }
-                    catch (TwitterApiException) { sleep = TimeSpan.FromSeconds(30); }
-                    catch (IOException) { sleep = TimeSpan.FromSeconds(30); }
-                    catch (OperationCanceledException)
-                    {
-                        if (cancellationToken.IsCancellationRequested)
-                            throw;
-
-                        // cancellationToken によるキャンセルではない(=タイムアウトエラー)
-                        sleep = TimeSpan.FromSeconds(30);
-                    }
-                    catch (Exception ex)
-                    {
-                        MyCommon.ExceptionOut(ex);
-                        sleep = TimeSpan.FromSeconds(30);
-                    }
-                    finally
-                    {
-                        this.IsStreamActive = false;
-                        this.Stopped?.Invoke();
-                    }
-                }
-            }
+            if (this.IsDisposed)
+                return;
 
-            public void Dispose()
+            if (disposing)
             {
-                if (this.IsDisposed)
-                    return;
-
-                this.IsDisposed = true;
-
-                this.Stop();
-
-                this.Started = null;
-                this.Stopped = null;
-                this.MessageReceived = null;
+                this.Api.Dispose();
             }
-        }
-#endregion
-
-#region "IDisposable Support"
-        private bool disposedValue; // 重複する呼び出しを検出するには
 
-        // IDisposable
-        protected virtual void Dispose(bool disposing)
-        {
-            if (!this.disposedValue)
-            {
-                if (disposing)
-                {
-                    this.StopUserStream();
-                }
-            }
-            this.disposedValue = true;
+            this.IsDisposed = true;
         }
 
-        // このコードは、破棄可能なパターンを正しく実装できるように Visual Basic によって追加されました。
         public void Dispose()
         {
-            // このコードを変更しないでください。クリーンアップ コードを上の Dispose(bool disposing) に記述します。
             Dispose(true);
             GC.SuppressFinalize(this);
         }
-#endregion
-    }
-
-    public class PostDeletedEventArgs : EventArgs
-    {
-        public long StatusId { get; }
-
-        public PostDeletedEventArgs(long statusId)
-            => this.StatusId = statusId;
-    }
-
-    public class UserStreamEventReceivedEventArgs : EventArgs
-    {
-        public Twitter.FormattedEvent EventData { get; }
-
-        public UserStreamEventReceivedEventArgs(Twitter.FormattedEvent eventData)
-            => this.EventData = eventData;
     }
 }