make sure dialog asking overwrite/append of attachments is shown by moving code to OnResume. fixes https://github.com/PhilippC/keepass2android/issues/342
This commit is contained in:
@@ -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)
|
private void CreateNewFromKpEntryTemplate(Database db, PwEntry templateEntry)
|
||||||
{
|
{
|
||||||
var entry = new PwEntry(true, true);
|
var entry = new PwEntry(true, true);
|
||||||
@@ -574,41 +620,7 @@ namespace keepass2android
|
|||||||
return result;
|
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)
|
void AddBinary(Uri filename, bool overwrite)
|
||||||
{
|
{
|
||||||
string strItem = GetFileName(filename);
|
string strItem = GetFileName(filename);
|
||||||
@@ -762,12 +774,8 @@ namespace keepass2android
|
|||||||
}
|
}
|
||||||
uri = Uri.Parse(s);
|
uri = Uri.Parse(s);
|
||||||
}
|
}
|
||||||
AddBinaryOrAsk(uri);
|
_uriToAddOrAsk = uri; //we can't launch a dialog in onActivityResult, so delay this to onResume
|
||||||
|
|
||||||
}
|
}
|
||||||
Reload();
|
|
||||||
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case Result.Canceled:
|
case Result.Canceled:
|
||||||
Reload();
|
Reload();
|
||||||
@@ -905,6 +913,7 @@ namespace keepass2android
|
|||||||
|
|
||||||
private string[] _additionalKeys = null;
|
private string[] _additionalKeys = null;
|
||||||
private List<View> _editModeHiddenViews;
|
private List<View> _editModeHiddenViews;
|
||||||
|
private Uri _uriToAddOrAsk;
|
||||||
|
|
||||||
public string[] AdditionalKeys
|
public string[] AdditionalKeys
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user