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)
{