Skip to content

Commit 5b7311e

Browse files
committed
ReviewViewer: Fix changing cache duration setting not applied until restart
1 parent 83dd1be commit 5b7311e

File tree

4 files changed

+42
-0
lines changed

4 files changed

+42
-0
lines changed

source/Generic/ReviewViewer/ReviewViewer.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@ public ReviewViewer(IPlayniteAPI api) : base(api)
6262

6363
_steamReviewsCoordinator = new SteamReviewsCoordinator(
6464
new SteamReviewsService(TimeSpan.FromMilliseconds(1100)), _reviewsRecordsDatabase, TimeSpan.FromDays(Settings.Settings.DownloadIfOlderThanValue));
65+
Settings.OnSettingsChanged += Settings_OnSettingsChanged;
66+
}
67+
68+
private void Settings_OnSettingsChanged(SettingsChangedInfo<ReviewViewerSettings> settingsChangedInfo)
69+
{
70+
_steamReviewsCoordinator.ChangeCacheDuration(TimeSpan.FromDays(Settings.Settings.DownloadIfOlderThanValue));
6571
}
6672

6773
public override Control GetGameViewControl(GetGameViewControlArgs args)

source/Generic/ReviewViewer/ReviewViewer.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@
279279
<DependentUpon>ReviewViewerSettingsView.xaml</DependentUpon>
280280
</Compile>
281281
<Compile Include="Properties\AssemblyInfo.cs" />
282+
<Compile Include="SettingsChangedInfo.cs" />
282283
</ItemGroup>
283284
<ItemGroup>
284285
<None Include="app.config" />

source/Generic/ReviewViewer/ReviewViewerSettings.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,12 @@ public void EndEdit()
109109
// Code executed when user decides to confirm changes made since BeginEdit was called.
110110
// This method should save settings made to Option1 and Option2.
111111
plugin.SavePluginSettings(Settings);
112+
var settingsChangedInfo = new SettingsChangedInfo<ReviewViewerSettings>(
113+
Serialization.GetClone(editingClone),
114+
Serialization.GetClone(Settings)
115+
);
116+
117+
OnSettingsChanged?.Invoke(settingsChangedInfo);
112118
}
113119

114120
public bool VerifySettings(out List<string> errors)
@@ -119,5 +125,7 @@ public bool VerifySettings(out List<string> errors)
119125
errors = new List<string>();
120126
return true;
121127
}
128+
129+
public event Action<SettingsChangedInfo<ReviewViewerSettings>> OnSettingsChanged;
122130
}
123131
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace ReviewViewer
8+
{
9+
public sealed class SettingsChangedInfo<T>
10+
{
11+
public Guid Id { get; }
12+
public DateTime Timestamp { get; }
13+
public T OldSettings { get; }
14+
public T NewSettings { get; }
15+
16+
public SettingsChangedInfo(T oldSettings, T newSettings)
17+
{
18+
if (oldSettings == null) throw new ArgumentNullException(nameof(oldSettings));
19+
if (newSettings == null) throw new ArgumentNullException(nameof(newSettings));
20+
21+
Id = Guid.NewGuid();
22+
Timestamp = DateTime.UtcNow;
23+
OldSettings = oldSettings;
24+
NewSettings = newSettings;
25+
}
26+
}
27+
}

0 commit comments

Comments
 (0)