Skip to content

Commit 3f13d55

Browse files
committed
stability improvements
1 parent b0ad8c3 commit 3f13d55

3 files changed

Lines changed: 34 additions & 16 deletions

File tree

src/Kp2aBusinessLogic/Utils/ExceptionUtil.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,21 @@ public class ExceptionUtil
1212

1313
public static string GetErrorMessage(Exception e)
1414
{
15-
string errorMessage = e.Message;
16-
if (e is Java.Lang.Exception javaException)
15+
16+
try
1717
{
18-
try
18+
string errorMessage = e.Message;
19+
if (e is Java.Lang.Exception javaException)
1920
{
2021
errorMessage = javaException.LocalizedMessage ?? javaException.Message ?? errorMessage;
2122
}
22-
finally
23-
{
2423

25-
}
24+
return errorMessage;
25+
}
26+
catch
27+
{
28+
return "";
2629
}
27-
28-
return errorMessage;
2930
}
3031

3132
}

src/keepass2android-app/views/PwEntryView.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,15 @@ private void PopulateView(View ev, PwEntry pw, int pos)
131131
ev.FindViewById(Resource.Id.icon).Visibility = ViewStates.Visible;
132132
ev.FindViewById(Resource.Id.check_mark).Visibility = ViewStates.Invisible;
133133

134-
_db = App.Kp2a.FindDatabaseForElement(_entry);
134+
_db = App.Kp2a.TryFindDatabaseForElement(_entry);
135+
if (_db == null)
136+
{
137+
ev.FindViewById(Resource.Id.icon).Visibility = ViewStates.Gone;
138+
_textView.TextFormatted = new SpannableString("(no data)");
139+
_textviewDetails.Visibility = ViewStates.Gone;
140+
_textgroupFullPath.Visibility = ViewStates.Gone;
141+
return;
142+
}
135143

136144
ImageView iv = (ImageView)ev.FindViewById(Resource.Id.icon);
137145
bool isExpired = pw.Expires && pw.ExpiryTime < DateTime.Now;
@@ -209,11 +217,6 @@ private void PopulateView(View ev, PwEntry pw, int pos)
209217
UpdateTotp();
210218

211219

212-
213-
214-
215-
216-
217220
}
218221

219222
public void ConvertView(PwEntry pw, int pos)

src/keepass2android-app/views/PwGroupView.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@ You should have received a copy of the GNU General Public License
1515
along with Keepass2Android. If not, see <http://www.gnu.org/licenses/>.
1616
*/
1717

18-
using System;
1918
using Android.Graphics;
2019
using Android.OS;
2120
using Android.Runtime;
21+
using Android.Text;
2222
using Android.Views;
2323
using Android.Widget;
2424
using keepass2android;
2525
using KeePassLib;
26+
using System;
2627
using Object = Java.Lang.Object;
2728

2829
namespace keepass2android.view
@@ -64,7 +65,20 @@ private PwGroupView(GroupBaseActivity act, PwGroup pw)
6465
_label = (TextView) gv.FindViewById(Resource.Id.group_label);
6566
_label.TextSize = size-8;
6667

67-
Database db = App.Kp2a.FindDatabaseForElement(pw);
68+
Database db = App.Kp2a.TryFindDatabaseForElement(pw);
69+
70+
71+
if (db == null)
72+
{
73+
74+
gv.FindViewById(Resource.Id.group_icon_bkg).Visibility = ViewStates.Gone;
75+
76+
gv.FindViewById(Resource.Id.icon).Visibility = ViewStates.Gone;
77+
gv.FindViewById(Resource.Id.check_mark).Visibility = ViewStates.Invisible;
78+
_textview.Text = "(no data)";
79+
_label.Text = "";
80+
return;
81+
}
6882

6983
gv.FindViewById(Resource.Id.group_icon_bkg).Visibility = db.DrawableFactory.IsWhiteIconSet ? ViewStates.Visible : ViewStates.Gone;
7084

0 commit comments

Comments
 (0)