)]}'
{
  "commit": "f66eab85a00d38210680b77d8ef85c66b5868566",
  "tree": "543d660d034de340664a036ef0c304b0aa677432",
  "parents": [
    "b886e41ad38fc74b0061a013cc072467990700c8"
  ],
  "author": {
    "name": "Bryan",
    "email": "bryanmawhinney@google.com",
    "time": "Wed Jun 16 15:57:38 2021 +0000"
  },
  "committer": {
    "name": "Bryan Mawhinney",
    "email": "bryanmawhinney@google.com",
    "time": "Wed Jun 23 09:24:09 2021 +0000"
  },
  "message": "Changes to how we notify widget restore participants of new ids\n\nAs part of widget restore, we need to notify participants (hosts \u0026\nproviders) of the mapping between ancestral and new widget ids.\nPrior to this change, this was done at the end of system restore\nand after each restore-at-install of unbundled apps.\n\nThere were two issues with this:\n1) We would try to notify not-yet-installed participants at the end of\nsystem restore and then *not* try again when they were installed.\n2) We relied on PACKAGE_ADDED broadcasts to know which participants were\ninstalled, but these are delivered asynchronously and not guaranteed\nto be processed before the restoreFinished call.\n\nAfter this change, we:\n1) Only notify participants that are actually installed\n2) Use receipt of the PACKAGE_ADDED / CHANGED broadcast to trigger\nnotification of any restore participants that are added or changed\n*after* system restore completes.\n\n2 is safe because by the time PackageManager sends the package\nadded / changed broadcasts, the app data restore has been completed,\nand the app has been killed if needed.\n\nBug: 162057170\nTest: Manual restore of Keep widget via cloud and d2d\nChange-Id: I51dec33d09b62faba6d7c7daacd718a3c0682f7d\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7d82d355e3eb19ae16d7e645b38f18d14ecfefde",
      "old_mode": 33188,
      "old_path": "core/java/com/android/server/AppWidgetBackupBridge.java",
      "new_id": "8e834a87784d92a82e98db42b81fa749b057a787",
      "new_mode": 33188,
      "new_path": "core/java/com/android/server/AppWidgetBackupBridge.java"
    },
    {
      "type": "modify",
      "old_id": "a2efbdd6f2f866bdd7bb1fc6475257f8ac2dbbeb",
      "old_mode": 33188,
      "old_path": "core/java/com/android/server/WidgetBackupProvider.java",
      "new_id": "5453c4de6986d0b81f18f652cb3f30f20ee82770",
      "new_mode": 33188,
      "new_path": "core/java/com/android/server/WidgetBackupProvider.java"
    },
    {
      "type": "modify",
      "old_id": "acbf4875ae8d4150c065dcac938730855308d461",
      "old_mode": 33188,
      "old_path": "services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java",
      "new_id": "5aec6aa99c1281e00d1a75614bb55ed1a7feb8ab",
      "new_mode": 33188,
      "new_path": "services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java"
    },
    {
      "type": "modify",
      "old_id": "261ebe69a15eac1088c7f2a1355b2152500b4e23",
      "old_mode": 33188,
      "old_path": "services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java",
      "new_id": "f07bac8cd762cabf5fd563307223d1c1fa961f38",
      "new_mode": 33188,
      "new_path": "services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java"
    }
  ]
}
