Skip to content

Commit 9e879a8

Browse files
committed
Move magic strings to IconConstants.cs
1 parent fb4a9a3 commit 9e879a8

File tree

3 files changed

+49
-30
lines changed

3 files changed

+49
-30
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
namespace Flow.Launcher.Plugin.OneNote.Icons
2+
{
3+
public static class IconConstants
4+
{
5+
public const string ImagesDirectory = "Images/";
6+
public const string GeneratedImagesDirectory = $"{ImagesDirectory}Generated/";
7+
8+
public const string Notebook = "notebook";
9+
public const string SectionGroup = "section_group";
10+
public const string RecycleBin = "recycle_bin";
11+
public const string Section = "section";
12+
public const string Page = "page";
13+
14+
public const string Logo = "logo";
15+
public const string Sync = "sync";
16+
public const string Search = "search";
17+
public const string Recent = "page_recent";
18+
public const string NotebookExplorer = "notebook_explorer";
19+
public const string NewPage = "page_new";
20+
public const string NewSection = "section_new";
21+
public const string NewSectionGroup = "section_group_new";
22+
public const string NewNotebook = "notebook_new";
23+
public const string Warning = "warning";
24+
}
25+
}

Flow.Launcher.Plugin.OneNote/Icons/IconGeneratorInfo.cs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,26 @@ namespace Flow.Launcher.Plugin.OneNote.Icons
55
{
66
public record struct IconGeneratorInfo
77
{
8-
public const string Notebook = "notebook";
9-
private const string SectionGroup = "section_group";
10-
private const string RecycleBin = "recycle_bin";
11-
public const string Section = "section";
12-
private const string Page = "page";
138
public string Prefix { get; }
149
public Color? Color { get; }
1510

1611
public IconGeneratorInfo(OneNoteNotebook notebook)
1712
{
18-
Prefix = Notebook;
13+
Prefix = IconConstants.Notebook;
1914
Color = notebook.Color;
2015
}
2116
public IconGeneratorInfo(OneNoteSectionGroup sectionGroup)
2217
{
23-
Prefix = sectionGroup.IsRecycleBin ? RecycleBin : SectionGroup;
18+
Prefix = sectionGroup.IsRecycleBin ? IconConstants.RecycleBin : IconConstants.SectionGroup;
2419
}
2520
public IconGeneratorInfo(OneNoteSection section)
2621
{
27-
Prefix = Section;
22+
Prefix = IconConstants.Section;
2823
Color = section.Color;
2924
}
3025
public IconGeneratorInfo(OneNotePage page)
3126
{
32-
Prefix = Page;
27+
Prefix = IconConstants.Page;
3328
}
3429
}
3530
}

Flow.Launcher.Plugin.OneNote/Icons/IconProvider.cs

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,25 @@
77
using System.Windows.Media;
88
using System.Windows.Media.Imaging;
99
using Color = System.Drawing.Color;
10+
using IC = Flow.Launcher.Plugin.OneNote.Icons.IconConstants;
1011

1112
namespace Flow.Launcher.Plugin.OneNote.Icons
1213
{
1314
public class IconProvider : BaseModel, IDisposable
1415
{
15-
public const string Logo = "Images/logo.png";
16-
public string Sync => GetIconLocal("sync");
17-
public string Search => GetIconLocal("search");
18-
public string Recent => GetIconLocal("page_recent");
19-
public string NotebookExplorer => GetIconLocal("notebook_explorer");
16+
public const string Logo = IC.ImagesDirectory + IC.Logo;
17+
public string Sync => GetIconLocal(IC.Sync);
18+
public string Search => GetIconLocal(IC.Search);
19+
public string Recent => GetIconLocal(IC.Recent);
20+
public string NotebookExplorer => GetIconLocal(IC.NotebookExplorer);
2021
public string QuickNote => NewPage;
21-
public string NewPage => GetIconLocal("page_new");
22-
public string NewSection => GetIconLocal("section_new");
23-
public string NewSectionGroup => GetIconLocal("section_group_new");
24-
public string NewNotebook => GetIconLocal("notebook_new");
22+
public string NewPage => GetIconLocal(IC.NewPage);
23+
public string NewSection => GetIconLocal(IC.NewSection);
24+
public string NewSectionGroup => GetIconLocal(IC.NewSectionGroup);
25+
public string NewNotebook => GetIconLocal(IC.NewNotebook);
2526
public string Warning => settings.IconTheme == IconTheme.Color
26-
? $"Images/warning.{GetPluginThemeString(IconTheme.Light)}.png"
27-
: GetIconLocal("warning");
27+
? $"{IC.ImagesDirectory}{IC.Warning}.{GetIconThemeString(IconTheme.Light)}.png"
28+
: GetIconLocal(IC.Warning);
2829

2930
private readonly Settings settings;
3031
// May need this? https://stackoverflow.com/questions/21867842/concurrentdictionarys-getoradd-is-not-atomic-any-alternatives-besides-locking
@@ -36,18 +37,16 @@ public class IconProvider : BaseModel, IDisposable
3637

3738
private readonly PluginInitContext context;
3839

39-
private readonly WindowsThemeWatcher windowsThemeWatcher;
40+
private readonly WindowsThemeWatcher windowsThemeWatcher = new ();
4041

4142
public IconProvider(PluginInitContext context, Settings settings)
4243
{
43-
imagesDirectory = $"{context.CurrentPluginMetadata.PluginDirectory}/Images/";
44+
imagesDirectory = $"{context.CurrentPluginMetadata.PluginDirectory}/{IC.ImagesDirectory}";
4445

45-
GeneratedImagesDirectoryInfo = Directory.CreateDirectory($"{context.CurrentPluginMetadata.PluginDirectory}/Images/Generated/");
46+
GeneratedImagesDirectoryInfo = Directory.CreateDirectory($"{context.CurrentPluginMetadata.PluginDirectory}/{IC.GeneratedImagesDirectory}");
4647

4748
this.context = context;
4849
this.settings = settings;
49-
50-
windowsThemeWatcher = new WindowsThemeWatcher();
5150

5251
if (settings.IconTheme == IconTheme.System)
5352
{
@@ -77,9 +76,9 @@ private void OnIconThemeChanged(object sender, PropertyChangedEventArgs args)
7776
}
7877
}
7978

80-
private string GetIconLocal(string icon) => $"Images/{icon}.{GetPluginThemeString(settings.IconTheme)}.png";
79+
private string GetIconLocal(string icon) => $"Images/{icon}.{GetIconThemeString(settings.IconTheme)}.png";
8180

82-
private string GetPluginThemeString(IconTheme iconTheme)
81+
private string GetIconThemeString(IconTheme iconTheme)
8382
{
8483
if (iconTheme == IconTheme.System)
8584
{
@@ -93,8 +92,8 @@ public Result.IconDelegate GetIcon(IconGeneratorInfo info)
9392
{
9493
return () =>
9594
{
96-
bool generate = (string.CompareOrdinal(info.Prefix, IconGeneratorInfo.Notebook) == 0
97-
|| string.CompareOrdinal(info.Prefix, IconGeneratorInfo.Section) == 0)
95+
bool generate = (string.CompareOrdinal(info.Prefix, IC.Notebook) == 0
96+
|| string.CompareOrdinal(info.Prefix, IC.Section) == 0)
9897
&& settings.CreateColoredIcons
9998
&& info.Color.HasValue;
10099

@@ -106,7 +105,7 @@ public Result.IconDelegate GetIcon(IconGeneratorInfo info)
106105
return imageSource;
107106
}
108107

109-
return iconCache.GetOrAdd($"{info.Prefix}.{GetPluginThemeString(settings.IconTheme)}.png", key =>
108+
return iconCache.GetOrAdd($"{info.Prefix}.{GetIconThemeString(settings.IconTheme)}.png", key =>
110109
{
111110
var path = Path.Combine(imagesDirectory, key);
112111
return BitmapImageFromPath(path);

0 commit comments

Comments
 (0)