From 55787ff6cf432e5fe9f966c79e1fcab37099df24 Mon Sep 17 00:00:00 2001 From: Philipp Crocoll Date: Mon, 18 Mar 2019 05:09:20 +0100 Subject: [PATCH] fix crash on Samsung devices with Android 9, fix problem with bringing up keyboard --- .../services/CopyToClipboardService.cs | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/keepass2android/services/CopyToClipboardService.cs b/src/keepass2android/services/CopyToClipboardService.cs index e90ef876..e7619e21 100644 --- a/src/keepass2android/services/CopyToClipboardService.cs +++ b/src/keepass2android/services/CopyToClipboardService.cs @@ -761,7 +761,26 @@ namespace keepass2android Toast.MakeText(this, Resource.String.not_possible_im_picker, ToastLength.Long).Show(); return; } - imeManager.ToggleSoftInput(ShowFlags.Forced, HideSoftInputFlags.None); + try + { + imeManager.ToggleSoftInput(ShowFlags.Forced, HideSoftInputFlags.None); + } + catch (Exception e) + { + Kp2aLog.LogUnexpectedError(e); + + try + { + imeManager.ToggleSoftInput(ShowFlags.Implicit, HideSoftInputFlags.ImplicitOnly); + return; + } + catch (Exception) + { + Toast.MakeText(this, Resource.String.not_possible_im_picker, ToastLength.Long).Show(); + } + return; + } + } else { @@ -785,7 +804,8 @@ namespace keepass2android { ActivityManager.RunningAppProcessInfo appProcessInfo = new ActivityManager.RunningAppProcessInfo(); ActivityManager.GetMyMemoryState(appProcessInfo); - mustUseHelperActivity = (appProcessInfo.Importance != Importance.Foreground); + //at least on Samsung devices, we always need the helper activity + mustUseHelperActivity = (appProcessInfo.Importance != Importance.Foreground) || (Build.Manufacturer != "Google"); } if (mustUseHelperActivity) {