)]}'
{
  "commit": "42ad31c95505ed244cf3506dac699eb07c0c621c",
  "tree": "5745bcdc7e01df8688a94cdb2c9c947ef4b608a6",
  "parents": [
    "903125b038264d69dae8a4d6eb17d6caeff94fa9"
  ],
  "author": {
    "name": "Hiroki Sato",
    "email": "hirokisato@google.com",
    "time": "Tue Nov 04 17:29:42 2025 +0900"
  },
  "committer": {
    "name": "Android Build Coastguard Worker",
    "email": "android-build-coastguard-worker@google.com",
    "time": "Wed Jan 07 21:37:02 2026 -0800"
  },
  "message": "Introduce InputMethodSubtypeSafeList\n\nIMM#getEnabledInputMethodSubtypeList() can return a large list of\nsubtypes, which may cause a TransactionTooLargeException.\n\nThis patch introduces InputMethodSubtypeSafeList to wrap the list as a\nbyte array, avoiding the exception. This mirrors the existing\nInputMethodInfoSafeList pattern introduced in [1].\n\nAdditionally, this change extracts the common marshalling logic from\nInputMethodInfoSafeList into a new AbstractSafeList and refactors both\nSafeList classes to extend it.\n\n[1] I0a7667070fcdf17d34b248a5988c38064588718a\n\nBug: 449416164\nBug: 449181366\nBug: 449393786\nBug: 449227003\nTest: CtsInputMethodTestCases:{InputMethodRegistrationTest,InputMethodInfoTest}\nTest: InputMethodCoreTests\nFlag: EXEMPT BUGFIX\n(cherry picked from commit 1d68a1099be2b99e8410dad01822851287994682)\nCherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:46388aba14b1698df8c98e96d97b50130d1ce085\nMerged-In: Ied64a9f018fd3e79cfc51ccd82d361b43e5f29dc\nChange-Id: Ied64a9f018fd3e79cfc51ccd82d361b43e5f29dc\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e7a2fb92a382360484d728e2b74966ebda0d99cc",
      "old_mode": 33188,
      "old_path": "core/java/android/view/inputmethod/IInputMethodManagerGlobalInvoker.java",
      "new_id": "9dfdebfc4a4bba188f68d13766047e1236b2325b",
      "new_mode": 33188,
      "new_path": "core/java/android/view/inputmethod/IInputMethodManagerGlobalInvoker.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "697b153afecfe58d44d89e7d1f19bdba66436b5c",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/inputmethod/AbstractSafeList.java"
    },
    {
      "type": "modify",
      "old_id": "9e720fb6cceea39c83e9dedf731d2ea14468876a",
      "old_mode": 33188,
      "old_path": "core/java/com/android/internal/inputmethod/InputMethodInfoSafeList.java",
      "new_id": "a2ea5b08f13f3d54505edb79576f31977d7d3a2f",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/inputmethod/InputMethodInfoSafeList.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "11000632eba54e56af5dfce7af8290258c135edb",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/inputmethod/InputMethodSubtypeSafeList.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cd95088f5cf0df58d9549d03ef1ac2e968a04755",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/inputmethod/InputMethodSubtypeSafeList.java"
    },
    {
      "type": "modify",
      "old_id": "2b3ffeb2e6197c7dc5ea1c34800847dec7ca4e94",
      "old_mode": 33188,
      "old_path": "core/java/com/android/internal/view/IInputMethodManager.aidl",
      "new_id": "96e7163ae9614c4de5afee7dbcc26eaab6f4b632",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/view/IInputMethodManager.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0f72f095dbe3c90bd109823b865108ed7e6e552c",
      "new_mode": 33188,
      "new_path": "core/tests/InputMethodCoreTests/src/com/android/internal/inputmethod/AbstractSafeListTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "089ffb80d7a909a8fa967a90b76fabc0400dfe75",
      "new_mode": 33188,
      "new_path": "core/tests/InputMethodCoreTests/src/com/android/internal/inputmethod/InputMethodSubtypeSafeListTest.java"
    },
    {
      "type": "modify",
      "old_id": "3f28c47a430b10a908e1915c3608339614570763",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/inputmethod/IInputMethodManagerImpl.java",
      "new_id": "c4c222d4f1986c80554fc01389db1f15b23bb51c",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/inputmethod/IInputMethodManagerImpl.java"
    },
    {
      "type": "modify",
      "old_id": "0e76c3f1e833d09f7d274e03f81cae0fde5b687d",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/inputmethod/InputMethodManagerService.java",
      "new_id": "b20af4775fae576e6785c0e617862fb0b7d38cd9",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/inputmethod/InputMethodManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "757c07c0b68382b8490ca5e9c548bf02dfc523b8",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/inputmethod/ZeroJankProxy.java",
      "new_id": "8ddcbc45ba9653f855faa9eb27952804a17aa537",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/inputmethod/ZeroJankProxy.java"
    }
  ]
}
