avoid potential crash in Android 12 while reloading the Database, closes https://github.com/PhilippC/keepass2android/issues/1909

This commit is contained in:
Philipp Crocoll
2022-01-20 20:00:37 +01:00
parent 2c93fd1542
commit 40146a42ce
2 changed files with 30 additions and 3 deletions

View File

@@ -72,7 +72,20 @@ namespace keepass2android.view
_textView = (TextView)ev.FindViewById(Resource.Id.entry_text);
_textView.TextSize = PrefsUtil.GetListTextSize(groupActivity);
Database db = App.Kp2a.FindDatabaseForElement(pw);
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;
}
ev.FindViewById(Resource.Id.entry_icon_bkg).Visibility = db.DrawableFactory.IsWhiteIconSet ? ViewStates.Visible : ViewStates.Gone;

View File

@@ -81,8 +81,22 @@ namespace keepass2android.view
_pwGroup = pw;
ImageView iv = (ImageView) gv.FindViewById(Resource.Id.icon);
Database db = App.Kp2a.FindDatabaseForElement(pw);
db.DrawableFactory.AssignDrawableTo(iv, _groupBaseActivity, db.KpDatabase, pw.IconId, pw.CustomIconUuid, true);
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);
gv.FindViewById(Resource.Id.icon).Visibility = ViewStates.Visible;
gv.FindViewById(Resource.Id.check_mark).Visibility = ViewStates.Invisible;