diff --git a/src/keepass2android-app/EntryEditActivity.cs b/src/keepass2android-app/EntryEditActivity.cs index a9e6d351..214fd006 100644 --- a/src/keepass2android-app/EntryEditActivity.cs +++ b/src/keepass2android-app/EntryEditActivity.cs @@ -331,13 +331,18 @@ namespace keepass2android } - protected override void OnStart() + private bool hasRequestedKeyboardActivation = false; + protected override void OnStart() { base.OnStart(); if (PreferenceManager.GetDefaultSharedPreferences(this) - .GetBoolean(GetString(Resource.String.UseKp2aKeyboardInKp2a_key), false)) + .GetBoolean(GetString(Resource.String.UseKp2aKeyboardInKp2a_key), false) + && (!hasRequestedKeyboardActivation)) { - CopyToClipboardService.ActivateKeyboard(this); + //only try this once. if the user clicks cancel, we don't want to ask again + // (it may happen that the activity is restarted because of the NewTask flag immediately after the dialog) + hasRequestedKeyboardActivation = true; + CopyToClipboardService.ActivateKeyboard(this); } } diff --git a/src/keepass2android-app/PasswordActivity.cs b/src/keepass2android-app/PasswordActivity.cs index 64fc1a04..dd4f675f 100644 --- a/src/keepass2android-app/PasswordActivity.cs +++ b/src/keepass2android-app/PasswordActivity.cs @@ -1570,15 +1570,19 @@ namespace keepass2android base.OnPause(); } + + private bool hasRequestedKeyboardActivation = false; protected override void OnStart() { base.OnStart(); _starting = true; if (PreferenceManager.GetDefaultSharedPreferences(this) - .GetBoolean(GetString(Resource.String.UseKp2aKeyboardInKp2a_key), false)) - { - CopyToClipboardService.ActivateKeyboard(this); + .GetBoolean(GetString(Resource.String.UseKp2aKeyboardInKp2a_key), false) + && !hasRequestedKeyboardActivation) + { + hasRequestedKeyboardActivation = true; + CopyToClipboardService.ActivateKeyboard(this); } DonateReminder.ShowDonateReminderIfAppropriate(this); diff --git a/src/keepass2android-app/Resources/layout/switch_ime_activity_layout.xml b/src/keepass2android-app/Resources/layout/switch_ime_activity_layout.xml index 19573fe2..c40353af 100644 --- a/src/keepass2android-app/Resources/layout/switch_ime_activity_layout.xml +++ b/src/keepass2android-app/Resources/layout/switch_ime_activity_layout.xml @@ -1,4 +1,9 @@ +