diff options
| -rw-r--r-- | core/java/android/view/inputmethod/InputMethodManager.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index 9ede57f96177..635c74f9d70f 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -57,6 +57,7 @@ import android.view.ViewRootImpl; import android.view.WindowManager.LayoutParams.SoftInputModeFlags; import android.view.autofill.AutofillManager; +import com.android.internal.annotations.GuardedBy; import com.android.internal.inputmethod.InputMethodPrivilegedOperationsRegistry; import com.android.internal.os.SomeArgs; import com.android.internal.view.IInputConnectionWrapper; @@ -263,6 +264,9 @@ public final class InputMethodManager { */ public static final boolean ENABLE_LEGACY_EAGER_INITIALIZATION = true; + private static final Object sLock = new Object(); + + @GuardedBy("sLock") @UnsupportedAppUsage static InputMethodManager sInstance; @@ -686,7 +690,7 @@ public final class InputMethodManager { */ @UnsupportedAppUsage public static InputMethodManager getInstance() { - synchronized (InputMethodManager.class) { + synchronized (sLock) { if (sInstance == null) { try { final InputMethodManager imm = new InputMethodManager(Looper.getMainLooper()); @@ -709,7 +713,9 @@ public final class InputMethodManager { @Deprecated @UnsupportedAppUsage public static InputMethodManager peekInstance() { - return sInstance; + synchronized (sLock) { + return sInstance; + } } /** @hide */ |