diff --git a/CHANGELOG.txt b/CHANGELOG.txt index b5c6c21b9..01eff36a4 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,6 +3,7 @@ ==== Unreleased * FIX: Cookie使用時に「Listの発言取得に公式RTを含める」の設定が適用されない不具合を修正 * FIX: Twitterアカウントでの画像を添付したツイートの投稿がエラーになる不具合を修正 + * FIX: 設定画面を閉じた直後に取得されるツイートが全て両思い表示になる不具合を修正 ==== Ver 3.15.0(2024/06/14) * NEW: Misskeyでのノート投稿時のファイル添付に対応しました diff --git a/OpenTween/SocialProtocol/Misskey/MisskeyAccount.cs b/OpenTween/SocialProtocol/Misskey/MisskeyAccount.cs index 3aed2b624..c1fe6b12e 100644 --- a/OpenTween/SocialProtocol/Misskey/MisskeyAccount.cs +++ b/OpenTween/SocialProtocol/Misskey/MisskeyAccount.cs @@ -42,7 +42,7 @@ ISocialProtocolClient ISocialAccount.Client public bool IsDisposed { get; private set; } - public MisskeyAccountState AccountState { get; private set; } = new(); + public MisskeyAccountState AccountState { get; } = new(); ISocialAccountState ISocialAccount.AccountState => this.AccountState; @@ -71,14 +71,10 @@ public void Initialize(UserAccount accountSettings, SettingCommon settingCommon) { Debug.Assert(accountSettings.UniqueKey == this.UniqueKey.Id, "UniqueKey must be same as current value."); - var serverUri = new Uri($"https://{accountSettings.ServerHostname}/"); - this.AccountState = new(serverUri, new(accountSettings.UserId), accountSettings.Username) - { - AuthorizedScopes = accountSettings.Scopes, - HasUnrecoverableError = false, - }; + this.AccountState.UpdateFromSettings(accountSettings); + this.AccountState.HasUnrecoverableError = false; - var apiBaseUri = new Uri(serverUri, "/api/"); + var apiBaseUri = new Uri(this.AccountState.ServerUri, "/api/"); var newConnection = new MisskeyApiConnection(apiBaseUri, accountSettings.TokenSecret, this.AccountState); (this.connection, var oldConnection) = (newConnection, this.connection); diff --git a/OpenTween/SocialProtocol/Misskey/MisskeyAccountState.cs b/OpenTween/SocialProtocol/Misskey/MisskeyAccountState.cs index 972f54c2d..483e24d75 100644 --- a/OpenTween/SocialProtocol/Misskey/MisskeyAccountState.cs +++ b/OpenTween/SocialProtocol/Misskey/MisskeyAccountState.cs @@ -68,6 +68,14 @@ public MisskeyAccountState(Uri serverUri, MisskeyUserId userId, string userName) this.UserName = userName; } + public void UpdateFromSettings(UserAccount accountSettings) + { + this.ServerUri = new($"https://{accountSettings.ServerHostname}/"); + this.UserId = new(accountSettings.UserId); + this.UserName = accountSettings.Username; + this.AuthorizedScopes = accountSettings.Scopes; + } + /// ユーザー情報を更新します public void UpdateFromUser(MisskeyUser self) { diff --git a/OpenTween/SocialProtocol/Twitter/TwitterAccount.cs b/OpenTween/SocialProtocol/Twitter/TwitterAccount.cs index aac7607f8..03a17c8e3 100644 --- a/OpenTween/SocialProtocol/Twitter/TwitterAccount.cs +++ b/OpenTween/SocialProtocol/Twitter/TwitterAccount.cs @@ -41,7 +41,7 @@ public string AccountType public bool IsDisposed { get; private set; } - public TwitterAccountState AccountState { get; private set; } = new(); + public TwitterAccountState AccountState { get; } = new(); ISocialAccountState ISocialAccount.AccountState => this.AccountState; @@ -72,12 +72,9 @@ public void Initialize(UserAccount accountSettings, SettingCommon settingCommon) Debug.Assert(accountSettings.UniqueKey == this.UniqueKey.Id, "UniqueKey must be same as current value."); var credential = accountSettings.GetTwitterCredential(); - var userId = new TwitterUserId(accountSettings.UserId); - this.AccountState = new TwitterAccountState(userId, accountSettings.Username) - { - HasUnrecoverableError = credential is TwitterCredentialNone, - }; + this.AccountState.UpdateFromSettings(accountSettings); + this.AccountState.HasUnrecoverableError = credential is TwitterCredentialNone; var newConnection = new TwitterApiConnection(credential, this.AccountState); (this.apiConnection, var oldConnection) = (newConnection, this.apiConnection); diff --git a/OpenTween/SocialProtocol/Twitter/TwitterAccountState.cs b/OpenTween/SocialProtocol/Twitter/TwitterAccountState.cs index edda96541..63bd60802 100644 --- a/OpenTween/SocialProtocol/Twitter/TwitterAccountState.cs +++ b/OpenTween/SocialProtocol/Twitter/TwitterAccountState.cs @@ -73,6 +73,12 @@ public TwitterAccountState(TwitterUserId userId, string userName) this.UserName = userName; } + public void UpdateFromSettings(UserAccount accountSettings) + { + this.UserId = new(accountSettings.UserId); + this.UserName = accountSettings.Username; + } + /// ユーザー情報を更新します public void UpdateFromUser(TwitterUser self) {