From 5d06a8b62a7bfb669a30396349394242b6ca81f4 Mon Sep 17 00:00:00 2001 From: nikoyak <99891966+nikoyak@users.noreply.github.com> Date: Wed, 7 Dec 2022 08:58:11 +0300 Subject: [PATCH 1/2] fix #1956, #1936, #1909 --- src/keepass2android/app/App.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/keepass2android/app/App.cs b/src/keepass2android/app/App.cs index b70370ca..19f05407 100644 --- a/src/keepass2android/app/App.cs +++ b/src/keepass2android/app/App.cs @@ -478,20 +478,24 @@ namespace keepass2android builder.SetPositiveButton(activity.GetString(Android.Resource.String.Yes), (dlgSender, dlgEvt) => { - CurrentDb.ReloadRequested = true; + CurrentDb.ReloadRequested = true; activity.SetResult(KeePass.ExitReloadDb); activity.Finish(); if (actionOnResult != null) + { actionOnResult(true); - + actionOnResult = null; + } }); builder.SetNegativeButton(activity.GetString(Android.Resource.String.No), (dlgSender, dlgEvt) => { if (actionOnResult != null) + { actionOnResult(false); + actionOnResult = null; + } }); - Dialog dialog = builder.Create(); From b9d0f56e0f5c7875233df389f23b9d987a7f9900 Mon Sep 17 00:00:00 2001 From: nikoyak <99891966+nikoyak@users.noreply.github.com> Date: Tue, 20 Dec 2022 11:42:31 +0300 Subject: [PATCH 2/2] Revert "avoid potential crash in Android 12 while reloading the Database, closes https://github.com/PhilippC/keepass2android/issues/1909" This reverts commit 40146a42ce971131ea8e88a41c9cccf4a6ab5f05, because the root problem is fixed. --- src/keepass2android/views/PwEntryView.cs | 15 +-------------- src/keepass2android/views/PwGroupView.cs | 18 ++---------------- 2 files changed, 3 insertions(+), 30 deletions(-) diff --git a/src/keepass2android/views/PwEntryView.cs b/src/keepass2android/views/PwEntryView.cs index e4affed8..85fa44f8 100644 --- a/src/keepass2android/views/PwEntryView.cs +++ b/src/keepass2android/views/PwEntryView.cs @@ -72,20 +72,7 @@ namespace keepass2android.view _textView = (TextView)ev.FindViewById(Resource.Id.entry_text); _textView.TextSize = PrefsUtil.GetListTextSize(groupActivity); - Database db; - try - { - db = App.Kp2a.FindDatabaseForElement(pw); - } - catch (Exception e) - { - //for some reason, since Android 12 we get here when the database is reloaded (after making remote changes and selecting sync) - //we can just ignore this. - Console.WriteLine(e); - return; - - } - + Database db = App.Kp2a.FindDatabaseForElement(pw); ev.FindViewById(Resource.Id.entry_icon_bkg).Visibility = db.DrawableFactory.IsWhiteIconSet ? ViewStates.Visible : ViewStates.Gone; diff --git a/src/keepass2android/views/PwGroupView.cs b/src/keepass2android/views/PwGroupView.cs index dc7c4c4b..832c9f33 100644 --- a/src/keepass2android/views/PwGroupView.cs +++ b/src/keepass2android/views/PwGroupView.cs @@ -81,22 +81,8 @@ namespace keepass2android.view _pwGroup = pw; ImageView iv = (ImageView) gv.FindViewById(Resource.Id.icon); - - Database db; - try - { - db = App.Kp2a.FindDatabaseForElement(pw); - } - catch (Exception e) - { - //for some reason, since Android 12 we get here when the database is reloaded (after making remote changes and selecting sync) - //we can just ignore this. - Console.WriteLine(e); - return; - - } - - db.DrawableFactory.AssignDrawableTo(iv, _groupBaseActivity, db.KpDatabase, pw.IconId, pw.CustomIconUuid, true); + Database db = App.Kp2a.FindDatabaseForElement(pw); + db.DrawableFactory.AssignDrawableTo(iv, _groupBaseActivity, db.KpDatabase, pw.IconId, pw.CustomIconUuid, true); gv.FindViewById(Resource.Id.icon).Visibility = ViewStates.Visible; gv.FindViewById(Resource.Id.check_mark).Visibility = ViewStates.Invisible;