Merge "Check IME visibility check before calling IMM.hide()" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
0c1901bddd
@@ -99,7 +99,7 @@ public class ExtendedEditText extends EditText {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void hideKeyboard() {
|
public void hideKeyboard() {
|
||||||
UiThreadHelper.hideKeyboardAsync(getContext(), getWindowToken());
|
UiThreadHelper.hideKeyboardAsync(Launcher.getLauncher(getContext()), getWindowToken());
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean showSoftInput() {
|
private boolean showSoftInput() {
|
||||||
|
|||||||
@@ -17,13 +17,18 @@ package com.android.launcher3.util;
|
|||||||
|
|
||||||
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
|
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
|
import android.view.WindowInsets;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
|
|
||||||
|
import com.android.launcher3.Launcher;
|
||||||
|
import com.android.launcher3.Utilities;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utility class for offloading some class from UI thread
|
* Utility class for offloading some class from UI thread
|
||||||
*/
|
*/
|
||||||
@@ -37,8 +42,16 @@ public class UiThreadHelper {
|
|||||||
private static final int MSG_SET_ORIENTATION = 2;
|
private static final int MSG_SET_ORIENTATION = 2;
|
||||||
private static final int MSG_RUN_COMMAND = 3;
|
private static final int MSG_RUN_COMMAND = 3;
|
||||||
|
|
||||||
public static void hideKeyboardAsync(Context context, IBinder token) {
|
@SuppressLint("NewApi")
|
||||||
Message.obtain(HANDLER.get(context), MSG_HIDE_KEYBOARD, token).sendToTarget();
|
public static void hideKeyboardAsync(Launcher launcher, IBinder token) {
|
||||||
|
if (Utilities.ATLEAST_R) {
|
||||||
|
WindowInsets rootInsets = launcher.getRootView().getRootWindowInsets();
|
||||||
|
boolean isImeShown = rootInsets != null && rootInsets.isVisible(
|
||||||
|
WindowInsets.Type.ime());
|
||||||
|
if (!isImeShown) return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Message.obtain(HANDLER.get(launcher), MSG_HIDE_KEYBOARD, token).sendToTarget();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setOrientationAsync(Activity activity, int orientation) {
|
public static void setOrientationAsync(Activity activity, int orientation) {
|
||||||
|
|||||||
Reference in New Issue
Block a user