summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Taran Singh <tarandeep@google.com> 2024-09-28 21:29:47 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-09-28 21:29:47 +0000
commit22ddfb758c1ba90a59bf45d3368ad413b0261e92 (patch)
tree80b0f45b710d4faced45916ce14a246f947ced26
parentf5df21d070e1101d0fcbc0937d39e0f2c816ad3a (diff)
parent67fe0bbc30970e2819978d2dd94e2a42f709497f (diff)
Merge "ZeroJank: Make version-gate flag non-static" into main
-rw-r--r--core/java/android/view/inputmethod/InputMethodManager.java26
1 files changed, 14 insertions, 12 deletions
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index 2f649c21fe08..1e5c6d8177e1 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -465,13 +465,6 @@ public final class InputMethodManager {
private static final long USE_ASYNC_SHOW_HIDE_METHOD = 352594277L; // This is a bug id.
/**
- * Version-gating is guarded by bug-fix flag.
- */
- private static final boolean ASYNC_SHOW_HIDE_METHOD_ENABLED =
- !Flags.compatchangeForZerojankproxy()
- || CompatChanges.isChangeEnabled(USE_ASYNC_SHOW_HIDE_METHOD);
-
- /**
* If {@code true}, avoid calling the
* {@link com.android.server.inputmethod.InputMethodManagerService InputMethodManagerService}
* by skipping the call to {@link IInputMethodManager#startInputOrWindowGainedFocus}
@@ -614,6 +607,15 @@ public final class InputMethodManager {
@UnsupportedAppUsage
Rect mCursorRect = new Rect();
+ /**
+ * Version-gating is guarded by bug-fix flag.
+ */
+ // Note: this is non-static so that it only gets initialized once CompatChanges has
+ // access to the correct application context.
+ private final boolean mAsyncShowHideMethodEnabled =
+ !Flags.compatchangeForZerojankproxy()
+ || CompatChanges.isChangeEnabled(USE_ASYNC_SHOW_HIDE_METHOD);
+
/** Cached value for {@link #isStylusHandwritingAvailable} for userId. */
@GuardedBy("mH")
private PropertyInvalidatedCache<Integer, Boolean> mStylusHandwritingAvailableCache;
@@ -2419,7 +2421,7 @@ public final class InputMethodManager {
mCurRootView.getLastClickToolType(),
resultReceiver,
reason,
- ASYNC_SHOW_HIDE_METHOD_ENABLED);
+ mAsyncShowHideMethodEnabled);
}
}
}
@@ -2463,7 +2465,7 @@ public final class InputMethodManager {
mCurRootView.getLastClickToolType(),
resultReceiver,
reason,
- ASYNC_SHOW_HIDE_METHOD_ENABLED);
+ mAsyncShowHideMethodEnabled);
}
}
@@ -2572,7 +2574,7 @@ public final class InputMethodManager {
return true;
} else {
return IInputMethodManagerGlobalInvoker.hideSoftInput(mClient, windowToken,
- statsToken, flags, resultReceiver, reason, ASYNC_SHOW_HIDE_METHOD_ENABLED);
+ statsToken, flags, resultReceiver, reason, mAsyncShowHideMethodEnabled);
}
}
}
@@ -2615,7 +2617,7 @@ public final class InputMethodManager {
ImeTracker.forLogging().onProgress(statsToken, ImeTracker.PHASE_CLIENT_VIEW_SERVED);
return IInputMethodManagerGlobalInvoker.hideSoftInput(mClient, view.getWindowToken(),
- statsToken, flags, null, reason, ASYNC_SHOW_HIDE_METHOD_ENABLED);
+ statsToken, flags, null, reason, mAsyncShowHideMethodEnabled);
}
}
@@ -3392,7 +3394,7 @@ public final class InputMethodManager {
servedInputConnection == null ? null
: servedInputConnection.asIRemoteAccessibilityInputConnection(),
view.getContext().getApplicationInfo().targetSdkVersion, targetUserId,
- mImeDispatcher, ASYNC_SHOW_HIDE_METHOD_ENABLED);
+ mImeDispatcher, mAsyncShowHideMethodEnabled);
} else {
res = IInputMethodManagerGlobalInvoker.startInputOrWindowGainedFocus(
startInputReason, mClient, windowGainingFocus, startInputFlags,