diff options
| author | 2022-07-28 21:11:29 +0000 | |
|---|---|---|
| committer | 2022-07-28 21:11:29 +0000 | |
| commit | 95ffdae9997ac0756c9929ce33610f8358865a68 (patch) | |
| tree | 9a97c5ae0a6987095793c18ffdd0cfebb9d233d2 | |
| parent | 953c2f9b580e864c62cdc5882425aafb41a51077 (diff) | |
| parent | e26fa5abeb8299880a894b7bc94c8314c47b95cd (diff) | |
Merge "Simplify IMMS#setAdditionalInputMethodSubtypes()"
| -rw-r--r-- | services/core/java/com/android/server/inputmethod/InputMethodManagerService.java | 38 |
1 files 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 af95b4f54eb4..fcc6a741f646 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); } } } |