diff --git a/src/keepass2android/EntryEditActivity.cs b/src/keepass2android/EntryEditActivity.cs index 07ef93e8..7f60bcd4 100644 --- a/src/keepass2android/EntryEditActivity.cs +++ b/src/keepass2android/EntryEditActivity.cs @@ -289,6 +289,52 @@ namespace keepass2android } } + void AddBinaryOrAsk(Uri filename) + { + + string strItem = GetFileName(filename); + if (String.IsNullOrEmpty(strItem)) + strItem = "attachment.bin"; + + if (State.Entry.Binaries.Get(strItem) != null) + { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.SetTitle(GetString(Resource.String.AskOverwriteBinary_title)); + + builder.SetMessage(GetString(Resource.String.AskOverwriteBinary)); + + builder.SetPositiveButton(GetString(Resource.String.AskOverwriteBinary_yes), (dlgSender, dlgEvt) => + { + AddBinary(filename, true); + }); + + builder.SetNegativeButton(GetString(Resource.String.AskOverwriteBinary_no), (dlgSender, dlgEvt) => + { + AddBinary(filename, false); + }); + + builder.SetNeutralButton(GetString(Android.Resource.String.Cancel), + (dlgSender, dlgEvt) => { }); + + Dialog dialog = builder.Create(); + dialog.Show(); + + + } + else + AddBinary(filename, true); + } + + protected override void OnResume() + { + if (_uriToAddOrAsk != null) + { + AddBinaryOrAsk(_uriToAddOrAsk); + _uriToAddOrAsk = null; + } + base.OnResume(); + } + private void CreateNewFromKpEntryTemplate(Database db, PwEntry templateEntry) { var entry = new PwEntry(true, true); @@ -574,41 +620,7 @@ namespace keepass2android return result; } - void AddBinaryOrAsk(Uri filename) - { - - string strItem = GetFileName(filename); - if (String.IsNullOrEmpty(strItem)) - strItem = "attachment.bin"; - - if(State.Entry.Binaries.Get(strItem) != null) - { - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.SetTitle(GetString(Resource.String.AskOverwriteBinary_title)); - - builder.SetMessage(GetString(Resource.String.AskOverwriteBinary)); - - builder.SetPositiveButton(GetString(Resource.String.AskOverwriteBinary_yes), (dlgSender, dlgEvt) => - { - AddBinary(filename, true); - }); - - builder.SetNegativeButton(GetString(Resource.String.AskOverwriteBinary_no), (dlgSender, dlgEvt) => - { - AddBinary(filename, false); - }); - - builder.SetNeutralButton(GetString(Android.Resource.String.Cancel), - (dlgSender, dlgEvt) => {}); - - Dialog dialog = builder.Create(); - dialog.Show(); - - - } else - AddBinary(filename, true); - } - + void AddBinary(Uri filename, bool overwrite) { string strItem = GetFileName(filename); @@ -762,12 +774,8 @@ namespace keepass2android } uri = Uri.Parse(s); } - AddBinaryOrAsk(uri); - + _uriToAddOrAsk = uri; //we can't launch a dialog in onActivityResult, so delay this to onResume } - Reload(); - - break; case Result.Canceled: Reload(); @@ -905,6 +913,7 @@ namespace keepass2android private string[] _additionalKeys = null; private List _editModeHiddenViews; + private Uri _uriToAddOrAsk; public string[] AdditionalKeys { diff --git a/src/keepass2android/Properties/AndroidManifest_debug.xml b/src/keepass2android/Properties/AndroidManifest_debug.xml index 1c6c08fd..c824cf57 100644 --- a/src/keepass2android/Properties/AndroidManifest_debug.xml +++ b/src/keepass2android/Properties/AndroidManifest_debug.xml @@ -28,12 +28,6 @@ - - - - - - @@ -123,6 +117,7 @@ + diff --git a/src/keepass2android/Properties/AndroidManifest_net.xml b/src/keepass2android/Properties/AndroidManifest_net.xml index 997f477d..f7da6c49 100644 --- a/src/keepass2android/Properties/AndroidManifest_net.xml +++ b/src/keepass2android/Properties/AndroidManifest_net.xml @@ -33,12 +33,6 @@ - - - - - - @@ -149,6 +143,7 @@ + diff --git a/src/keepass2android/Properties/AndroidManifest_nonet.xml b/src/keepass2android/Properties/AndroidManifest_nonet.xml index d343a191..61ba4828 100644 --- a/src/keepass2android/Properties/AndroidManifest_nonet.xml +++ b/src/keepass2android/Properties/AndroidManifest_nonet.xml @@ -15,12 +15,6 @@ - - - - - - diff --git a/src/keepass2android/Resources/values/config.xml b/src/keepass2android/Resources/values/config.xml index f515f35b..2674bb5c 100644 --- a/src/keepass2android/Resources/values/config.xml +++ b/src/keepass2android/Resources/values/config.xml @@ -48,7 +48,8 @@ - algorithm + AutoReturnFromQuery_key + algorithm app app_timeout_key show_kill_app_key diff --git a/src/keepass2android/Resources/values/strings.xml b/src/keepass2android/Resources/values/strings.xml index 5f42930b..a6c49a49 100644 --- a/src/keepass2android/Resources/values/strings.xml +++ b/src/keepass2android/Resources/values/strings.xml @@ -221,6 +221,8 @@ Edit Rijndael (AES) Root + Automatically return from query screen + When looking up an entry for an app or website: automatically return from query screen if there is only one matching entry in the database. Key derivation function diff --git a/src/keepass2android/Resources/xml/preferences.xml b/src/keepass2android/Resources/xml/preferences.xml index 21bbcf4c..babcbb0b 100644 --- a/src/keepass2android/Resources/xml/preferences.xml +++ b/src/keepass2android/Resources/xml/preferences.xml @@ -402,6 +402,14 @@ + +