OSDN Git Service

自分宛のリプライかつ画像のみのツイートを投稿した場合に先頭の「@... 」が除去されない不具合を修正 (thx @mino90h!)
authorKimura Youichi <kim.upsilon@bucyou.net>
Wed, 8 Nov 2017 18:53:48 +0000 (03:53 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Wed, 8 Nov 2017 19:08:21 +0000 (04:08 +0900)
https://twitter.com/mino90h/status/927570750029971457

Fixes: ba530b42 ("自分宛のリプライの場合に先頭の「@... 」を除去する (in_reply_to_status_id は保持する)")

OpenTween/Resources/ChangeLog.txt
OpenTween/Tween.cs

index 7af6f17..60b89b7 100644 (file)
@@ -5,6 +5,7 @@
   - アップデート前にこれらのサービスを投稿先に選択していた場合は「Twitter」に変更されます
  * CHG: 画像投稿のキャンセル時に選択中の画像表示を閉じないように動作を変更
  * FIX: 投稿欄の複数行表示が次回起動時に保持されない不具合を修正
+ * FIX: 自分宛のリプライかつ画像のみのツイートを投稿した場合に先頭の「@... 」が除去されない不具合を修正 (thx @mino90h!)
 
 ==== Ver 1.4.0(2017/10/30)
  * NEW: 自分宛のリプライを送信する場合に先頭の「@... 」を除去します (返信先ツイートの情報は維持したまま投稿されます)
index 912ae62..86d911f 100644 (file)
@@ -4761,8 +4761,11 @@ namespace OpenTween
             if (this.inReplyTo != null && this.inReplyTo.Item2 == this.tw.Username)
             {
                 var mentionSelf = $"@{this.tw.Username} ";
-                if (statusText.Length > mentionSelf.Length && statusText.StartsWith(mentionSelf, StringComparison.OrdinalIgnoreCase))
-                    statusText = statusText.Substring(mentionSelf.Length);
+                if (statusText.StartsWith(mentionSelf, StringComparison.OrdinalIgnoreCase))
+                {
+                    if (statusText.Length > mentionSelf.Length || this.GetSelectedImageService() != null)
+                        statusText = statusText.Substring(mentionSelf.Length);
+                }
             }
 
             var header = "";
@@ -4817,8 +4820,8 @@ namespace OpenTween
             //文字数カウント
             var remainCount = this.tw.GetTextLengthRemain(statusText);
 
-            var uploadService = this.ImageSelector.SelectedService;
-            if (this.ImageSelector.Visible && uploadService != null)
+            var uploadService = this.GetSelectedImageService();
+            if (uploadService != null)
             {
                 // TODO: ImageSelector で選択中の画像の枚数が mediaCount 引数に渡るようにする
                 remainCount -= uploadService.GetReservedTextLength(1);
@@ -4827,6 +4830,9 @@ namespace OpenTween
             return remainCount;
         }
 
+        private IMediaUploadService GetSelectedImageService()
+            => this.ImageSelector.Visible ? this.ImageSelector.SelectedService : null;
+
         private void MyList_CacheVirtualItems(object sender, CacheVirtualItemsEventArgs e)
         {
             if (sender != this._curList)