Skip to content

Commit 95758dd

Browse files
committed
Split HandledCallback
1 parent c61f4de commit 95758dd

10 files changed

Lines changed: 50 additions & 22 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace SecureFolderFS.Backend.Utils
2+
{
3+
public interface ICanceledFlag
4+
{
5+
void Cancel();
6+
}
7+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace SecureFolderFS.Backend.Utils
2+
{
3+
public interface IHandledFlag
4+
{
5+
void Handle();
6+
7+
void Handle(bool value);
8+
}
9+
}

SecureFolderFS.Backend/ViewModels/Pages/VaultWizard/AddExistingVaultPageViewModel.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ public string? PathSourceText
3434
public AddExistingVaultPageViewModel(IMessenger messenger, VaultWizardDialogViewModel dialogViewModel)
3535
: base(messenger, dialogViewModel)
3636
{
37-
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<HandledCallback?>(PrimaryButtonClick);
37+
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<IHandledFlag?>(PrimaryButtonClick);
3838
BrowseForFolderCommand = new AsyncRelayCommand(BrowseForFolder);
3939
}
4040

41-
private void PrimaryButtonClick(HandledCallback? e)
41+
private void PrimaryButtonClick(IHandledFlag? e)
4242
{
4343
e?.Handle();
4444
DialogViewModel.VaultViewModel = new(new(), Path.GetDirectoryName(PathSourceText!)!);

SecureFolderFS.Backend/ViewModels/Pages/VaultWizard/ChooseEncryptionPageViewModel.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ public ChooseEncryptionPageViewModel(IVaultCreationRoutineStep9 step9, IMessenge
3333
base.CanGoBack = false;
3434

3535
DialogViewModel.PrimaryButtonEnabled = true;
36-
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<HandledCallback?>(PrimaryButtonClick);
36+
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<IHandledFlag?>(PrimaryButtonClick);
3737
}
3838

39-
private void PrimaryButtonClick(HandledCallback? e)
39+
private void PrimaryButtonClick(IHandledFlag? e)
4040
{
4141
e?.Handle();
4242

SecureFolderFS.Backend/ViewModels/Pages/VaultWizard/ChooseVaultCreationPathPageViewModel.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ public ChooseVaultCreationPathPageViewModel(IMessenger messenger, VaultWizardDia
3535
{
3636
DialogViewModel.PrimaryButtonEnabled = false;
3737

38-
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<HandledCallback?>(PrimaryButtonClick);
38+
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<IHandledFlag?>(PrimaryButtonClick);
3939
BrowseForFolderCommand = new AsyncRelayCommand(BrowseForFolder);
4040
}
4141

4242
public override void ReattachCommands()
4343
{
44-
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<HandledCallback?>(e =>
44+
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<IHandledFlag?>(e =>
4545
{
4646
e?.Handle();
4747

@@ -50,7 +50,7 @@ public override void ReattachCommands()
5050
DialogViewModel.PrimaryButtonEnabled = CheckAvailability(_PathSourceText);
5151
}
5252

53-
private void PrimaryButtonClick(HandledCallback? e)
53+
private void PrimaryButtonClick(IHandledFlag? e)
5454
{
5555
// Cancel the confirm button
5656
e?.Handle();

SecureFolderFS.Backend/ViewModels/Pages/VaultWizard/SetPasswordPageViewModel.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,16 @@ public SetPasswordPageViewModel(IVaultCreationRoutineStep7 step7, IMessenger mes
2323
{
2424
this._step7 = step7;
2525

26-
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<HandledCallback?>(PrimaryButtonClick);
27-
DialogViewModel.SecondaryButtonClickCommand = new RelayCommand<HandledCallback?>(SecondaryButtonClick);
26+
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<IHandledFlag?>(PrimaryButtonClick);
27+
DialogViewModel.SecondaryButtonClickCommand = new RelayCommand<IHandledFlag?>(SecondaryButtonClick);
2828
}
2929

3030
public override void ReattachCommands()
3131
{
32-
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<HandledCallback?>(PrimaryButtonClick);
32+
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<IHandledFlag?>(PrimaryButtonClick);
3333
}
3434

35-
private void PrimaryButtonClick(HandledCallback? e)
35+
private void PrimaryButtonClick(IHandledFlag? e)
3636
{
3737
e?.Handle();
3838

@@ -44,7 +44,7 @@ private void PrimaryButtonClick(HandledCallback? e)
4444
Messenger.Send(new VaultWizardNavigationRequestedMessage(_nextViewModel));
4545
}
4646

47-
private void SecondaryButtonClick(HandledCallback? e)
47+
private void SecondaryButtonClick(IHandledFlag? e)
4848
{
4949
Messenger.Send(new PasswordClearRequestedMessage());
5050
}

SecureFolderFS.Backend/ViewModels/Pages/VaultWizard/VaultWizardFinishPageViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public VaultWizardFinishPageViewModel(IMessenger messenger, VaultWizardDialogVie
1717
base.CanGoBack = false;
1818

1919
DialogViewModel.PrimaryButtonEnabled = true;
20-
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<HandledCallback?>(_ => { }); // Override the previous action
20+
DialogViewModel.PrimaryButtonClickCommand = new RelayCommand<IHandledFlag?>(_ => { }); // Override the previous action
2121

2222
WeakReferenceMessenger.Default.Send(new AddVaultRequestedMessage(DialogViewModel.VaultViewModel));
2323
}

SecureFolderFS.Core/Chunks/Implementation/BaseCleartextChunk.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,13 @@ public virtual byte[] ToArray()
7676
return returnBuffer;
7777
}
7878

79+
public virtual Span<byte> AsSpan()
80+
{
81+
AssertNotDisposed();
82+
83+
return buffer.AsSpan(0, ActualLength);
84+
}
85+
7986
protected void AssertNotDisposed()
8087
{
8188
if (_disposed)

SecureFolderFS.WinUI/Dialogs/VaultWizardDialog.xaml.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using SecureFolderFS.Backend.Utils;
1212
using SecureFolderFS.Backend.ViewModels.Dialogs;
1313
using SecureFolderFS.Backend.ViewModels.Pages.VaultWizard;
14+
using SecureFolderFS.WinUI.Helpers;
1415
using SecureFolderFS.WinUI.Views.VaultWizard;
1516

1617
// To learn more about WinUI, the WinUI project structure,
@@ -152,13 +153,13 @@ private void VaultWizardDialog_Loaded(object sender, RoutedEventArgs e)
152153

153154
private void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
154155
{
155-
var handledCallback = new HandledCallback(value => args.Cancel = value);
156+
var handledCallback = new HandledOrCanceledFlag(value => args.Cancel = value);
156157
ViewModel.PrimaryButtonClickCommand?.Execute(handledCallback);
157158
}
158159

159160
private void ContentDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
160161
{
161-
var handledCallback = new HandledCallback(value => args.Cancel = value);
162+
var handledCallback = new HandledOrCanceledFlag(value => args.Cancel = value);
162163
ViewModel.SecondaryButtonClickCommand?.Execute(handledCallback);
163164
}
164165

SecureFolderFS.Backend/Utils/HandledCallback.cs renamed to SecureFolderFS.WinUI/Helpers/HandledOrCanceledFlag.cs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,27 @@
1-
using System;
1+
using SecureFolderFS.Backend.Utils;
2+
using System;
23

3-
#nullable enable
4-
5-
namespace SecureFolderFS.Backend.Utils
4+
namespace SecureFolderFS.WinUI.Helpers
65
{
7-
public sealed class HandledCallback
6+
internal sealed class HandledOrCanceledFlag : IHandledFlag, ICanceledFlag
87
{
98
private readonly Action<bool> _flagCallback;
109

11-
public HandledCallback(Action<bool> flagCallback)
10+
public HandledOrCanceledFlag(Action<bool> flagCallback)
1211
{
1312
this._flagCallback = flagCallback;
1413
}
1514

15+
public void Cancel()
16+
{
17+
Handle();
18+
}
19+
1620
public void Handle()
1721
{
1822
Handle(true);
1923
}
20-
24+
2125
public void Handle(bool value)
2226
{
2327
_flagCallback(value);

0 commit comments

Comments
 (0)