30 lines
1000 B
C#
30 lines
1000 B
C#
using Windows.ApplicationModel.Resources.Core;
|
|
using Windows.Storage;
|
|
|
|
namespace Hyperbar.Widget.Windows;
|
|
|
|
internal class WidgetResourceInitializer(IWidgetAssembly widgetAssembly) :
|
|
IInitializer
|
|
{
|
|
public async Task InitializeAsync()
|
|
{
|
|
string assemblyDirectory = Path.GetDirectoryName(widgetAssembly.Assembly.Location) ?? string.Empty;
|
|
string[] possibleFileNames = ["resources.pri", $"{widgetAssembly.Assembly.GetName().Name}.pri"];
|
|
|
|
FileInfo? resourceFileInfo = null;
|
|
foreach (string fileName in possibleFileNames)
|
|
{
|
|
resourceFileInfo = new FileInfo(Path.Combine(assemblyDirectory, fileName));
|
|
if (resourceFileInfo.Exists)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (resourceFileInfo?.Exists is true)
|
|
{
|
|
StorageFile file = await StorageFile.GetFileFromPathAsync(resourceFileInfo.FullName);
|
|
ResourceManager.Current.LoadPriFiles(new[] { file });
|
|
}
|
|
}
|
|
} |