mirror of
https://github.com/KeyKeeperApp/KeyKeeper.git
synced 2026-04-22 15:36:29 +03:00
detect lock status when the window opens
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
using KeyKeeper.PasswordStore;
|
||||
|
||||
namespace KeyKeeper.ViewModels;
|
||||
|
||||
public class LockedRepositoryViewModel : ViewModelBase
|
||||
{
|
||||
private IPassStore passStore;
|
||||
|
||||
public LockedRepositoryViewModel(IPassStore store)
|
||||
{
|
||||
passStore = store;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,39 @@
|
||||
using KeyKeeper.PasswordStore;
|
||||
|
||||
namespace KeyKeeper.ViewModels;
|
||||
|
||||
public class RepositoryWindowViewModel : ViewModelBase
|
||||
{
|
||||
private object currentPage = new LockedRepositoryViewModel();
|
||||
private object currentPage;
|
||||
private IPassStore passStore;
|
||||
|
||||
public object CurrentPage
|
||||
{
|
||||
get => 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;
|
||||
|
||||
public class UnlockedRepositoryViewModel : ViewModelBase
|
||||
{
|
||||
private IPassStore passStore;
|
||||
|
||||
public UnlockedRepositoryViewModel(IPassStore store)
|
||||
{
|
||||
passStore = store;
|
||||
}
|
||||
}
|
||||
@@ -84,8 +84,7 @@ namespace KeyKeeper.Views
|
||||
{
|
||||
var repositoryWindow = new RepositoryWindow()
|
||||
{
|
||||
DataContext = new RepositoryWindowViewModel(),
|
||||
PassStore = store,
|
||||
DataContext = new RepositoryWindowViewModel(store),
|
||||
WindowStartupLocation = WindowStartupLocation.CenterScreen
|
||||
};
|
||||
repositoryWindow.Closed += (s, e) => this.Show();
|
||||
|
||||
Reference in New Issue
Block a user