Skip to content

Commit f0b5e2e

Browse files
committed
Improve error handling for UUID reconstruction
1 parent 9250a08 commit f0b5e2e

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

src/keepass2android-app/ConfigureKeeShareActivity.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Android.Content;
66
using Android.Content.PM;
77
using Android.OS;
8+
using Android.Util;
89
using Android.Views;
910
using Android.Widget;
1011
using Google.Android.Material.Dialog;
@@ -36,7 +37,7 @@ public KeeShareAdapter(ConfigureKeeShareActivity context)
3637

3738
public override Java.Lang.Object GetItem(int position)
3839
{
39-
return position;
40+
return _displayedItems[position];
4041
}
4142

4243
public override long GetItemId(int position)
@@ -241,8 +242,16 @@ protected override void OnCreate(Bundle savedInstanceState)
241242
string uuidString = savedInstanceState.GetString(PendingConfigItemUuidKey);
242243
if (!string.IsNullOrEmpty(uuidString))
243244
{
244-
var uuid = new PwUuid(Convert.FromBase64String(uuidString));
245-
_pendingConfigItem = _adapter._displayedItems.FirstOrDefault(i => i.Group.Uuid.Equals(uuid));
245+
try
246+
{
247+
var uuid = new PwUuid(Convert.FromBase64String(uuidString));
248+
_pendingConfigItem = _adapter._displayedItems.FirstOrDefault(i => i.Group.Uuid.Equals(uuid));
249+
}
250+
catch (Exception ex) when (ex is FormatException || ex is ArgumentException)
251+
{
252+
Log.Error("ConfigureKeeShareActivity", "Failed to reconstruct PwUuid from saved state", ex);
253+
_pendingConfigItem = null;
254+
}
246255
}
247256
}
248257
}

0 commit comments

Comments
 (0)