Skip IMM#ensureDefaultInstance in system_server
The system code should not rely on/use the static instance of
InputMethodManager, so we should skip this call entirely when running in
system_server.
Bug: 318819032
Test: n/a
Change-Id: Ie7d409cb32b577e788ef8870677576955d615efd
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index feccc6b..3bc02a6 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -354,7 +354,11 @@
* @hide
*/
public static void ensureDefaultInstanceForDefaultDisplayIfNecessary() {
- forContextInternal(Display.DEFAULT_DISPLAY, Looper.getMainLooper());
+ // Skip this call if we are in system_server, as the system code should not use this
+ // deprecated instance.
+ if (!ActivityThread.isSystem()) {
+ forContextInternal(Display.DEFAULT_DISPLAY, Looper.getMainLooper());
+ }
}
private static final Object sLock = new Object();