Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 18 additions & 2 deletions Flow.Launcher.Infrastructure/Storage/BinaryStorage.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.IO;
using System;
using System.IO;
using System.Threading.Tasks;
using Flow.Launcher.Infrastructure.Logger;
using Flow.Launcher.Infrastructure.UserSettings;
Expand Down Expand Up @@ -40,6 +41,16 @@ public BinaryStorage(string filename)
FilePath = Path.Combine(DirectoryPath, $"{filename}{FileSuffix}");
}

// Let the old Program plugin get this constructor
[Obsolete("This constructor is obsolete. Use BinaryStorage(string filename) instead.")]
public BinaryStorage(string filename, string directoryPath = null!)
{
directoryPath ??= DataLocation.CacheDirectory;
FilesFolders.ValidateDirectory(directoryPath);

FilePath = Path.Combine(directoryPath, $"{filename}{FileSuffix}");
}

public async ValueTask<T> TryLoadAsync(T defaultData)
{
if (Data != null) return Data;
Expand Down Expand Up @@ -82,8 +93,10 @@ private static async ValueTask<T> DeserializeAsync(Stream stream, T defaultData)

public void Save()
{
var serialized = MemoryPackSerializer.Serialize(Data);
// User may delete the directory, so we need to check it
FilesFolders.ValidateDirectory(DirectoryPath);

var serialized = MemoryPackSerializer.Serialize(Data);
File.WriteAllBytes(FilePath, serialized);
}

Expand All @@ -103,6 +116,9 @@ public void ClearData()
// so we need to pass it to SaveAsync
public async ValueTask SaveAsync(T data)
{
// User may delete the directory, so we need to check it
FilesFolders.ValidateDirectory(DirectoryPath);

await using var stream = new FileStream(FilePath, FileMode.Create);
await MemoryPackSerializer.SerializeAsync(stream, data);
}
Expand Down
8 changes: 7 additions & 1 deletion Flow.Launcher.Infrastructure/Storage/JsonStorage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,10 @@ private void BackupOriginFile()

public void Save()
{
string serialized = JsonSerializer.Serialize(Data,
// User may delete the directory, so we need to check it
FilesFolders.ValidateDirectory(DirectoryPath);

var serialized = JsonSerializer.Serialize(Data,
new JsonSerializerOptions { WriteIndented = true });

File.WriteAllText(TempFilePath, serialized);
Expand All @@ -193,6 +196,9 @@ public void Save()

public async Task SaveAsync()
{
// User may delete the directory, so we need to check it
FilesFolders.ValidateDirectory(DirectoryPath);

await using var tempOutput = File.OpenWrite(TempFilePath);
await JsonSerializer.SerializeAsync(tempOutput, Data,
new JsonSerializerOptions { WriteIndented = true });
Expand Down
Loading