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;
using System.IO; using System.IO;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using KeePassLib.Serialization; using KeePassLib.Serialization;
@ -56,11 +57,25 @@ namespace keepass2android
Kp2aLog.Log("KeyFileException"); Kp2aLog.Log("KeyFileException");
Finish(false, /*TODO Localize: use Keepass error text KPRes.KeyFileError (including "or invalid format")*/ _app.GetResourceString(UiStringKey.keyfile_does_not_exist)); 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); Kp2aLog.Log("Exception: " + e);
Finish(false, "An error occured: " + e.Message); Finish(false, "An error occured: " + e.Message);
return; return;
} }
/* catch (InvalidPasswordException e) { /* catch (InvalidPasswordException e) {
finish(false, Ctx.GetString(Resource.String.InvalidPassword)); finish(false, Ctx.GetString(Resource.String.InvalidPassword));
return; return;

View File

@ -59,7 +59,7 @@ namespace keepass2android
private bool _rememberKeyfile; private bool _rememberKeyfile;
ISharedPreferences _prefs; ISharedPreferences _prefs;
private bool _started; private bool _starting;
public PasswordActivity (IntPtr javaReference, JniHandleOwnership transfer) public PasswordActivity (IntPtr javaReference, JniHandleOwnership transfer)
: base(javaReference, transfer) : base(javaReference, transfer)
@ -370,7 +370,7 @@ namespace keepass2android
protected override void OnStart() protected override void OnStart()
{ {
base.OnStart(); base.OnStart();
_started = true; _starting = true;
} }
private MemoryStream LoadDbFile() 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 // 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) // 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) if (App.Kp2a.DatabaseIsUnlocked)
{ {
LaunchNextActivity(); LaunchNextActivity();