Fix changelog button always indicating new changes. (#41277)
* Refresh changelog button when ServerId is changed * Listen to specific cvar being changed
This commit is contained in:
@@ -52,6 +52,7 @@ namespace Content.Client.Changelog
|
|||||||
// Open changelog purely to compare to the last viewed date.
|
// Open changelog purely to compare to the last viewed date.
|
||||||
var changelogs = await LoadChangelog();
|
var changelogs = await LoadChangelog();
|
||||||
UpdateChangelogs(changelogs);
|
UpdateChangelogs(changelogs);
|
||||||
|
_configManager.OnValueChanged(CCVars.ServerId, OnServerIdCVarChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateChangelogs(List<Changelog> changelogs)
|
private void UpdateChangelogs(List<Changelog> changelogs)
|
||||||
@@ -81,6 +82,11 @@ namespace Content.Client.Changelog
|
|||||||
|
|
||||||
MaxId = changelog.Entries.Max(c => c.Id);
|
MaxId = changelog.Entries.Max(c => c.Id);
|
||||||
|
|
||||||
|
CheckLastSeenEntry();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckLastSeenEntry()
|
||||||
|
{
|
||||||
var path = new ResPath($"/changelog_last_seen_{_configManager.GetCVar(CCVars.ServerId)}");
|
var path = new ResPath($"/changelog_last_seen_{_configManager.GetCVar(CCVars.ServerId)}");
|
||||||
if (_resource.UserData.TryReadAllText(path, out var lastReadIdText))
|
if (_resource.UserData.TryReadAllText(path, out var lastReadIdText))
|
||||||
{
|
{
|
||||||
@@ -92,6 +98,11 @@ namespace Content.Client.Changelog
|
|||||||
NewChangelogEntriesChanged?.Invoke();
|
NewChangelogEntriesChanged?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnServerIdCVarChanged(string newValue)
|
||||||
|
{
|
||||||
|
CheckLastSeenEntry();
|
||||||
|
}
|
||||||
|
|
||||||
public Task<List<Changelog>> LoadChangelog()
|
public Task<List<Changelog>> LoadChangelog()
|
||||||
{
|
{
|
||||||
return Task.Run(() =>
|
return Task.Run(() =>
|
||||||
|
|||||||
Reference in New Issue
Block a user