mirror of
https://github.com/KeyKeeperApp/KeyKeeper.git
synced 2026-05-08 09:26:30 +03:00
detect lock status when the window opens
This commit is contained in:
@@ -1,5 +1,13 @@
|
|||||||
|
using KeyKeeper.PasswordStore;
|
||||||
|
|
||||||
namespace KeyKeeper.ViewModels;
|
namespace KeyKeeper.ViewModels;
|
||||||
|
|
||||||
public class LockedRepositoryViewModel : ViewModelBase
|
public class LockedRepositoryViewModel : ViewModelBase
|
||||||
{
|
{
|
||||||
|
private IPassStore passStore;
|
||||||
|
|
||||||
|
public LockedRepositoryViewModel(IPassStore store)
|
||||||
|
{
|
||||||
|
passStore = store;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,39 @@
|
|||||||
|
using KeyKeeper.PasswordStore;
|
||||||
|
|
||||||
namespace KeyKeeper.ViewModels;
|
namespace KeyKeeper.ViewModels;
|
||||||
|
|
||||||
public class RepositoryWindowViewModel : ViewModelBase
|
public class RepositoryWindowViewModel : ViewModelBase
|
||||||
{
|
{
|
||||||
private object currentPage = new LockedRepositoryViewModel();
|
private object currentPage;
|
||||||
|
private IPassStore passStore;
|
||||||
|
|
||||||
public object CurrentPage
|
public object CurrentPage
|
||||||
{
|
{
|
||||||
get => currentPage;
|
get => currentPage;
|
||||||
set { currentPage = value; OnPropertyChanged(nameof(CurrentPage)); }
|
set { currentPage = value; OnPropertyChanged(nameof(CurrentPage)); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public RepositoryWindowViewModel(IPassStore store)
|
||||||
|
{
|
||||||
|
passStore = store;
|
||||||
|
UpdateLockStatus();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateLockStatus()
|
||||||
|
{
|
||||||
|
if (currentPage is LockedRepositoryViewModel && !passStore.Locked)
|
||||||
|
SwitchToUnlocked();
|
||||||
|
else if (currentPage is UnlockedRepositoryViewModel && passStore.Locked)
|
||||||
|
SwitchToLocked();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SwitchToUnlocked()
|
||||||
|
{
|
||||||
|
currentPage = new UnlockedRepositoryViewModel(passStore);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SwitchToLocked()
|
||||||
|
{
|
||||||
|
currentPage = new LockedRepositoryViewModel(passStore);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,13 @@
|
|||||||
|
using KeyKeeper.PasswordStore;
|
||||||
|
|
||||||
namespace KeyKeeper.ViewModels;
|
namespace KeyKeeper.ViewModels;
|
||||||
|
|
||||||
public class UnlockedRepositoryViewModel : ViewModelBase
|
public class UnlockedRepositoryViewModel : ViewModelBase
|
||||||
{
|
{
|
||||||
|
private IPassStore passStore;
|
||||||
|
|
||||||
|
public UnlockedRepositoryViewModel(IPassStore store)
|
||||||
|
{
|
||||||
|
passStore = store;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -84,8 +84,7 @@ namespace KeyKeeper.Views
|
|||||||
{
|
{
|
||||||
var repositoryWindow = new RepositoryWindow()
|
var repositoryWindow = new RepositoryWindow()
|
||||||
{
|
{
|
||||||
DataContext = new RepositoryWindowViewModel(),
|
DataContext = new RepositoryWindowViewModel(store),
|
||||||
PassStore = store,
|
|
||||||
WindowStartupLocation = WindowStartupLocation.CenterScreen
|
WindowStartupLocation = WindowStartupLocation.CenterScreen
|
||||||
};
|
};
|
||||||
repositoryWindow.Closed += (s, e) => this.Show();
|
repositoryWindow.Closed += (s, e) => this.Show();
|
||||||
|
|||||||
Reference in New Issue
Block a user