Skip to content

Commit 105c6b4

Browse files
committed
POC
1 parent c0b17f3 commit 105c6b4

File tree

9 files changed

+90
-2
lines changed

9 files changed

+90
-2
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using System;
2+
using System.Collections.Generic;
3+
4+
namespace Files.Backend.Services.Settings
5+
{
6+
public interface IApplicationSettingsService : IBaseSettingsService
7+
{
8+
/// <summary>
9+
/// Gets or sets a value indicating whether or not the user was prompted to review the app.
10+
/// </summary>
11+
bool WasPromptedToReview { get; set; }
12+
13+
}
14+
}

src/Files.Backend/Services/Settings/IUserSettingsService.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public interface IUserSettingsService : IBaseSettingsService
1919

2020
IAppearanceSettingsService AppearanceSettingsService { get; }
2121

22+
IApplicationSettingsService ApplicationSettingsService { get; }
23+
2224
IPaneSettingsService PaneSettingsService { get; }
2325

2426
ILayoutSettingsService LayoutSettingsService { get; }

src/Files.Package/Package.appxmanifest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4"
1010
xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
1111
IgnorableNamespaces="uap uap5 mp rescap desktop4 desktop">
12-
<Identity Name="FilesDev" Publisher="CN=Files" Version="2.2.52.0" />
12+
<Identity Name="FilesDev" Publisher="CN=Files" Version="2.3.1.0" />
1313
<Properties>
1414
<DisplayName>Files - Dev</DisplayName>
1515
<PublisherDisplayName>Yair A</PublisherDisplayName>

src/Files.Uwp/App.xaml.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ private IServiceProvider ConfigureServices()
114114
.AddSingleton<IWidgetsSettingsService, WidgetsSettingsService>((sp) => new WidgetsSettingsService((sp.GetService<IUserSettingsService>() as UserSettingsService).GetSharingContext()))
115115
.AddSingleton<IAppearanceSettingsService, AppearanceSettingsService>((sp) => new AppearanceSettingsService((sp.GetService<IUserSettingsService>() as UserSettingsService).GetSharingContext()))
116116
.AddSingleton<IPreferencesSettingsService, PreferencesSettingsService>((sp) => new PreferencesSettingsService((sp.GetService<IUserSettingsService>() as UserSettingsService).GetSharingContext()))
117+
.AddSingleton<IApplicationSettingsService, ApplicationSettingsService>((sp) => new ApplicationSettingsService((sp.GetService<IUserSettingsService>() as UserSettingsService).GetSharingContext()))
117118
.AddSingleton<IPaneSettingsService, PaneSettingsService>((sp) => new PaneSettingsService((sp.GetService<IUserSettingsService>() as UserSettingsService).GetSharingContext()))
118119
.AddSingleton<ILayoutSettingsService, LayoutSettingsService>((sp) => new LayoutSettingsService((sp.GetService<IUserSettingsService>() as UserSettingsService).GetSharingContext()))
119120
// Settings not related to IUserSettingsService:

src/Files.Uwp/Files.Uwp.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,7 @@
302302
<Compile Include="ServicesImplementation\Settings\AppearanceSettingsService.cs" />
303303
<Compile Include="ServicesImplementation\Settings\BundlesSettingsService.cs" />
304304
<Compile Include="ServicesImplementation\Settings\FileTagsSettingsService.cs" />
305+
<Compile Include="ServicesImplementation\Settings\ApplicationSettingsService.cs" />
305306
<Compile Include="ServicesImplementation\Settings\LayoutSettingsService.cs" />
306307
<Compile Include="ServicesImplementation\Settings\MultitaskingSettingsService.cs" />
307308
<Compile Include="ServicesImplementation\Settings\PreferencesSettingsService.cs" />
@@ -1695,4 +1696,4 @@
16951696
<Target Name="AfterBuild">
16961697
</Target>
16971698
-->
1698-
</Project>
1699+
</Project>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using Files.Backend.Services.Settings;
2+
using Files.Shared.Enums;
3+
using Files.Uwp.Serialization;
4+
5+
namespace Files.Uwp.ServicesImplementation.Settings
6+
{
7+
internal sealed class ApplicationSettingsService : BaseObservableJsonSettings, IApplicationSettingsService
8+
{
9+
public bool WasPromptedToReview
10+
{
11+
get => Get(false);
12+
set => Set(value);
13+
}
14+
15+
public void ReportToAppCenter()
16+
{
17+
18+
}
19+
20+
public ApplicationSettingsService(ISettingsSharingContext settingsSharingContext)
21+
{
22+
RegisterSettingsContext(settingsSharingContext);
23+
}
24+
}
25+
}

src/Files.Uwp/ServicesImplementation/Settings/UserSettingsService.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ public ILayoutSettingsService LayoutSettingsService
4848
get => GetSettingsService(ref _LayoutSettingsService);
4949
}
5050

51+
private IApplicationSettingsService _ApplicationSettingsService;
52+
public IApplicationSettingsService ApplicationSettingsService
53+
{
54+
get => GetSettingsService(ref _ApplicationSettingsService);
55+
}
56+
5157
public UserSettingsService()
5258
{
5359
SettingsSerializer = new DefaultSettingsSerializer();

src/Files.Uwp/Strings/en-US/Resources.resw

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2789,4 +2789,10 @@ We use App Center to track which settings are being used, find bugs, and fix cra
27892789
<data name="ShowAlternateStreams" xml:space="preserve">
27902790
<value>Show Alternate Data Streams</value>
27912791
</data>
2792+
<data name="ReviewFiles" xml:space="preserve">
2793+
<value>Review Files</value>
2794+
</data>
2795+
<data name="ReviewFilesContent" xml:space="preserve">
2796+
<value>Would you like to review Files?</value>
2797+
</data>
27922798
</root>

src/Files.Uwp/Views/MainPage.xaml.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,23 @@
1111
using Files.Uwp.UserControls.MultitaskingControl;
1212
using Files.Uwp.ViewModels;
1313
using Microsoft.Toolkit.Uwp;
14+
using Microsoft.Toolkit.Uwp.Helpers;
1415
using Microsoft.Toolkit.Uwp.UI.Controls;
1516
using System;
1617
using System.ComponentModel;
1718
using System.Runtime.CompilerServices;
1819
using System.Windows.Input;
20+
using Windows.ApplicationModel;
1921
using Windows.ApplicationModel.Core;
2022
using Windows.ApplicationModel.Resources.Core;
23+
using Windows.Services.Store;
2124
using Windows.Storage;
2225
using Windows.UI.ViewManagement;
2326
using Windows.UI.Xaml;
2427
using Windows.UI.Xaml.Controls;
2528
using Windows.UI.Xaml.Input;
2629
using Windows.UI.Xaml.Navigation;
30+
using Files.Backend.Extensions;
2731

2832
namespace Files.Uwp.Views
2933
{
@@ -75,9 +79,38 @@ public MainPage()
7579
ToggleCompactOverlayCommand = new RelayCommand(ToggleCompactOverlay);
7680
SetCompactOverlayCommand = new RelayCommand<bool>(SetCompactOverlay);
7781

82+
if (SystemInformation.Instance.TotalLaunchCount >= 10 & Package.Current.Id.Name == "49306atecsolution.FilesUWP" && !UserSettingsService.ApplicationSettingsService.WasPromptedToReview)
83+
{
84+
PromptForReview();
85+
UserSettingsService.ApplicationSettingsService.WasPromptedToReview = true;
86+
}
87+
7888
UserSettingsService.OnSettingChangedEvent += UserSettingsService_OnSettingChangedEvent;
7989
}
8090

91+
private async void PromptForReview()
92+
{
93+
var AskForReviewDialog = new ContentDialog
94+
{
95+
Title = "ReviewFiles".ToLocalized(),
96+
Content = "ReviewFilesContent".ToLocalized(),
97+
PrimaryButtonText = "Yes".ToLocalized(),
98+
SecondaryButtonText = "No".ToLocalized()
99+
};
100+
101+
var result = await AskForReviewDialog.ShowAsync();
102+
103+
if (result == ContentDialogResult.Primary)
104+
{
105+
try
106+
{
107+
var storeContext = StoreContext.GetDefault();
108+
await storeContext.RequestRateAndReviewAppAsync();
109+
}
110+
catch (Exception) { }
111+
}
112+
}
113+
81114
private void UserSettingsService_OnSettingChangedEvent(object sender, SettingChangedEventArgs e)
82115
{
83116
switch (e.SettingName)

0 commit comments

Comments
 (0)