Merge branch 'AlexVallat/Keepass2AndroidPerfOpt'

Conflicts:
	src/Kp2aBusinessLogic/database/edit/LoadDB.cs
This commit is contained in:
Philipp Crocoll 2013-08-14 06:11:27 +02:00
commit e014b2c185
2 changed files with 21 additions and 6 deletions

View File

@ -17,6 +17,7 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using KeePassLib.Serialization;
@ -56,11 +57,25 @@ namespace keepass2android
Kp2aLog.Log("KeyFileException");
Finish(false, /*TODO Localize: use Keepass error text KPRes.KeyFileError (including "or invalid format")*/ _app.GetResourceString(UiStringKey.keyfile_does_not_exist));
}
catch (Exception e) {
catch (AggregateException e)
{
string message = e.Message;
foreach (var innerException in e.InnerExceptions)
{
message = innerException.Message; // Override the message shown with the last (hopefully most recent) inner exception
Kp2aLog.Log("Exception: " + message);
}
Finish(false, "An error occured: " + message);
return;
}
catch (Exception e)
{
Kp2aLog.Log("Exception: " + e);
Finish(false, "An error occured: " + e.Message);
return;
}
/* catch (InvalidPasswordException e) {
finish(false, Ctx.GetString(Resource.String.InvalidPassword));
return;

View File

@ -59,7 +59,7 @@ namespace keepass2android
private bool _rememberKeyfile;
ISharedPreferences _prefs;
private bool _started;
private bool _starting;
public PasswordActivity (IntPtr javaReference, JniHandleOwnership transfer)
: base(javaReference, transfer)
@ -370,7 +370,7 @@ namespace keepass2android
protected override void OnStart()
{
base.OnStart();
_started = true;
_starting = true;
}
private MemoryStream LoadDbFile()
@ -411,9 +411,9 @@ namespace keepass2android
// OnResume is run every time the activity comes to the foreground. This code should only run when the activity is started (OnStart), but must
// be run in OnResume rather than OnStart so that it always occurrs after OnActivityResult (when re-creating a killed activity, OnStart occurs before OnActivityResult)
if (_started && !IsFinishing) //use !IsFinishing to make sure we're not starting another activity when we're already finishing (e.g. due to TaskComplete in OnActivityResult)
if (_starting && !IsFinishing) //use !IsFinishing to make sure we're not starting another activity when we're already finishing (e.g. due to TaskComplete in OnActivityResult)
{
_started = false;
_starting = false;
if (App.Kp2a.DatabaseIsUnlocked)
{
LaunchNextActivity();