diff --git a/ModernKeePass.Infrastructure/KeePass/KeePassDatabaseClient.cs b/ModernKeePass.Infrastructure/KeePass/KeePassDatabaseClient.cs index 6ef5fb8..e32e0df 100644 --- a/ModernKeePass.Infrastructure/KeePass/KeePassDatabaseClient.cs +++ b/ModernKeePass.Infrastructure/KeePass/KeePassDatabaseClient.cs @@ -47,7 +47,7 @@ namespace ModernKeePass.Infrastructure.KeePass { get { - if (_pwDatabase.RecycleBinEnabled) + if (_pwDatabase.RecycleBinEnabled && !_pwDatabase.RecycleBinUuid.Equals(PwUuid.Zero)) { return _pwDatabase.RecycleBinUuid.ToHexString(); } @@ -56,7 +56,7 @@ namespace ModernKeePass.Infrastructure.KeePass } set { - _pwDatabase.RecycleBinUuid = BuildIdFromString(value); + _pwDatabase.RecycleBinUuid = value != null ? BuildIdFromString(value) : PwUuid.Zero; _pwDatabase.RecycleBinChanged = _dateTime.Now; } } @@ -331,7 +331,7 @@ namespace ModernKeePass.Infrastructure.KeePass if (disposing) { - _pwDatabase.Close(); + _pwDatabase?.Close(); } _disposed = true; diff --git a/ModernKeePass/App.xaml.cs b/ModernKeePass/App.xaml.cs index 843e0f5..7a3cdea 100644 --- a/ModernKeePass/App.xaml.cs +++ b/ModernKeePass/App.xaml.cs @@ -47,7 +47,7 @@ namespace ModernKeePass public App() { #if DEBUG - HockeyClient.Current.Configure("2fe83672887b4910b9de93a4398d0f8f"); + HockeyClient.Current.Configure("2fe83672-887b-4910-b9de-93a4398d0f8f"); #else HockeyClient.Current.Configure("9eb5fbb79b484fbd8daf04635e975c84"); #endif @@ -85,6 +85,7 @@ namespace ModernKeePass if (realException is SaveException) { unhandledExceptionEventArgs.Handled = true; + HockeyClient.Current.TrackException(realException.InnerException); await MessageDialogHelper.ShowActionDialog(_resource.GetResourceValue("MessageDialogSaveErrorTitle"), realException.InnerException.Message, _resource.GetResourceValue("MessageDialogSaveErrorButtonSaveAs"), diff --git a/ModernKeePass/ViewModels/Items/SettingsDatabaseVm.cs b/ModernKeePass/ViewModels/Items/SettingsDatabaseVm.cs index 3037fd0..dee3b78 100644 --- a/ModernKeePass/ViewModels/Items/SettingsDatabaseVm.cs +++ b/ModernKeePass/ViewModels/Items/SettingsDatabaseVm.cs @@ -71,7 +71,10 @@ namespace ModernKeePass.ViewModels public IEntityVm SelectedRecycleBin { get { return Groups.FirstOrDefault(g => g.Id == _database.RecycleBinId); } - set { _mediator.Send(new SetRecycleBinCommand { RecycleBinId = value.Id}).Wait(); } + set + { + if (!IsNewRecycleBin) _mediator.Send(new SetRecycleBinCommand { RecycleBinId = value.Id}).Wait(); + } } public SettingsDatabaseVm() : this(App.Services.GetService()) { } diff --git a/ModernKeePass/ViewModels/RecentVm.cs b/ModernKeePass/ViewModels/RecentVm.cs index 1ccee89..77edabb 100644 --- a/ModernKeePass/ViewModels/RecentVm.cs +++ b/ModernKeePass/ViewModels/RecentVm.cs @@ -49,8 +49,8 @@ namespace ModernKeePass.ViewModels _recent = recent; ClearAllCommand = new RelayCommand(ClearAll); - RecentItems = new ObservableCollection(_recent.GetAll().GetAwaiter().GetResult() - .Select(r => new RecentItemVm(r))); + var recentItems = _recent.GetAll().GetAwaiter().GetResult().Select(r => new RecentItemVm(r)); + RecentItems = new ObservableCollection(recentItems); if (RecentItems.Count > 0) SelectedItem = RecentItems[0]; } diff --git a/ModernKeePass/Views/GroupDetailPage.xaml b/ModernKeePass/Views/GroupDetailPage.xaml index 8a95371..90ab9b6 100644 --- a/ModernKeePass/Views/GroupDetailPage.xaml +++ b/ModernKeePass/Views/GroupDetailPage.xaml @@ -17,6 +17,7 @@ + @@ -103,7 +104,7 @@ - +