)]}'
{
  "commit": "21f1bd17b2dfe361acbb28453b3f3b1a110932fa",
  "tree": "531c362903a1c327db99630996948da85cdedaf7",
  "parents": [
    "9a56aaf12b462a064e81e02386eca8a1e77fe737"
  ],
  "author": {
    "name": "Dianne Hackborn",
    "email": "hackbod@google.com",
    "time": "Fri Feb 19 17:02:21 2010 -0800"
  },
  "committer": {
    "name": "Dianne Hackborn",
    "email": "hackbod@google.com",
    "time": "Mon Feb 22 11:27:52 2010 -0800"
  },
  "message": "Fix issue #2438980: Implement package watcher for voice recognizer service setting\n\nI am getting tired of writing package monitor code, realized this is missing in\na number of places, and at this point it has gotten complicated enough that I\ndon\u0027t think anyone actually does it 100% right so:\n\nIntroducing PackageMonitor.\n\nYes there are no Java docs.  I am still playing around with just what this\nthing is to figure out what makes sense and how people will use it.  It is\nbeing used to fix this bug for monitoring voice recognizers (integrating the\ncode from the settings provider for setting an initial value), to replace\nthe existing code for monitoring input methods (and fix the bug where we\nwouldn\u0027t remove an input method from the enabled list when it got\nuninstalled), to now monitor live wallpaper package changes (now allowing\nus to avoid reverting back to the default live wallpaper when the current\none is updated!), and to monitor device admin changes.\n\nAlso includes a fix so you can\u0027t uninstall an .apk that is currently enabled\nas a device admin.\n\nAlso includes a fix where the default time zone was not initialized early\nenough which should fix issue #2455507 (Observed Google services frame work crash).\n\nIn addition, this finally introduces a mechanism to determine if the\n\"force stop\" button should be enabled, with convenience in PackageMonitor\nfor system services to handle it.  All services have been updated to support\nthis.  There is also new infrastructure for reporting battery usage as an\napplicatin error report.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "33a8020c15862a95185bb835bee8ed5bcbe2ebe4",
      "old_mode": 33188,
      "old_path": "api/current.xml",
      "new_id": "a7531657a391666073de6da9be247743bc425466",
      "new_mode": 33188,
      "new_path": "api/current.xml"
    },
    {
      "type": "modify",
      "old_id": "832f5992401c389b3967859bdb5b913930069fee",
      "old_mode": 33188,
      "old_path": "core/java/android/app/ApplicationErrorReport.java",
      "new_id": "fe810561b72f5b3b9c9cb1f9f1efed6bb66de435",
      "new_mode": 33188,
      "new_path": "core/java/android/app/ApplicationErrorReport.java"
    },
    {
      "type": "modify",
      "old_id": "1d004eeedcadeed8fe4e287a70fe21c173d69f84",
      "old_mode": 33188,
      "old_path": "core/java/android/app/ContextImpl.java",
      "new_id": "c7c9429e40912b24306f16a05e4e5c497cc471a4",
      "new_mode": 33188,
      "new_path": "core/java/android/app/ContextImpl.java"
    },
    {
      "type": "modify",
      "old_id": "bedf4b4eb916bf5abf11db5558591f84c6fa24a1",
      "old_mode": 33188,
      "old_path": "core/java/android/app/DeviceAdminInfo.java",
      "new_id": "61e1bb339169865c35f659d859ce9de7c3b625b4",
      "new_mode": 33188,
      "new_path": "core/java/android/app/DeviceAdminInfo.java"
    },
    {
      "type": "modify",
      "old_id": "d611807c74dce2867568dd876cbb1bb75f311917",
      "old_mode": 33188,
      "old_path": "core/java/android/app/DevicePolicyManager.java",
      "new_id": "0e8c1ab07aa661d2f56deb0321fd8c9ac7e9f71a",
      "new_mode": 33188,
      "new_path": "core/java/android/app/DevicePolicyManager.java"
    },
    {
      "type": "modify",
      "old_id": "ae5c4bf6fbf9a9b177d34619020aef9d66a0dad3",
      "old_mode": 33188,
      "old_path": "core/java/android/app/IDevicePolicyManager.aidl",
      "new_id": "b138720d98161320edc9dbb668f94512f0bdfaa9",
      "new_mode": 33188,
      "new_path": "core/java/android/app/IDevicePolicyManager.aidl"
    },
    {
      "type": "modify",
      "old_id": "c4ba05d32688e3f1e48e69009ba504787bb79039",
      "old_mode": 33188,
      "old_path": "core/java/android/content/ComponentName.java",
      "new_id": "7ca0f01b986924d939b57061966ec8526de9e608",
      "new_mode": 33188,
      "new_path": "core/java/android/content/ComponentName.java"
    },
    {
      "type": "modify",
      "old_id": "1b0437cfb0bf6875ff7cee3ecc4c57bd2a9dacce",
      "old_mode": 33188,
      "old_path": "core/java/android/content/Intent.java",
      "new_id": "607605da4b5e5e2bff6335b02103ffc3f92a849c",
      "new_mode": 33188,
      "new_path": "core/java/android/content/Intent.java"
    },
    {
      "type": "modify",
      "old_id": "b706c5c1cae40c399d06fa8a203e8f13a3c12afa",
      "old_mode": 33188,
      "old_path": "core/java/android/os/BatteryStats.java",
      "new_id": "56a05eea1dab300a1c53452d0192a40e20250d59",
      "new_mode": 33188,
      "new_path": "core/java/android/os/BatteryStats.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "343041f7cf9c8f67404b0fef9a23bba80ab74703",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/content/PackageMonitor.java"
    },
    {
      "type": "modify",
      "old_id": "cf34d4e2f59c6f8e1de985250ffa5e7d8ede9225",
      "old_mode": 33188,
      "old_path": "packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java",
      "new_id": "5b616b3c476f54040b5a1e4c6b47b79d5906f274",
      "new_mode": 33188,
      "new_path": "packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java"
    },
    {
      "type": "modify",
      "old_id": "4080a6ae763217f7f9c77362a8dbe1bf54994cf1",
      "old_mode": 33188,
      "old_path": "packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java",
      "new_id": "db802d33cf1d84c95f66293ae13ab5d16a8c3474",
      "new_mode": 33188,
      "new_path": "packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java"
    },
    {
      "type": "modify",
      "old_id": "477ea0c4280cd5f195e49a6f9d9ec14e439d6210",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/AccessibilityManagerService.java",
      "new_id": "c55dcb330c5e2cef765df5f8180e47aebad12d33",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/AccessibilityManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "44cc0bbd3916aa9192b3a060dbbfd27062840f8b",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/AlarmManagerService.java",
      "new_id": "f480209d63ba56edb2354981f3c735e45149c30c",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/AlarmManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "a267e0fa3ef6b7b0b8ffc978d9fe016cb45b2c4b",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/DevicePolicyManagerService.java",
      "new_id": "ac65aa98574b0f1eb82166cdf50826763ac9d202",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/DevicePolicyManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "5e96a2fd2d15f85085a21dbf3cdf7f13429de719",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/InputMethodManagerService.java",
      "new_id": "59d4c9b5a6ffa28b7971c8e4af962724850b6c92",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/InputMethodManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "004fcf13fde7c7349f32773d3b2beb2ebb1bf952",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/LocationManagerService.java",
      "new_id": "dd351be874ba844211c6cd5333f3d196d16388c7",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/LocationManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "3657133676348d6ef8e801d943d8cbdcb093de26",
      "old_mode": 33261,
      "old_path": "services/java/com/android/server/NotificationManagerService.java",
      "new_id": "3c43352d25cab2ffa64485030ebfb980e232ffad",
      "new_mode": 33261,
      "new_path": "services/java/com/android/server/NotificationManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "38d86153638a27c509104dd2d4e111210a5c218d",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/PackageManagerService.java",
      "new_id": "4fdcd59150539abcfc351f5d2046eb90423140a8",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/PackageManagerService.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7305b07429dd0cd8b05f094aac65418a7b4df48c",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/RecognitionManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "a09896a2b367c0435c4007f3041142ed7019ae5d",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/SystemServer.java",
      "new_id": "38df02f91fc3a659f71a8185ddf81b7e3e2a3540",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/SystemServer.java"
    },
    {
      "type": "modify",
      "old_id": "81255eefa9a64f11a9906ad1784c8ef269f08797",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/WallpaperManagerService.java",
      "new_id": "481e6a43cfb15e9648cf31028c86420c4d9fda0d",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/WallpaperManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "45c3f0057d31e5387fb18f0e49d64633a8759265",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/am/ActivityManagerService.java",
      "new_id": "5b37f477727d504c8af85ed6256d946f40ed6866",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/am/ActivityManagerService.java"
    }
  ]
}
