From 272ff626cb87f89ffa84e21b27ef29dd811649e5 Mon Sep 17 00:00:00 2001 From: Chilun Date: Wed, 20 Mar 2019 15:04:38 +0800 Subject: [PATCH] Hide keyboard while the home button get pressed For multi-client IME, launcher need to call hideSoftInputFromWindow() by using the InputMethodManager instance that mapped the presented display while its home button get pressed. Launcher 3 has already handled this part, but the secondary launcher has not yet. Bug: 120114697 Test: Manual verified that multi-client IME can be closed correctly. Change-Id: I8959c3a470580452bfb95dbd4b4ce9268589000f --- .../launcher3/SecondaryDisplayLauncher.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/SecondaryDisplayLauncher/src/com/android/launcher3/SecondaryDisplayLauncher.java b/SecondaryDisplayLauncher/src/com/android/launcher3/SecondaryDisplayLauncher.java index 12fa46bf44..0a2f18f109 100644 --- a/SecondaryDisplayLauncher/src/com/android/launcher3/SecondaryDisplayLauncher.java +++ b/SecondaryDisplayLauncher/src/com/android/launcher3/SecondaryDisplayLauncher.java @@ -26,12 +26,11 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Bundle; -import com.google.android.material.circularreveal.cardview.CircularRevealCardView; -import com.google.android.material.floatingactionbutton.FloatingActionButton; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewAnimationUtils; +import android.view.inputmethod.InputMethodManager; import android.widget.GridView; import android.widget.ImageButton; import android.widget.PopupMenu; @@ -41,6 +40,9 @@ import androidx.fragment.app.FragmentManager; import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory; +import com.google.android.material.circularreveal.cardview.CircularRevealCardView; +import com.google.android.material.floatingactionbutton.FloatingActionButton; + import java.util.HashSet; import java.util.Set; @@ -141,6 +143,16 @@ public class SecondaryDisplayLauncher extends FragmentActivity implements AppPic public void onNewIntent(Intent intent) { super.onNewIntent(intent); + + if (Intent.ACTION_MAIN.equals(intent.getAction())) { + // Hide keyboard. + final View v = getWindow().peekDecorView(); + if (v != null && v.getWindowToken() != null) { + getSystemService(InputMethodManager.class).hideSoftInputFromWindow( + v.getWindowToken(), 0); + } + } + // A new intent will bring the launcher to top. Hide the app drawer to reset the state. showAppDrawer(false); }