From e26fa5abeb8299880a894b7bc94c8314c47b95cd Mon Sep 17 00:00:00 2001 From: Yohei Yukawa Date: Thu, 28 Jul 2022 09:15:17 +0900 Subject: [PATCH] Simplify IMMS#setAdditionalInputMethodSubtypes() This CL does nothing but simplifies InputMethodManagerService#setAdditionalInputMethodSubtypes() without changing any observable behavior. Bug: 234882948 Test: atest CtsInputMethodTestCases:InputMethodSubtypeTest Change-Id: I3f64bdc899a9f973885715dcaadd30ef58c21a59 --- .../InputMethodManagerService.java | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index af95b4f54eb42..fcc6a741f6460 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -178,6 +178,7 @@ import com.android.internal.inputmethod.UnbindReason; import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.internal.notification.SystemNotificationChannels; import com.android.internal.os.TransferPipe; +import com.android.internal.util.ArrayUtils; import com.android.internal.util.ConcurrentUtils; import com.android.internal.util.DumpUtils; import com.android.internal.view.IInputMethodManager; @@ -4190,26 +4191,23 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub Slog.e(TAG, "Failed to get package infos"); return; } - if (packageInfos != null) { - final int packageNum = packageInfos.length; - for (int i = 0; i < packageNum; ++i) { - if (packageInfos[i].equals(imi.getPackageName())) { - if (subtypes.length > 0) { - mAdditionalSubtypeMap.put(imi.getId(), toBeAdded); - } else { - mAdditionalSubtypeMap.remove(imi.getId()); - } - AdditionalSubtypeUtils.save(mAdditionalSubtypeMap, mMethodMap, - mSettings.getCurrentUserId()); - final long ident = Binder.clearCallingIdentity(); - try { - buildInputMethodListLocked(false /* resetDefaultEnabledIme */); - } finally { - Binder.restoreCallingIdentity(ident); - } - return; - } - } + if (ArrayUtils.find(packageInfos, + packageInfo -> TextUtils.equals(packageInfo, imi.getPackageName())) == null) { + return; + } + + if (toBeAdded.isEmpty()) { + mAdditionalSubtypeMap.remove(imi.getId()); + } else { + mAdditionalSubtypeMap.put(imi.getId(), toBeAdded); + } + AdditionalSubtypeUtils.save(mAdditionalSubtypeMap, mMethodMap, + mSettings.getCurrentUserId()); + final long ident = Binder.clearCallingIdentity(); + try { + buildInputMethodListLocked(false /* resetDefaultEnabledIme */); + } finally { + Binder.restoreCallingIdentity(ident); } } }