Inline IMMS#getCurIdLocked
Bug: 325515685
Test: atest FrameworksInputMethodSystemServerTests
Test: atest CtsInputMethodTestCases
Test: atest FrameworksServicesTests
Test: atest --host FrameworksInputMethodSystemServerTestsRavenwood
Change-Id: I4692dc361dbe8afb9109d2d28dfc750ff24a50c7
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index bf55f32..a13b9d0 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -533,21 +533,6 @@
EditorInfo mCurEditorInfo;
/**
- * Id obtained with {@link InputMethodInfo#getId()} for the input method that we are currently
- * connected to or in the process of connecting to.
- *
- * <p>This can be {@code null} when no input method is connected.</p>
- *
- * @see #getSelectedMethodIdLocked()
- */
- @GuardedBy("ImfLock.class")
- @Nullable
- private String getCurIdLocked() {
- final var userData = mUserDataRepository.getOrCreate(mCurrentUserId);
- return userData.mBindingController.getCurId();
- }
-
- /**
* The current subtype of the current input method.
*/
@MultiUserUnawareField
@@ -2034,8 +2019,8 @@
final var userData = mUserDataRepository.getOrCreate(mCurrentUserId);
final StartInputInfo info = new StartInputInfo(mCurrentUserId,
getCurTokenLocked(),
- mCurTokenDisplayId, getCurIdLocked(), startInputReason, restarting,
- UserHandle.getUserId(mCurClient.mUid),
+ mCurTokenDisplayId, userData.mBindingController.getCurId(), startInputReason,
+ restarting, UserHandle.getUserId(mCurClient.mUid),
mCurClient.mSelfReportedDisplayId, mImeBindingState.mFocusedWindow, mCurEditorInfo,
mImeBindingState.mFocusedWindowSoftInputMode,
userData.mBindingController.getSequenceNumber());
@@ -2071,7 +2056,7 @@
null /* resultReceiver */, SoftInputShowHideReason.ATTACH_NEW_INPUT);
}
- final var curId = getCurIdLocked();
+ final var curId = userData.mBindingController.getCurId();
final InputMethodInfo curInputMethodInfo = InputMethodSettingsRepository.get(mCurrentUserId)
.getMethodMap().get(curId);
final boolean suppressesSpellChecker =
@@ -2360,7 +2345,8 @@
requestClientSessionForAccessibilityLocked(cs);
return new InputBindResult(
InputBindResult.ResultCode.SUCCESS_WAITING_IME_SESSION,
- null, null, null, getCurIdLocked(),
+ null, null, null,
+ userData.mBindingController.getCurId(),
userData.mBindingController.getSequenceNumber(), false);
} else {
final long lastBindTime = userData.mBindingController.getLastBindTime();
@@ -2375,7 +2361,8 @@
// to see if we can get back in touch with the service.
return new InputBindResult(
InputBindResult.ResultCode.SUCCESS_WAITING_IME_BINDING,
- null, null, null, getCurIdLocked(),
+ null, null, null,
+ userData.mBindingController.getCurId(),
userData.mBindingController.getSequenceNumber(), false);
} else {
EventLog.writeEvent(EventLogTags.IMF_FORCE_RECONNECT_IME,
@@ -2730,7 +2717,8 @@
// When the IME switcher dialog is shown, the IME switcher button should be hidden.
if (mMenuController.getSwitchingDialogLocked() != null) return false;
// When we are switching IMEs, the IME switcher button should be hidden.
- if (!Objects.equals(getCurIdLocked(), getSelectedMethodIdLocked())) {
+ final var userData = mUserDataRepository.getOrCreate(mCurrentUserId);
+ if (!Objects.equals(userData.mBindingController.getCurId(), getSelectedMethodIdLocked())) {
return false;
}
if (mWindowManagerInternal.isKeyguardShowingAndNotOccluded()
@@ -2892,8 +2880,10 @@
} else {
vis &= ~InputMethodService.IME_VISIBLE_IMPERCEPTIBLE;
}
+ final var userData = mUserDataRepository.getOrCreate(mCurrentUserId);
+ final var curId = userData.mBindingController.getCurId();
if (mMenuController.getSwitchingDialogLocked() != null
- || !Objects.equals(getCurIdLocked(), getSelectedMethodIdLocked())) {
+ || !Objects.equals(curId, getSelectedMethodIdLocked())) {
// When the IME switcher dialog is shown, or we are switching IMEs,
// the back button should be in the default state (as if the IME is not shown).
backDisposition = InputMethodService.BACK_DISPOSITION_ADJUST_NOTHING;
@@ -4461,7 +4451,7 @@
if (mCurEditorInfo != null) {
mCurEditorInfo.dumpDebug(proto, CUR_ATTRIBUTE);
}
- proto.write(CUR_ID, getCurIdLocked());
+ proto.write(CUR_ID, userData.mBindingController.getCurId());
mVisibilityStateComputer.dumpDebug(proto, fieldId);
proto.write(IN_FULLSCREEN_MODE, mInFullscreenMode);
proto.write(CUR_TOKEN, Objects.toString(getCurTokenLocked()));
@@ -5668,7 +5658,7 @@
final InputBindResult res = new InputBindResult(
InputBindResult.ResultCode.SUCCESS_WITH_ACCESSIBILITY_SESSION,
imeSession, accessibilityInputMethodSessions, /* channel= */ null,
- getCurIdLocked(),
+ userData.mBindingController.getCurId(),
userData.mBindingController.getSequenceNumber(),
/* isInputMethodSuppressingSpellChecker= */ false);
mCurClient.mClient.onBindAccessibilityService(res, accessibilityConnectionId);
@@ -5921,7 +5911,7 @@
p.println(" mFocusedWindowPerceptible=" + mFocusedWindowPerceptible);
mImeBindingState.dump(/* prefix= */ " ", p);
- p.println(" mCurId=" + getCurIdLocked()
+ p.println(" mCurId=" + userData.mBindingController.getCurId()
+ " mHaveConnection=" + userData.mBindingController.hasMainConnection()
+ " mBoundToMethod=" + mBoundToMethod + " mVisibleBound="
+ userData.mBindingController.isVisibleBound());