)]}'
{
  "log": [
    {
      "commit": "d2db2a579440608453994b64eb5b425840f5307a",
      "tree": "1b0ac174cf229a18afa305d6cbe96a4837561b68",
      "parents": [
        "ab3593956c9eefc85e07cf6bcc847b696da8dccc"
      ],
      "author": {
        "name": "Patrick Dubroy",
        "email": "dubroy@google.com",
        "time": "Wed Jun 23 14:56:28 2010 -0700"
      },
      "committer": {
        "name": "Patrick Dubroy",
        "email": "dubroy@google.com",
        "time": "Mon Jun 28 16:39:19 2010 -0700"
      },
      "message": "Add a new attribute to allow widgets to specify a preview image.\n\nChange-Id: I0d79c85c6a2fc477af17eda05eabaa3151b0bef5\n"
    },
    {
      "commit": "924cc94caaab5e9ad0714e0877e871290316e2b1",
      "tree": "bd0750a59b2c035038353c13d166144318475eaf",
      "parents": [
        "59ec92c4e326de996f9dce902eeefc3cfeb12006"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jun 28 10:26:19 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jun 28 10:27:12 2010 -0700"
      },
      "message": "Reduce Tethering Logging.\n\nbug:2581886\nChange-Id: Ib6243a413c22d80216d83c02dbc9ff4e3bb38db9\n"
    },
    {
      "commit": "30683b2ad0754cc834ccdc07829dbf5b46563b0b",
      "tree": "e7e2aaceb27b3e62793674e874608483d13fad2a",
      "parents": [
        "a2312efff1446150518b85b53feaa6850b349769",
        "53dca61f26f4ff348418add60599213297acc899"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Jun 25 19:53:34 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 25 19:53:34 2010 -0700"
      },
      "message": "am 53dca61f: am 9005e7f4: Merge \"Add setWifiApConfiguration interface\" into gingerbread\n\nMerge commit \u002753dca61f26f4ff348418add60599213297acc899\u0027\n\n* commit \u002753dca61f26f4ff348418add60599213297acc899\u0027:\n  Add setWifiApConfiguration interface\n"
    },
    {
      "commit": "53dca61f26f4ff348418add60599213297acc899",
      "tree": "d6e2642808f692be3f6083eac6251cdaa4acfcdb",
      "parents": [
        "fd45c1e68dbc0c821c2b6d7e0b7e2a3493400798",
        "9005e7f4297a3f04263e81cb61ba2703d5667b0a"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Jun 25 19:51:50 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 25 19:51:50 2010 -0700"
      },
      "message": "am 9005e7f4: Merge \"Add setWifiApConfiguration interface\" into gingerbread\n\nMerge commit \u00279005e7f4297a3f04263e81cb61ba2703d5667b0a\u0027 into gingerbread-plus-aosp\n\n* commit \u00279005e7f4297a3f04263e81cb61ba2703d5667b0a\u0027:\n  Add setWifiApConfiguration interface\n"
    },
    {
      "commit": "9005e7f4297a3f04263e81cb61ba2703d5667b0a",
      "tree": "2bb30c671289d492ac7e1bc1ed38f6fb1c856fd8",
      "parents": [
        "41debbc613ec57aa892f604229df376402942687",
        "17b232b5b59ab91ab543b87e849583678a000f9b"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Jun 25 19:49:58 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 25 19:49:58 2010 -0700"
      },
      "message": "Merge \"Add setWifiApConfiguration interface\" into gingerbread"
    },
    {
      "commit": "1c686489b8aa31235cf7d76d3be5694a40bfbeb0",
      "tree": "2699f55dc14182847e46f33c237000177b790bc6",
      "parents": [
        "cf3a2b79f3f1bbd249a147c1626a6da4a419c270",
        "20b8dd3a05ab9f7701631ebc9f81038f31949a9f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 25 14:22:47 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 25 14:22:47 2010 -0700"
      },
      "message": "am 20b8dd3a: am 50dc3bca: Refactor ActivityManagerService activity stack.\n\nMerge commit \u002720b8dd3a05ab9f7701631ebc9f81038f31949a9f\u0027\n\n* commit \u002720b8dd3a05ab9f7701631ebc9f81038f31949a9f\u0027:\n  Refactor ActivityManagerService activity stack.\n"
    },
    {
      "commit": "20b8dd3a05ab9f7701631ebc9f81038f31949a9f",
      "tree": "d62ff5ba785536d3b2790a6a79f560c5efcbed7e",
      "parents": [
        "cdf1357b6e0152280dcd611b5f096db4887d8126",
        "50dc3bca5afbce911636b3ba15ee953bc203a9d6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 25 13:14:07 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 25 13:14:07 2010 -0700"
      },
      "message": "am 50dc3bca: Refactor ActivityManagerService activity stack.\n\nMerge commit \u002750dc3bca5afbce911636b3ba15ee953bc203a9d6\u0027 into gingerbread-plus-aosp\n\n* commit \u002750dc3bca5afbce911636b3ba15ee953bc203a9d6\u0027:\n  Refactor ActivityManagerService activity stack.\n"
    },
    {
      "commit": "50dc3bca5afbce911636b3ba15ee953bc203a9d6",
      "tree": "a4ae9bb5869fbd1cf74100625231239eff67b634",
      "parents": [
        "8e103da1f1b0656e3427b34b75f02d7ddf6073d5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 25 10:05:59 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 25 13:07:21 2010 -0700"
      },
      "message": "Refactor ActivityManagerService activity stack.\n\nIntrodude a new ActivityStack class that holds all of the\nstate and management of a stack of activities.  Paves the way\nfor having multiple activity stacks, though at this point\nthere should be no change in functionality and the activity\nmanager is still assuming there is only one stack.\n\nChange-Id: Iea4859a24c9269061043755ec58a615028d4183b\n"
    },
    {
      "commit": "17b232b5b59ab91ab543b87e849583678a000f9b",
      "tree": "6aba5821c972c1a43411b06068d246924949b594",
      "parents": [
        "7fd22aab4506f65b7929ed1030bdd71c56f7db77"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Jun 24 11:32:26 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Jun 24 20:03:38 2010 -0700"
      },
      "message": "Add setWifiApConfiguration interface\n\nBug: 2538623\nChange-Id: I779044173a2fa0e9b851ea92aeec5ca25eb9c86f\n"
    },
    {
      "commit": "8bb998d52c118d361390af89b14dd67a4563509a",
      "tree": "c5397e2952e0d47d191357922e72e52bcfea86d5",
      "parents": [
        "7acbc1f1e7778270d737b893581cfbb0e9d90e5c",
        "ea8eafad4f5438ec1291d45376959a996d36e15e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 17:33:14 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 24 17:33:14 2010 -0700"
      },
      "message": "am ea8eafad: am 2529a453: Merge \"Make bad notifications crash their application.\" into gingerbread\n\nMerge commit \u0027ea8eafad4f5438ec1291d45376959a996d36e15e\u0027\n\n* commit \u0027ea8eafad4f5438ec1291d45376959a996d36e15e\u0027:\n  Make bad notifications crash their application.\n"
    },
    {
      "commit": "ea8eafad4f5438ec1291d45376959a996d36e15e",
      "tree": "9a43826f17176d336a3f6dbf07e41d1922d63a0f",
      "parents": [
        "cac3126c6109854640266c4807e5aa8e6a87142f",
        "2529a45339b7e02d9d2b813358bcecd144a971ea"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 17:30:42 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 24 17:30:42 2010 -0700"
      },
      "message": "am 2529a453: Merge \"Make bad notifications crash their application.\" into gingerbread\n\nMerge commit \u00272529a45339b7e02d9d2b813358bcecd144a971ea\u0027 into gingerbread-plus-aosp\n\n* commit \u00272529a45339b7e02d9d2b813358bcecd144a971ea\u0027:\n  Make bad notifications crash their application.\n"
    },
    {
      "commit": "2529a45339b7e02d9d2b813358bcecd144a971ea",
      "tree": "469f9a4dbf08b9feee2e3848c15c137d4d1d6c0e",
      "parents": [
        "5340bffd8bb2599d15ee79cca3c62d2e7c7ea961",
        "9d39d0cb361c5d3bba04a6bacf299be2162a6e92"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 17:28:13 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 24 17:28:13 2010 -0700"
      },
      "message": "Merge \"Make bad notifications crash their application.\" into gingerbread"
    },
    {
      "commit": "9d39d0cb361c5d3bba04a6bacf299be2162a6e92",
      "tree": "3e08cfc2e7b5e1fabc21d2c0c9184531da78d41a",
      "parents": [
        "01e4cfc47d0a2c7e7ab383d2fb23224ec52c0301"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 15:57:42 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 17:27:28 2010 -0700"
      },
      "message": "Make bad notifications crash their application.\n\nImplement notification manager handling of bad notifications, to\ncall a new activity manager to have the owner\u0027s process crashed\n(if there is one).\n\nChange-Id: Ib15e8d0c598756f3b39c99cc2045c18e054daf6b\n"
    },
    {
      "commit": "7acbc1f1e7778270d737b893581cfbb0e9d90e5c",
      "tree": "8d7aea14f5e431b577dfbabc7b670473eee84cbb",
      "parents": [
        "36e5f667bc889a7b1bc17f9a5bd44f33b2d47020",
        "cac3126c6109854640266c4807e5aa8e6a87142f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 17:16:37 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 24 17:16:37 2010 -0700"
      },
      "message": "am cac3126c: am 5340bffd: am 5827d3ea: Merge \"Properly note the current active restore set\\\u0027s token\" into froyo\n\nMerge commit \u0027cac3126c6109854640266c4807e5aa8e6a87142f\u0027\n\n* commit \u0027cac3126c6109854640266c4807e5aa8e6a87142f\u0027:\n  Properly note the current active restore set\u0027s token\n"
    },
    {
      "commit": "36e5f667bc889a7b1bc17f9a5bd44f33b2d47020",
      "tree": "5480ba2d8f9eb6df7e99b38cbca3a654a99886fd",
      "parents": [
        "8f31bd6b68c796d4a4176721a6e13bfdba2166e0",
        "2eb12a47224f1617787c09824107ac6bc22f9b3e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 16:29:54 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 16:29:54 2010 -0700"
      },
      "message": "resolved conflicts for merge of 2eb12a47 to master\n\nChange-Id: I79eb9d9f083e51ec1b99145d81632683669e7a99\n"
    },
    {
      "commit": "cac3126c6109854640266c4807e5aa8e6a87142f",
      "tree": "2fad0023faa97e3180cb480de385b4856e702d54",
      "parents": [
        "2eb12a47224f1617787c09824107ac6bc22f9b3e",
        "5340bffd8bb2599d15ee79cca3c62d2e7c7ea961"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 16:04:07 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 24 16:04:07 2010 -0700"
      },
      "message": "am 5340bffd: am 5827d3ea: Merge \"Properly note the current active restore set\\\u0027s token\" into froyo\n\nMerge commit \u00275340bffd8bb2599d15ee79cca3c62d2e7c7ea961\u0027 into gingerbread-plus-aosp\n\n* commit \u00275340bffd8bb2599d15ee79cca3c62d2e7c7ea961\u0027:\n  Properly note the current active restore set\u0027s token\n"
    },
    {
      "commit": "5340bffd8bb2599d15ee79cca3c62d2e7c7ea961",
      "tree": "096582a2a1cf7e1615296ac4e020d9e28dfe8ecb",
      "parents": [
        "01e4cfc47d0a2c7e7ab383d2fb23224ec52c0301",
        "5827d3eaf3c53d1dc3ab0d638d935c219a5515a6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 16:01:39 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 24 16:01:39 2010 -0700"
      },
      "message": "am 5827d3ea: Merge \"Properly note the current active restore set\\\u0027s token\" into froyo\n\nMerge commit \u00275827d3eaf3c53d1dc3ab0d638d935c219a5515a6\u0027 into gingerbread\n\n* commit \u00275827d3eaf3c53d1dc3ab0d638d935c219a5515a6\u0027:\n  Properly note the current active restore set\u0027s token\n"
    },
    {
      "commit": "2950555aac546cd95b7ae268b5851895e1289ec2",
      "tree": "7850e469209374754bb170768fa3af0679f55c3a",
      "parents": [
        "753e56090ed5acc0d2173a8e9ab1a9b96528720b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 24 15:58:01 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 24 15:58:01 2010 -0700"
      },
      "message": "Properly note the current active restore set\u0027s token\n\nBug: 2796780\nChange-Id: Iad601ed96ae73cf34910a276350712e6af19bb4e\n"
    },
    {
      "commit": "2eb12a47224f1617787c09824107ac6bc22f9b3e",
      "tree": "4ac421d81dc5206a5782f50688e2faf7201dc9ba",
      "parents": [
        "95d26de9e048ef0342e3aed15a4d5d5c8a6e8493",
        "01e4cfc47d0a2c7e7ab383d2fb23224ec52c0301"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 15:23:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 24 15:23:59 2010 -0700"
      },
      "message": "am 01e4cfc4: Some ActivityThread/ActivityManager cleanup.\n\nMerge commit \u002701e4cfc47d0a2c7e7ab383d2fb23224ec52c0301\u0027 into gingerbread-plus-aosp\n\n* commit \u002701e4cfc47d0a2c7e7ab383d2fb23224ec52c0301\u0027:\n  Some ActivityThread/ActivityManager cleanup.\n"
    },
    {
      "commit": "01e4cfc47d0a2c7e7ab383d2fb23224ec52c0301",
      "tree": "1ea8a7e26b691d9d2150e9ddbd19b04be9b8d5d3",
      "parents": [
        "7b5b27ada12d3680dec20274fa655fd7f73f839e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 15:07:24 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 15:20:48 2010 -0700"
      },
      "message": "Some ActivityThread/ActivityManager cleanup.\n\n- Move PackageInfo out of ActivityThread, renaming to LoadedApk.\n- Rename some of the other PacakgeInfo inner classes to better\n  represent what they are.\n- Rename HistoryRecord to ActivityRecord.\n- Introduce AppGlobals, to eventually let ActivityThread become\n  package scoped.\n\nChange-Id: Ib714c54ceb3cdbb525dce3db9505f31042e88cf0\n"
    },
    {
      "commit": "5eceb79a19f60236e5bec76fabacc0cfe2a212bb",
      "tree": "7460e18e2ab020d2cd74a1b4ce43b9a4ecf85f2a",
      "parents": [
        "d8a86f0724defa231d9f2243f4c604d33eaeda63",
        "82677b9585968806800abff65c5b1529f509a313"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 12:46:31 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 24 12:46:31 2010 -0700"
      },
      "message": "am 82677b95: am e57c3a88: Merge \"Add APIs for finding heavy-weight apps.\" into gingerbread\n\nMerge commit \u002782677b9585968806800abff65c5b1529f509a313\u0027\n\n* commit \u002782677b9585968806800abff65c5b1529f509a313\u0027:\n  Add APIs for finding heavy-weight apps.\n"
    },
    {
      "commit": "82677b9585968806800abff65c5b1529f509a313",
      "tree": "5c5b6307a975533cf85829c1984cf5ee8705e2a5",
      "parents": [
        "db1bae9a966150d7f6cc7d3e325cc8a4bf64b978",
        "e57c3a88b99856d1e69fdf115e7c7954594b7385"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 12:42:55 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 24 12:42:55 2010 -0700"
      },
      "message": "am e57c3a88: Merge \"Add APIs for finding heavy-weight apps.\" into gingerbread\n\nMerge commit \u0027e57c3a88b99856d1e69fdf115e7c7954594b7385\u0027 into gingerbread-plus-aosp\n\n* commit \u0027e57c3a88b99856d1e69fdf115e7c7954594b7385\u0027:\n  Add APIs for finding heavy-weight apps.\n"
    },
    {
      "commit": "baf42c625c3ef4cb7b732956a97953efd93b23bc",
      "tree": "42065f9b14d2bc9a5c123625b7248c5ee27387f3",
      "parents": [
        "7fd22aab4506f65b7929ed1030bdd71c56f7db77"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 11:23:39 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 11:38:47 2010 -0700"
      },
      "message": "Add APIs for finding heavy-weight apps.\n\nChange-Id: I6c865cce404cac1a08eee056f963de5d276d5898\n"
    },
    {
      "commit": "57c798ade1a30c5587269519dd9f55b87c3b3be7",
      "tree": "db1ee9d7f48b18036fe53ad8a5f15eaa1d7be88f",
      "parents": [
        "b6ecd6c9232fde0633babc01f5dc66aed12e08e4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 23 17:36:36 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 24 13:14:05 2010 -0400"
      },
      "message": "Add a new UEventObserver subclass to broadcast an Intent whe USB state changes.\n\nWe now broadcast Usb.ACTION_USB_CONNECTED and Usb.ACTION_USB_DISCONNECTED\nwhen USB is connected or disconnected.\nThe ACTION_USB_CONNECTED extras indicate the enabled/disabled state of\nall USB functions.\n\nChange-Id: I919fcd5aa8d640d051cec87053f474a9843ed545\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "5da347dd2dc7de8828077057f4963b904018c5ec",
      "tree": "89ae56fdaf327d28943e675e5fb72a5a594e51cc",
      "parents": [
        "0d964c94459e25b9b2221a7c7c789b29f77f15dd",
        "477def1d4216f82bdfe58525131db88b384fc5a5"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 24 09:28:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 24 09:28:59 2010 -0700"
      },
      "message": "am 477def1d: Merge changes I11495d03,If5816721 into gingerbread\n\nMerge commit \u0027477def1d4216f82bdfe58525131db88b384fc5a5\u0027 into gingerbread-plus-aosp\n\n* commit \u0027477def1d4216f82bdfe58525131db88b384fc5a5\u0027:\n  Add a new UEventObserver subclass to broadcast an Intent whe USB state changes.\n  DO NOT MERGE Add new permission to allow access to USB devices\n"
    },
    {
      "commit": "2423607a32d63a0c646b17758ebeb4dc1d0b791f",
      "tree": "b5e3f4b314005fc207c4e25eeca0cf83bec080eb",
      "parents": [
        "9163d42a50076c2a77694ff394363264d862c7bf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 23 17:36:36 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 24 09:36:50 2010 -0400"
      },
      "message": "Add a new UEventObserver subclass to broadcast an Intent whe USB state changes.\n\nWe now broadcast Usb.ACTION_USB_CONNECTED and Usb.ACTION_USB_DISCONNECTED\nwhen USB is connected or disconnected.\nThe ACTION_USB_CONNECTED extras indicate the enabled/disabled state of\nall USB functions.\n\nChange-Id: I11495d039429dbe22bd738067296e39ae415befa\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "5d8faa280a9d32ac86147ba17ad7c75db7f36af0",
      "tree": "4453d56fa2eab77731a94adcf4b969c264f88349",
      "parents": [
        "7d77a0ac899b16fa71af6acf612a664de8813235",
        "2d8e249854d134f87423646cc96d1cd9507a67b0"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 23 16:11:50 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 23 16:11:50 2010 -0700"
      },
      "message": "am 2d8e2498: am 4ca092c7: Merge \"Fix bug 2772728 with the suggested fix.  I wasn\\\u0027t able to reproduce it though.\" into gingerbread\n\nMerge commit \u00272d8e249854d134f87423646cc96d1cd9507a67b0\u0027\n\n* commit \u00272d8e249854d134f87423646cc96d1cd9507a67b0\u0027:\n  Fix bug 2772728 with the suggested fix.  I wasn\u0027t able to reproduce it though.\n"
    },
    {
      "commit": "2d8e249854d134f87423646cc96d1cd9507a67b0",
      "tree": "8152b562d926e01fe2fef1e4a3fc79800b82881d",
      "parents": [
        "90ade3f25d16afe8fd64ec1fcc5fede466256719",
        "4ca092c7f101cbd95833a9ed8936e9e0485585ad"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 23 16:10:01 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 23 16:10:01 2010 -0700"
      },
      "message": "am 4ca092c7: Merge \"Fix bug 2772728 with the suggested fix.  I wasn\\\u0027t able to reproduce it though.\" into gingerbread\n\nMerge commit \u00274ca092c7f101cbd95833a9ed8936e9e0485585ad\u0027 into gingerbread-plus-aosp\n\n* commit \u00274ca092c7f101cbd95833a9ed8936e9e0485585ad\u0027:\n  Fix bug 2772728 with the suggested fix.  I wasn\u0027t able to reproduce it though.\n"
    },
    {
      "commit": "4ca092c7f101cbd95833a9ed8936e9e0485585ad",
      "tree": "21b5462c44b0ea20d61b3db2286a8548456f04bb",
      "parents": [
        "9afc1b3ed3eb8dbfb440600495d92def88934f54",
        "a8a8a42f8570bdbe66a09fc278564e7a549158da"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 23 16:08:06 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 23 16:08:06 2010 -0700"
      },
      "message": "Merge \"Fix bug 2772728 with the suggested fix.  I wasn\u0027t able to reproduce it though.\" into gingerbread"
    },
    {
      "commit": "4ecdad302f6f775468b0c4d71afde7397c5b3c2a",
      "tree": "a6a7a6e39fab79374423c2b8975cfc5407215bdd",
      "parents": [
        "c0b14c73fe12fa9f0a9459ff025b11cc9067084f",
        "c82b4e80b8211851963929b33592bbc50358525b"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jun 23 13:37:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 23 13:37:59 2010 -0700"
      },
      "message": "am c82b4e80: am 69a4817e: Immersive activity API.\n\nMerge commit \u0027c82b4e80b8211851963929b33592bbc50358525b\u0027\n\n* commit \u0027c82b4e80b8211851963929b33592bbc50358525b\u0027:\n  Immersive activity API.\n"
    },
    {
      "commit": "c82b4e80b8211851963929b33592bbc50358525b",
      "tree": "0be83668658a3299bad2937798522e2b876f5f81",
      "parents": [
        "e496326083450e8623268ed794176d980f99eb0c",
        "69a4817e3e1e368e758ff8c238deb5ee26963c04"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jun 23 13:36:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 23 13:36:25 2010 -0700"
      },
      "message": "am 69a4817e: Immersive activity API.\n\nMerge commit \u002769a4817e3e1e368e758ff8c238deb5ee26963c04\u0027 into gingerbread-plus-aosp\n\n* commit \u002769a4817e3e1e368e758ff8c238deb5ee26963c04\u0027:\n  Immersive activity API.\n"
    },
    {
      "commit": "69a4817e3e1e368e758ff8c238deb5ee26963c04",
      "tree": "3eaed1f053b09daabf84854acb3155216543a102",
      "parents": [
        "efbe2d78ee5e26b6606c8552a5c1ac70749a5013"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jun 23 16:29:36 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jun 23 16:29:36 2010 -0400"
      },
      "message": "Immersive activity API.\n\nAn Activity can declare itself to be \"immersive\" either by\nsetting android:immersive\u003d\"true\" in AndroidManifest or by\ncalling setImmersive(true).\n\nImmersive activities \"should\" not be interrupted, for\nexample by Notifications with an associated\nfullScreenIntent. (In the future we may even prevent any\nnon-system application from successfully calling\nstartActivity() if the foreground activity is immersive.)\nNotifications with FLAG_HIGH_PRIORITY set will be shown to\nthe user in some less-obtrusive way if the frontmost\nactivity is immersive.\n\nChange-Id: I8d0c25cc4e22371c27cbf2bb6372d2c95d57b2d7\n"
    },
    {
      "commit": "b09448e0a84a57bd15ea556f8bef27964128032a",
      "tree": "b5d3861e8f8ed14b55a597c6434c6395c10b1411",
      "parents": [
        "819008233e5d8e4cfd8ebe86bd3ec3881b4f11e9",
        "dae19d7c00455e500cc9731071557ea91f162a7d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 23 10:31:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 23 10:31:00 2010 -0700"
      },
      "message": "am dae19d7c: am aaf39f84: Merge \"GPS: remove GpsEventThread from GpsLocationProvider\" into gingerbread\n\nMerge commit \u0027dae19d7c00455e500cc9731071557ea91f162a7d\u0027\n\n* commit \u0027dae19d7c00455e500cc9731071557ea91f162a7d\u0027:\n  GPS: remove GpsEventThread from GpsLocationProvider\n"
    },
    {
      "commit": "e981c883d5ca99ccb97c317d824b9c288b613f67",
      "tree": "c50548eaa1c14647b5555a2842c7544d4d302b82",
      "parents": [
        "7fb6a8b3458d58188d2bf4c19ada03e62ae57cd9",
        "b1efc3f68277a8c38c21e2d2e8ce05287118ecfe"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jun 23 10:17:22 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 23 10:17:22 2010 -0700"
      },
      "message": "am b1efc3f6: am 7fbdc84e: More native input event dispatching.\n\nMerge commit \u0027b1efc3f68277a8c38c21e2d2e8ce05287118ecfe\u0027\n\n* commit \u0027b1efc3f68277a8c38c21e2d2e8ce05287118ecfe\u0027:\n  More native input event dispatching.\n"
    },
    {
      "commit": "dae19d7c00455e500cc9731071557ea91f162a7d",
      "tree": "d74f386946119505f04fd6afa25edc5d8ed03235",
      "parents": [
        "1e08cc1dfda9a0264fcf62898af0bdd6ed5a205c",
        "aaf39f84063b8fee51bcdb0731d68c328b6a3c3d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 22 06:45:03 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 22 06:45:03 2010 -0700"
      },
      "message": "am aaf39f84: Merge \"GPS: remove GpsEventThread from GpsLocationProvider\" into gingerbread\n\nMerge commit \u0027aaf39f84063b8fee51bcdb0731d68c328b6a3c3d\u0027 into gingerbread-plus-aosp\n\n* commit \u0027aaf39f84063b8fee51bcdb0731d68c328b6a3c3d\u0027:\n  GPS: remove GpsEventThread from GpsLocationProvider\n"
    },
    {
      "commit": "f602d362ba4bb3adbf1eb4e38a794fb14274293a",
      "tree": "d2b5da88fbc52e10a2c9b09f9027b32c539c5022",
      "parents": [
        "07ccf5ad7edfeeebb79208ad3e8a52917fe038a8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Jun 20 14:28:16 2010 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 22 09:26:41 2010 -0400"
      },
      "message": "GPS: remove GpsEventThread from GpsLocationProvider\n\nRather than polling for events from the native code in an event thread,\nwe now require the GPS HAL libraries to call our callbacks from a thread\nthat is registered with the JVM to call directly into Java.\nThis eliminates a thread from our code and removes one step in the chain\nof message passing from the GPS to the Location Manager client.\n\nChange-Id: I2745a157690310ba9a699a8369f54a7366c6b1ba\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "8a380d1bd01f105e3250cd985954677f53a90329",
      "tree": "60bebd284d95f967d6a1e568b8a1e671ebb4df78",
      "parents": [
        "a7212f555b9cc589135f16513e6d1e86fc532d8e",
        "1d15dd7d273cbc4e8485af7fb02bc0564c6c0a8a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jun 21 15:32:43 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 21 15:32:43 2010 -0700"
      },
      "message": "Merge \"Don\u0027t modify a list while iterating.\""
    },
    {
      "commit": "a7212f555b9cc589135f16513e6d1e86fc532d8e",
      "tree": "d1d267d2397b35315431169759355701b60d3c23",
      "parents": [
        "cacb2cf72c2f6746b161638679ea963646efaba7",
        "3b9f0a33a110d01e587ffd5ec7708af68723ad4b"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jun 21 14:29:47 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 21 14:29:47 2010 -0700"
      },
      "message": "Merge \"Recover a handful of commits that were reverted earlier\""
    },
    {
      "commit": "cacb2cf72c2f6746b161638679ea963646efaba7",
      "tree": "383deee977bea3a717961218defa2374f25caa6d",
      "parents": [
        "05dd626a95b73a49cd4408fa6641270688635085",
        "c76c15e255b01412e5cda33b606d7672713b6665"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jun 21 14:12:38 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 21 14:12:38 2010 -0700"
      },
      "message": "Merge \"Reorder ThrottleService startup to avoid race.\""
    },
    {
      "commit": "b1efc3f68277a8c38c21e2d2e8ce05287118ecfe",
      "tree": "8721974946ba04254575f916af6454d947aa6131",
      "parents": [
        "9afeda0519c4f4892611565d678f01d269863bb8",
        "7fbdc84e87dd3a0e196b9803bb04495d11e9cb8a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 21 14:06:31 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 21 14:06:31 2010 -0700"
      },
      "message": "am 7fbdc84e: More native input event dispatching.\n\nMerge commit \u00277fbdc84e87dd3a0e196b9803bb04495d11e9cb8a\u0027 into gingerbread-plus-aosp\n\n* commit \u00277fbdc84e87dd3a0e196b9803bb04495d11e9cb8a\u0027:\n  More native input event dispatching.\n"
    },
    {
      "commit": "7fbdc84e87dd3a0e196b9803bb04495d11e9cb8a",
      "tree": "32691f639ef71365b602795db215f11f457397a5",
      "parents": [
        "e47e3f3855a062ba0338a57eeda2f12a0f7a1fa8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 17 20:52:56 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 21 13:59:34 2010 -0700"
      },
      "message": "More native input event dispatching.\n\nAdded ANRs handling.\nAdded event injection.\nFixed a NPE ActivityManagerServer writing ANRs to the drop box.\nFixed HOME key interception.\nFixed trackball reporting.\nFixed pointer rotation in landscape mode.\n\nChange-Id: I50340f559f22899ab924e220a78119ffc79469b7\n"
    },
    {
      "commit": "3b9f0a33a110d01e587ffd5ec7708af68723ad4b",
      "tree": "d0f7c571e2cf5a9c02fd3b804cf11fbbb1f535f7",
      "parents": [
        "05dd626a95b73a49cd4408fa6641270688635085"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jun 21 13:46:59 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jun 21 13:46:59 2010 -0700"
      },
      "message": "Recover a handful of commits that were reverted earlier\n"
    },
    {
      "commit": "1d15dd7d273cbc4e8485af7fb02bc0564c6c0a8a",
      "tree": "d6b29a571dce374aa715321637571e39e2866703",
      "parents": [
        "aba8d302256da893e3f6d1a323d883e42111dc0b"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jun 21 12:15:26 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Mon Jun 21 12:15:26 2010 -0700"
      },
      "message": "Don\u0027t modify a list while iterating.\n\nRemember who we want to remove instead.  Fixes concurrent modification\nexception.\n\nbug:2778958\nChange-Id: If8827955e6a716fe39cc31fe5a092c613a6786d4\n"
    },
    {
      "commit": "6c9a30045b1e6b9ef5d756e0a9657576c546c9bd",
      "tree": "a80b14a0c4c0b0d3014e6009e66508cdcef5966d",
      "parents": [
        "0fcfa0a53f92f32d50870c246763da30a106d13a",
        "7d10df4e2402c55dc827cb6675a15957071c00af"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 21 11:23:45 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 21 11:23:45 2010 -0700"
      },
      "message": "merge from froyo-plus-aosp\n\nChange-Id: I36dd4460cae6e3212d724e70ff1091cb791670cd\n"
    },
    {
      "commit": "9e2b41ca20d634fd7c400102322ff67e96c9f0ab",
      "tree": "d805401e62eb9a338029ca722fd8d8ceef79fc63",
      "parents": [
        "535c17a747adbf4540c47af599427ed705e609ef",
        "65ff03a1fc56cd272529d1423ddef8e383cad7c0"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 21 09:54:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 21 09:54:24 2010 -0700"
      },
      "message": "am 65ff03a1: am 04b243d0: Fix NPE during ANRs.\n\nMerge commit \u002765ff03a1fc56cd272529d1423ddef8e383cad7c0\u0027\n\n* commit \u002765ff03a1fc56cd272529d1423ddef8e383cad7c0\u0027:\n  Fix NPE during ANRs.\n"
    },
    {
      "commit": "04b243d0f5470cfaf67cce5534f9a9fb2e30855c",
      "tree": "caf2945f0ce02c78066b9e46df5cd7619b628776",
      "parents": [
        "a2650db770e93a9424d6d6948fd31f943f6dac49"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 21 08:01:13 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 21 08:01:13 2010 -0700"
      },
      "message": "Fix NPE during ANRs.\n\nBUG\u003d2780838\n\nChange-Id: I0d5e9a2323130ca14d1f0df684c8abe4f4dad05a\n"
    },
    {
      "commit": "efd26c6b479eaaf9a0b2ab661d584060b180e26c",
      "tree": "047d626b972846f6e79c59320db74c0957957509",
      "parents": [
        "0d049e5f6282cfb889960942ac2dceb3b586701f",
        "3f704e983e36c668a3a13690655ab809666dfc3e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 17 18:55:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 17 18:55:24 2010 -0700"
      },
      "message": "am 3f704e98: am 801700b1: am 57f4503e: Work on issue # 2778549: Idle FRF72 is awake 18 mins more than ERE27 in 13hr test\n\nMerge commit \u00273f704e983e36c668a3a13690655ab809666dfc3e\u0027\n\n* commit \u00273f704e983e36c668a3a13690655ab809666dfc3e\u0027:\n  Work on issue # 2778549: Idle FRF72 is awake 18 mins more than ERE27 in 13hr test\n"
    },
    {
      "commit": "801700b1a2b3b5d3cf4264b62d8a776996bda4ca",
      "tree": "071ed20e470e49ca243613dbf3e5954a8b3e0117",
      "parents": [
        "7f0a1f62c63a91eab3bd21c65fa978c1b14650be",
        "57f4503e1a129d6a648f2378d36a060998a577a0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 17 18:43:31 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 17 18:43:31 2010 -0700"
      },
      "message": "am 57f4503e: Work on issue # 2778549: Idle FRF72 is awake 18 mins more than ERE27 in 13hr test\n\nMerge commit \u002757f4503e1a129d6a648f2378d36a060998a577a0\u0027 into gingerbread\n\n* commit \u002757f4503e1a129d6a648f2378d36a060998a577a0\u0027:\n  Work on issue # 2778549: Idle FRF72 is awake 18 mins more than ERE27 in 13hr test\n"
    },
    {
      "commit": "57f4503e1a129d6a648f2378d36a060998a577a0",
      "tree": "bed5bf809f503f0a2b1061b92c31f26b445ab5ec",
      "parents": [
        "5f11e95f0041e163e8aa9e429aec92c8ee942233"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 17 15:49:33 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 17 15:49:33 2010 -0700"
      },
      "message": "Work on issue # 2778549: Idle FRF72 is awake 18 mins more than ERE27 in 13hr test\n\nModify UIModeManager to not get location updates every thirty minutes.\nInstead it gets one once a day, and requests a new update when airplane\nmode is turned off or the time zone changes.\n\nChange-Id: I8044c27b5cd77709e4b872e2e8edd352f23e4af1\n"
    },
    {
      "commit": "e2e97ce1161e5bf89ef8b5ce6a12be0f16dea23e",
      "tree": "3ad418f9757b34e4b0871a79d80f908ebb95560c",
      "parents": [
        "2f7a247c921ad1b86b7ba79cdb0431233827ad57",
        "9a1034aa9746b94ecb659ea849765a160bdf747e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 16 19:55:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 16 19:55:12 2010 -0700"
      },
      "message": "am 9a1034aa: am 6b7b4845: Various improvements to battery stats collection\n\nMerge commit \u00279a1034aa9746b94ecb659ea849765a160bdf747e\u0027\n\n* commit \u00279a1034aa9746b94ecb659ea849765a160bdf747e\u0027:\n  Various improvements to battery stats collection\n"
    },
    {
      "commit": "6b7b4845212b3a439c527f2e1eca205b6b45fceb",
      "tree": "1ba505965236caa85362b440aa852f5b8aae0df5",
      "parents": [
        "c95812e6cacaa14748c81323bac6561453991a24"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 14 17:17:44 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 16 18:31:42 2010 -0700"
      },
      "message": "Various improvements to battery stats collection\n\nWe now clear the battery stats when unplugging after the\nbattery is full.  This allows us to use the \"total\" stats as\na new \"since last charged\" stat.  Total is gone.  I never used\nit, it was worthless.  Since last charged is a lot more\ninteresting.\n\nThe battery history now collects a lot more stats, and keeps\ncontrol over how much it can collect.  Printing is now more\ndescriptive.\n\nThe kinds of stats have been renamed to SINCE_UNPLUGGED and\nSINCE_DISCHARGED.  The other two stats are still there, but\nno longer printed; a future change will eliminate them\ncompletely along with all of their state.\n\nChange-Id: I4e9fcfcf8c30510092c76a8594f6021e9502fbc1\n"
    },
    {
      "commit": "c76c15e255b01412e5cda33b606d7672713b6665",
      "tree": "b8799ae0b5d25be031d03688846c156fecc66919",
      "parents": [
        "8d66d7592f7dd3b3e962b9463f8f963e5f72bbed"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Jun 16 14:42:16 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Jun 16 14:42:16 2010 -0700"
      },
      "message": "Reorder ThrottleService startup to avoid race.\n\nDon\u0027t start people reading settings until after the settings (ntp server settings)\nare loaded.\n\nbug:2608189\nChange-Id: I7dfaa1e9418b98a141d17dc35d22ff42fcfa052f\n"
    },
    {
      "commit": "a8a8a42f8570bdbe66a09fc278564e7a549158da",
      "tree": "a297b3d5ae6b35b8665164c35f5f9c4c4d36e778",
      "parents": [
        "92266a7894becc1cdf2298fd02380749ab036131"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 16 15:06:16 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 16 15:06:16 2010 -0400"
      },
      "message": "Fix bug 2772728 with the suggested fix.  I wasn\u0027t able to reproduce it though.\n\nChange-Id: Ic3e3a7c679a74b822a3567faeb353950af3cfbca\n"
    },
    {
      "commit": "14f2ef4c9da27a3d58d65dc9f684c5f764ee279a",
      "tree": "bef6430bbf98a5734add49dead51039c2489917c",
      "parents": [
        "ce718947db0d305a8cf015c29e68907d42e1b6cd"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Jun 15 12:19:37 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Jun 16 11:04:37 2010 -0700"
      },
      "message": "Move the net transition wakelock to ConnService.\n\nWhen the default network goes down we lose the wake-on-incoming-data capability\nuntil the new net is brought up and apps rebuild their connections.  We fixed this\nin Wifi, but it\u0027s a general connectivity issue, not a wifi issue so moving the\nmechanism to connecitivty so other networks can use it.\n\nbug:2734419\nChange-Id: I39b5d825eb6b548bd9bb8f179b89254f4db53147\n"
    },
    {
      "commit": "9629d42c1966e56b75d7bdea909f9fb1a439ff67",
      "tree": "fdb256c0cb9e3ce1e918e01a25e32dd7596da3a5",
      "parents": [
        "4138677a72a6ebba3312cc0d32593d11f7a252e1",
        "8942a31f133371fb165eefbcdd39c1974d5525b8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jun 15 09:32:37 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jun 15 09:32:37 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I4d7b0ec9895d8b090e0cdf2efb6731358a5d087c\n"
    },
    {
      "commit": "8942a31f133371fb165eefbcdd39c1974d5525b8",
      "tree": "ba0d3daf5b9834729fdc69c7b8cba9098be34289",
      "parents": [
        "e6af73e18eaa1303a1499b6ec240afd953a92607",
        "4136c98ecc25861da5462d1364f1c4bfd7bd5c31"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jun 14 16:23:58 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Mon Jun 14 16:23:58 2010 -0700"
      },
      "message": "Merge \"Replaced deprecated String Constructor\""
    },
    {
      "commit": "4ed8e42c50d7b67b8d89c092e9cd49b9b1b0040a",
      "tree": "30dd53d10b3ed1ccada863c55ac13ef5836ad604",
      "parents": [
        "0028249ad3338679316e65a4d832a37f8b46bda1",
        "92dd85d02af60b001f1ae6919eeb11bcf38e64c8"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 14 15:25:09 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 14 15:25:09 2010 -0700"
      },
      "message": "am 92dd85d0: am 742b282e: Merge \"StrictMode: implement the log-to-DropBox option\" into gingerbread\n\nMerge commit \u002792dd85d02af60b001f1ae6919eeb11bcf38e64c8\u0027\n\n* commit \u002792dd85d02af60b001f1ae6919eeb11bcf38e64c8\u0027:\n  StrictMode: implement the log-to-DropBox option\n"
    },
    {
      "commit": "143666f0ca28f0e3e6597e5025078f0449ca6abe",
      "tree": "03944ebfa885d9970c13ba5a912731ddc1eaee76",
      "parents": [
        "f1cefa916712dafc8b47f6eb8132a688892d4995"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 14 12:40:21 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 14 13:38:01 2010 -0700"
      },
      "message": "StrictMode: implement the log-to-DropBox option\n\nChange-Id: I51d12e264155078f953028241f8c5cbdc47262e8\n"
    },
    {
      "commit": "bde75706592c77379fb6546283e733abaca6fe04",
      "tree": "b41ddf2bdae6a8ba1223ccabcbd611f21474ee79",
      "parents": [
        "e377032899fd7a9f88ad1313847e77c098b9f248"
      ],
      "author": {
        "name": "Sen Hu",
        "email": "senhu@google.com",
        "time": "Fri May 28 01:54:03 2010 -0700"
      },
      "committer": {
        "name": "Sen Hu",
        "email": "senhu@google.com",
        "time": "Mon Jun 14 13:27:01 2010 -0700"
      },
      "message": "wire up sampling profiler to dropbox\n\nWhen system property \"persist.sys.profiler_hz\" \u003e 0, SamplingProfilerService is\nloaded to SystemServer. It creates a FileObserver, watching any new file in the snapshot\ndirectory. When a snapshot is found, it is put in dropbox and deleted after that.\n\nSamplingProfilerIntegration writes snapshots with headers. Headers are \u003cname, value\u003e pairs,\ninstantiated by caller.\n\nCurrently header format is (also in source comment):\n\nVersion: \u003cversion number of profiler\u003e\\n\nProcess: \u003cprocess name\u003e\\n\nPackage: \u003cpackage name, if exists\u003e\\n\nPackage-Version: \u003cversion number of the package, if exists\u003e\\n\nBuild: \u003cfingerprint\u003e\\n\n\\n\n\u003cthe actual snapshot content begins here...\u003e\n\nBUG\u003d2732642\n\nChange-Id: I2c1699f1728e603de13dbd38f9d8443cd3eecc06\n"
    },
    {
      "commit": "8e03b7566c42621fda01186b66b019142eb84fbf",
      "tree": "17c45ea04288d2d57053ea740ae1cf332a4308c8",
      "parents": [
        "5ddd127d5a38d80c0d8087d1770f41f61f84f048",
        "9e660c8201ab9aeead5d78a75c2bbfecc374858f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 19:16:55 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 19:16:55 2010 -0700"
      },
      "message": "resolved conflicts for merge of 9e660c82 to master\n\nChange-Id: Ic4bd85cbaa5b9a10dcb474a0dad46490bf967e43\n"
    },
    {
      "commit": "7c8aa44f320f45e8417f0aba9ca67af6a67a5cf7",
      "tree": "2d547d9d8ddc5b08310070121616294d92ebca70",
      "parents": [
        "94f14aeca9e6c6d07b39a7f708eacadcfeb6fbd2",
        "46b9ac0ae2162309774a7478cd9d4e578747bfc2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 17:55:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jun 13 17:55:28 2010 -0700"
      },
      "message": "am 46b9ac0a: Native input dispatch rewrite work in progress.\n\nMerge commit \u002746b9ac0ae2162309774a7478cd9d4e578747bfc2\u0027 into gingerbread\n\n* commit \u002746b9ac0ae2162309774a7478cd9d4e578747bfc2\u0027:\n  Native input dispatch rewrite work in progress.\n"
    },
    {
      "commit": "46b9ac0ae2162309774a7478cd9d4e578747bfc2",
      "tree": "46ad021a41e25ca9f1250b709a29b724dc6b504d",
      "parents": [
        "f62c57d684b83df7d2817db976c0afdb500ae92a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 22 18:58:52 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 17:42:16 2010 -0700"
      },
      "message": "Native input dispatch rewrite work in progress.\n\nThe old dispatch mechanism has been left in place and continues to\nbe used by default for now.  To enable native input dispatch,\nedit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.\n\nIncludes part of the new input event NDK API.  Some details TBD.\n\nTo wire up input dispatch, as the ViewRoot adds a window to the\nwindow session it receives an InputChannel object as an output\nargument.  The InputChannel encapsulates the file descriptors for a\nshared memory region and two pipe end-points.  The ViewRoot then\nprovides the InputChannel to the InputQueue.  Behind the\nscenes, InputQueue simply attaches handlers to the native PollLoop object\nthat underlies the MessageQueue.  This way MessageQueue doesn\u0027t need\nto know anything about input dispatch per-se, it just exposes (in native\ncode) a PollLoop that other components can use to monitor file descriptor\nstate changes.\n\nThere can be zero or more targets for any given input event.  Each\ninput target is specified by its input channel and some parameters\nincluding flags, an X/Y coordinate offset, and the dispatch timeout.\nAn input target can request either synchronous dispatch (for foreground apps)\nor asynchronous dispatch (fire-and-forget for wallpapers and \"outside\"\ntargets).  Currently, finding the appropriate input targets for an event\nrequires a call back into the WindowManagerServer from native code.\nIn the future this will be refactored to avoid most of these callbacks\nexcept as required to handle pending focus transitions.\n\nEnd-to-end event dispatch mostly works!\n\nTo do: event injection, rate limiting, ANRs, testing, optimization, etc.\n\nChange-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25\n"
    },
    {
      "commit": "0c330e26e853e478bf1c3d63eae98a42a1c12bad",
      "tree": "b5ff140639eed55a0bd92b38eca8e6fd993a80d2",
      "parents": [
        "01f2f960e73701633a169fbb2b777a4915a5b12c",
        "11bd9d1ec20ce3bbd3791b537faad429a1ca87e7"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Jun 11 18:30:09 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 11 18:30:09 2010 -0700"
      },
      "message": "am 11bd9d1e: am 94f14aec: Merge \"More StrictMode work, handling violations in ActivityManagerService.\" into gingerbread\n\nMerge commit \u002711bd9d1ec20ce3bbd3791b537faad429a1ca87e7\u0027\n\n* commit \u002711bd9d1ec20ce3bbd3791b537faad429a1ca87e7\u0027:\n  More StrictMode work, handling violations in ActivityManagerService.\n"
    },
    {
      "commit": "46d42387464a651268648659e91d022566d4844c",
      "tree": "1252f3113aea8f95506bc0860b461fe3737c45c7",
      "parents": [
        "126ca6f9ecab6f912ea9f4f00af35c410aae504b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Jun 11 13:57:58 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Jun 11 16:11:26 2010 -0700"
      },
      "message": "More StrictMode work, handling violations in ActivityManagerService.\n\nAlso starts to do duplicate-suppression.\n\nChange-Id: I0502f6ab6c45fa319298de4874ecfe44b7829d21\n"
    },
    {
      "commit": "835f6999b8ecab8aec1f7f5cdbcbd42955d4a51e",
      "tree": "84f1525c58b91070f7856db7b89a88dfa7b44f2f",
      "parents": [
        "5bd667a3a7a66518ffe6e71b1224f3ad2558be3e",
        "a4fb8b3de37d57809665fa4113ebee9c8f2cc2fc"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Jun 11 15:32:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 11 15:32:24 2010 -0700"
      },
      "message": "am a4fb8b3d: am c2bc66d4: Merge \"Dont persist config on failure\" into gingerbread\n\nMerge commit \u0027a4fb8b3de37d57809665fa4113ebee9c8f2cc2fc\u0027\n\n* commit \u0027a4fb8b3de37d57809665fa4113ebee9c8f2cc2fc\u0027:\n  Dont persist config on failure\n"
    },
    {
      "commit": "afadc8b4e15d94b6a4ac7dc8ad3cdcde45836f45",
      "tree": "e6eb7beaa93a2b2c2108cbea74e400e1a3a50f44",
      "parents": [
        "9f8cc518e14c7a34bc52da712afbf02d84585f67"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Jun 11 14:43:14 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Jun 11 14:43:14 2010 -0700"
      },
      "message": "Dont persist config on failure\n\nIf soft AP bring up does not go through successfully,\ndont persist the config. This has the benefit of recovering\nfrom the case where things fail on \"\u003d\" and \",\" for SSID since\nthe IOCTL parsing in driver on broadcom cannot handle it\nat this time.\n\nChange-Id: Iaa60fd05972db434500753dcb59092995dab07b1\n"
    },
    {
      "commit": "cf0a99910cf87b148fe3143686262a8371d2dbc1",
      "tree": "8ed44826394b5bbcb2510d55d0ecbc2e309f9050",
      "parents": [
        "4fee974adf4dae7da4a756fcb50c000a4a0aa94f",
        "4d4f265e6b6ccfc239150bd71aa2ce2b8de6237f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 11 11:00:53 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 11 11:00:53 2010 -0700"
      },
      "message": "am 4d4f265e: am 9f8cc518: Merge \"Adjust activity manager process OOM adj.\" into kraken\n\nMerge commit \u00274d4f265e6b6ccfc239150bd71aa2ce2b8de6237f\u0027\n\n* commit \u00274d4f265e6b6ccfc239150bd71aa2ce2b8de6237f\u0027:\n  Adjust activity manager process OOM adj.\n"
    },
    {
      "commit": "32907cfb38bda2d3c052cf5139c5b592678fedbb",
      "tree": "78b2cb1f1ec2897628531bad2be0c90ecc53468f",
      "parents": [
        "e577e87a2d80890190f14edc4a5caf70d7c566bf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 10 17:50:20 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 11 10:39:11 2010 -0700"
      },
      "message": "Adjust activity manager process OOM adj.\n\nModify OOM adj classes a bit, to take into account the new\nheavy weight app type, and give \"foreground services\" their\nown category to have a bettery chance to manager them when\nthings go wrong.\n\nAlso add some new code to battery stats to keep a history\nof changes to the battery level.\n\nChange-Id: I29f5ab6938777e1a7eafd7d8c38b5e564cc9f96a\n"
    },
    {
      "commit": "20ea8d0f855294465a3a170653679b5d57b9f596",
      "tree": "848b867d6e3a6bbc87bfdebcab0ad645943e06b5",
      "parents": [
        "2dabef2f4e945c30372425cfe4f93744ac56c76c",
        "799f0e5076f42baa1c23c2778c16612b6dfb9062"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 10 16:13:50 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 10 16:13:50 2010 -0700"
      },
      "message": "am 799f0e50: am 4001120e: am f4a502a2: Merge \"Don\\\u0027t adjust lights if screen or button brightness is changed when the screen is off.\" into froyo\n"
    },
    {
      "commit": "b60c941811cc15ab34fcc2f038aba56f862659b8",
      "tree": "8ccb8a0df3edf626086f83f6ef93637aad09f8b4",
      "parents": [
        "92a4d078e54aa9da1d48941496bb7eb835a79ce3",
        "f37cbe6bb624648053ab9756831450305197a9b8"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jun 10 15:58:22 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jun 10 15:58:22 2010 -0700"
      },
      "message": "resolved conflicts for merge of f37cbe6b to master\n\nChange-Id: I529b17e55b9668f900f685f92e9831e14a82db05\n"
    },
    {
      "commit": "4001120e456e51dd498c6647460dd97d946dc816",
      "tree": "8050c4de42354eb54a6c8910c46e56813ea9285c",
      "parents": [
        "4d61f602bf67fe61256c23f090d6119992ad5160",
        "f4a502a235e9f9ea0bcd2d5ca4981dc6e1a619c4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 10 15:30:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 10 15:30:41 2010 -0700"
      },
      "message": "am f4a502a2: Merge \"Don\\\u0027t adjust lights if screen or button brightness is changed when the screen is off.\" into froyo\n\nMerge commit \u0027f4a502a235e9f9ea0bcd2d5ca4981dc6e1a619c4\u0027 into kraken\n\n* commit \u0027f4a502a235e9f9ea0bcd2d5ca4981dc6e1a619c4\u0027:\n  Don\u0027t adjust lights if screen or button brightness is changed when the screen is off.\n"
    },
    {
      "commit": "34502a84ebc11e3c8ab3dd0b8ecf1bf3282ab4b0",
      "tree": "4810ccf58e89d620d765a7de6c9e0687418c7fb3",
      "parents": [
        "f1bb929bc5d24842a5d2fd6906cd9ca48a759f6f",
        "f4a502a235e9f9ea0bcd2d5ca4981dc6e1a619c4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 10 15:30:33 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 10 15:30:33 2010 -0700"
      },
      "message": "am f4a502a2: Merge \"Don\\\u0027t adjust lights if screen or button brightness is changed when the screen is off.\" into froyo\n\nMerge commit \u0027f4a502a235e9f9ea0bcd2d5ca4981dc6e1a619c4\u0027 into froyo-plus-aosp\n\n* commit \u0027f4a502a235e9f9ea0bcd2d5ca4981dc6e1a619c4\u0027:\n  Don\u0027t adjust lights if screen or button brightness is changed when the screen is off.\n"
    },
    {
      "commit": "f4a502a235e9f9ea0bcd2d5ca4981dc6e1a619c4",
      "tree": "71d62a9ed67b2f129cc29d152ebfcf99c3b2ae7d",
      "parents": [
        "8f2ca788f369892370477212cf9e7a67721a8c16",
        "f527c715d7065d8cf6943c37dd5e721bd7a805cd"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 10 15:28:31 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 10 15:28:31 2010 -0700"
      },
      "message": "Merge \"Don\u0027t adjust lights if screen or button brightness is changed when the screen is off.\" into froyo"
    },
    {
      "commit": "438d0595121a7a2cdf19741e76e3c0e21a5c173d",
      "tree": "d4a76171b2eb52c472c2900eb6947ff073bed81a",
      "parents": [
        "8f1bfb001b522a370a65c8e4545183b7611f672b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jun 10 12:19:19 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jun 10 14:38:58 2010 -0700"
      },
      "message": "Introduce \"StrictMode\"\n\nThis is a new public API for developers to opt-in to strict rules\nabout what they\u0027re allowed to do on certain threads.  (this is the\npublic face of the @hide dalvik.system.BlockGuard, added recently...)\n\nIn practice this will be used for developers to opt-in to declaring\nthat they don\u0027t want to be allowed to do various operations (such as\ndisk I/O or network operations) on their main UI threads.  (these\noperations are often accidental, or even when they are fast come with\na good chance of being slow or very slow in some cases....)\n\nImplementation wise, this is just a thread-local integer that has a\nbitmask of the things that aren\u0027t allowed, and more bits for saying\nwhat the violation penalty is.  The penalties, of which multiple can\nbe chosen, include:\n\n  * logging\n  * dropbox uploading for analysis/reporting\n  * annoying dialog\n  * full-on crashing\n\nThese are all only very roughly implemented at this point, but all\nparts now minimally work end-to-end now, so this is a good checkpoint\ncommit before this gets too large.\n\nFuture CLs will polish all the above 4 penalties, including\nchecksumming of stacktraces and minimizing penalties for duplicate\nviolations.\n\nChange-Id: Icbe61a2e950119519e7364030b10c3c28d243abe\n"
    },
    {
      "commit": "a876b851fa5d6f63c6356f67122ff53dff799b22",
      "tree": "cbd228b14fc7445eb8987231517bdb854ec259a8",
      "parents": [
        "a9aaf8ffcecf294c8da9785b5c5e1f055ee4d245",
        "45c3f843d652f383b727cbc0a8cdf1ac5b9e41cf"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Jun 10 14:19:26 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 10 14:19:26 2010 -0700"
      },
      "message": "am 45c3f843: am 8f1bfb00: am 8f2ca788: Merge \"Fix bug 2757693 - Multi-touch coordinates can jump when a finger goes down.\" into froyo\n"
    },
    {
      "commit": "f1bb929bc5d24842a5d2fd6906cd9ca48a759f6f",
      "tree": "d72446ad6dcd382a03a56cfec37e0f800972e3a2",
      "parents": [
        "321e815893b8aaa36dd9381b62a9a2558ba8d8d8",
        "8f2ca788f369892370477212cf9e7a67721a8c16"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Jun 10 14:14:44 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 10 14:14:44 2010 -0700"
      },
      "message": "am 8f2ca788: Merge \"Fix bug 2757693 - Multi-touch coordinates can jump when a finger goes down.\" into froyo\n\nMerge commit \u00278f2ca788f369892370477212cf9e7a67721a8c16\u0027 into froyo-plus-aosp\n\n* commit \u00278f2ca788f369892370477212cf9e7a67721a8c16\u0027:\n  Fix bug 2757693 - Multi-touch coordinates can jump when a finger goes down.\n"
    },
    {
      "commit": "8f1bfb001b522a370a65c8e4545183b7611f672b",
      "tree": "d6f61406df1a090fe5f7786d3e52f26df95dcc0d",
      "parents": [
        "8d3002806593f090ee570c04e4620b90df4d5c8b",
        "8f2ca788f369892370477212cf9e7a67721a8c16"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Jun 10 14:13:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 10 14:13:51 2010 -0700"
      },
      "message": "am 8f2ca788: Merge \"Fix bug 2757693 - Multi-touch coordinates can jump when a finger goes down.\" into froyo\n\nMerge commit \u00278f2ca788f369892370477212cf9e7a67721a8c16\u0027 into kraken\n\n* commit \u00278f2ca788f369892370477212cf9e7a67721a8c16\u0027:\n  Fix bug 2757693 - Multi-touch coordinates can jump when a finger goes down.\n"
    },
    {
      "commit": "8f2ca788f369892370477212cf9e7a67721a8c16",
      "tree": "4111ae09406799e0a0c20727a29825bebbf70dc3",
      "parents": [
        "a2c6d5bf308181c019ade0aac6d25fe33dc3d76c",
        "5cd88cfd239bc61a4327e2a13747b4590890d838"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Jun 10 14:09:50 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 10 14:09:50 2010 -0700"
      },
      "message": "Merge \"Fix bug 2757693 - Multi-touch coordinates can jump when a finger goes down.\" into froyo"
    },
    {
      "commit": "321e815893b8aaa36dd9381b62a9a2558ba8d8d8",
      "tree": "441a8c7257e432c03f88f771f98985f95757de43",
      "parents": [
        "4817cfc71dd7cb5e1ddb25bb54e490064362fdb1",
        "a2c6d5bf308181c019ade0aac6d25fe33dc3d76c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 10 11:50:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 10 11:50:51 2010 -0700"
      },
      "message": "am a2c6d5bf: do not merge: cherry-picked 929b4855b8208d36272769e8eeaa6cd2823b94c0 from master branch\n\nMerge commit \u0027a2c6d5bf308181c019ade0aac6d25fe33dc3d76c\u0027 into froyo-plus-aosp\n\n* commit \u0027a2c6d5bf308181c019ade0aac6d25fe33dc3d76c\u0027:\n  do not merge: cherry-picked 929b4855b8208d36272769e8eeaa6cd2823b94c0 from master branch\n"
    },
    {
      "commit": "f527c715d7065d8cf6943c37dd5e721bd7a805cd",
      "tree": "6b5d282e3bf5bdc3cfd36f5d1eebd1b9012332d9",
      "parents": [
        "71d73a0dfc110d0bdfc1b7ba385db3e2cfe007e5"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 10 14:12:33 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 10 14:14:00 2010 -0400"
      },
      "message": "Don\u0027t adjust lights if screen or button brightness is changed when the screen is off.\n\nChange-Id: I798a240374c3a739e1f1eaf36fa9fdef8416f2a2\nBUG: 2758292\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "d649c12815bcf944b2c97371f3f60716a42a1557",
      "tree": "ee848ca7f299bf1367864b8bdcccfd3638b84817",
      "parents": [
        "051e19458ddffcfe75188d48ddbf3d8b86519532"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Jun 09 15:39:36 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Jun 10 10:55:23 2010 -0700"
      },
      "message": "Make NetworkStateTracker an interface\n\nAs part of the WifiStateTracker cleanup, need\nto have NetworkStateTracker as an interface.\n\nChange-Id: I2ac48d7e4c7274ac4df40bc3b8591b182956a936\n"
    },
    {
      "commit": "a2c6d5bf308181c019ade0aac6d25fe33dc3d76c",
      "tree": "b5978d6349768cbf70b33366beb775ec0c6c3572",
      "parents": [
        "b00854d4c07ee8c810d1e32984543297bfa80a8e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 09 14:27:43 2010 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 10 10:39:42 2010 -0700"
      },
      "message": "do not merge: cherry-picked 929b4855b8208d36272769e8eeaa6cd2823b94c0 from master branch\n\nChange-Id: Ie20371234a531f65f523682a0d0c27394dc30afa\n"
    },
    {
      "commit": "9396f6e0698541f6c9b71209ce9ece14cc2414a4",
      "tree": "723c96047cd0ba466932873fd3c69796d3bf646f",
      "parents": [
        "e4031a3780ad3560d540e87e543a316b0b50a945",
        "02648a4b8422733ed401f07edf8e426318bb2f8d"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Jun 09 17:11:05 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 09 17:11:05 2010 -0700"
      },
      "message": "Merge \"Clean up APN notifications.\""
    },
    {
      "commit": "5cd88cfd239bc61a4327e2a13747b4590890d838",
      "tree": "7a1539ab533de6f150a86469e6ea411eb28b1015",
      "parents": [
        "75b6a6b972e6b18143fd629d3d9c824c442c5f4c"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Jun 09 17:10:04 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Jun 09 17:10:04 2010 -0700"
      },
      "message": "Fix bug 2757693 - Multi-touch coordinates can jump when a finger goes down.\n\nChange-Id: I26bd54cec739ca8d91d2c2b18b90134f20dbd907\n"
    },
    {
      "commit": "02648a4b8422733ed401f07edf8e426318bb2f8d",
      "tree": "870635094119f5b91423b69e67ee06601fd75b0f",
      "parents": [
        "1d46191d88ee9262ea05b868d2db5b44ad85fa43"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue May 18 10:52:51 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Jun 09 16:52:01 2010 -0700"
      },
      "message": "Clean up APN notifications.\n\nAdd APNType info to notifications so you can tell what\u0027s happening.  Now, even if a new APN\nshares a connection with an already-connected-to- apn type, the new type will get all\nthe connecting and connected messages on connect and disconnecting/disconnected on disconnect\neven though the shared connection remains connected.\n\nCleaning out the hacks MobileDataStateTracker needed to deal with the old situation.\nbug:2226092\n\nChange-Id: Iddd7421d6b91cda7c8405f9c3d5404ac04ef8e42\n"
    },
    {
      "commit": "dfda2adc3dc32ca5d4a74c1caaa571bf77116c42",
      "tree": "52f6c87737394087229aedc40a72c0c0e715c25e",
      "parents": [
        "8a5f10b30dae663eb01372490df3497e8a2ad56a",
        "69b04a707513dcb166ed79277e0ae7129d09d4c4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 09 15:26:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 09 15:26:41 2010 -0700"
      },
      "message": "am 69b04a70: am 2feafeff: Merge \"Fix a problem with leaking UDP sockets.\" into kraken\n"
    },
    {
      "commit": "8a5f10b30dae663eb01372490df3497e8a2ad56a",
      "tree": "f290abed00828b9b8c7f399805a2f2629e6fd262",
      "parents": [
        "1d46191d88ee9262ea05b868d2db5b44ad85fa43",
        "f7b79151923ccde24a3c5cb546d9f595f0891f59"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 15:07:16 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 15:07:16 2010 -0700"
      },
      "message": "resolved conflicts for merge of f7b79151 to master\n\nChange-Id: Ia4538f73d8bade9e6565835d484dcb650830feca\n"
    },
    {
      "commit": "2feafeffb8c2a5e02cb7998194d129ab0f43f9b0",
      "tree": "0532163e1551e707127a800269db4dfcdc111d2f",
      "parents": [
        "ae706c10c08209cdca79725ac7d25eec50777ada",
        "929b4855b8208d36272769e8eeaa6cd2823b94c0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 09 14:49:10 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 09 14:49:10 2010 -0700"
      },
      "message": "Merge \"Fix a problem with leaking UDP sockets.\" into kraken"
    },
    {
      "commit": "1d46191d88ee9262ea05b868d2db5b44ad85fa43",
      "tree": "e51b023ccc1a8d12075665dd06b824584f7afb57",
      "parents": [
        "fb3a35e586c08c74a8f9a0c332c9e40753c095c5",
        "b5f9b4f15a5cb060c34f1b8aa16cfee8503af0c7"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 14:47:43 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 09 14:47:43 2010 -0700"
      },
      "message": "am b5f9b4f1: am 302759c1: Merge changes I4a11f027,Ib2c4abf6,Id0c7ef9f,I839d7771 into kraken\n"
    },
    {
      "commit": "75144ea38e79e3827e69a9f5b53a6fd3a74c4df5",
      "tree": "22151ca24153ffaafbdca7f702139e537a834a45",
      "parents": [
        "f1f259165ffaa4095afbd50fea47ed091cbc14b3"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Jun 07 12:36:25 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 14:33:31 2010 -0700"
      },
      "message": "Move the status bar icon list, hopefully for the last time.\n\nChange-Id: Ie495a41dac03e1fe5ddccefcbd2a0673090a6db1\n"
    },
    {
      "commit": "f1f259165ffaa4095afbd50fea47ed091cbc14b3",
      "tree": "f9778c41051b321c95df81f4452661a70ca5fab1",
      "parents": [
        "7a0f36bd93ad8a5b8cb3e1fe56dbdb43a0ad3a57"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Jun 07 11:52:41 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 14:33:30 2010 -0700"
      },
      "message": "Call into the notification manager when the panel is revealed.\n\nThis lets it turn off the LED.  However, it seems like somebody broke\nthe notification LEDs.  GRRR.\n\nChange-Id: I3f7066c2b2e1673dc0144a34cf59946351a647be\n"
    },
    {
      "commit": "7a0f36bd93ad8a5b8cb3e1fe56dbdb43a0ad3a57",
      "tree": "04a00561e8e2ec8b8c883d6fb31b3a6b0570ba51",
      "parents": [
        "9e875fcb55dad6795e823207693c5ca877941d3e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Jun 07 10:24:36 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 14:33:30 2010 -0700"
      },
      "message": "Move status_bar_latest_event and LatestItemView into SystemUI.apk.\n\nThen, now that StatusBarManagerService is the only thing in that package,\nmove it up to the regular services package.  (I\u0027ve been waiting for 4 years\nto delete that package!)\n\nChange-Id: If5faf44641319fd19e486d1f4e5bc1c6dfcff3ad\n"
    },
    {
      "commit": "9e875fcb55dad6795e823207693c5ca877941d3e",
      "tree": "f5044c92c2660ac12b276a9c6937d9b727c86e91",
      "parents": [
        "8bc6c5141974dbc36a6fe416853f558921be9f24"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Jun 07 11:12:11 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 14:33:29 2010 -0700"
      },
      "message": "Start the status bar service based on a configuration option, instead of trampolining through\na braodcast receiver.\n\nChange-Id: I6ae0740fea07350b80c35c0ee2d938e0364d773e\n"
    },
    {
      "commit": "8bc6c5141974dbc36a6fe416853f558921be9f24",
      "tree": "c9e511a5d065abb8f6d0c9f4965ef2d63965c7a5",
      "parents": [
        "005847b03b2ebe3eb1a974a8a04ad51bca6636cd"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 04 16:21:12 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 14:33:23 2010 -0700"
      },
      "message": "Require the STATUS_BAR_SERVICE permission for something to be the status bar.\n\nChange-Id: I57b2d296e0d0cef0d256ae6697fffc47188d14df\n"
    },
    {
      "commit": "929b4855b8208d36272769e8eeaa6cd2823b94c0",
      "tree": "ad166636b5bbe1a76d037b5fbb51981480929d05",
      "parents": [
        "c44c4742e7d79f6fe846f807bb26ad8b3cd16f68"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 09 14:27:43 2010 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 09 14:27:43 2010 -0700"
      },
      "message": "Fix a problem with leaking UDP sockets.\n\nWhen dealing with any kind of limited operating system resource,\nwe should ensure that we properly close everything that we\nopen, rather than relying on the system garbage collector.\n\nChange-Id: Ic71f710eb85ac71a91b7a1215647c75010d37643\n"
    },
    {
      "commit": "fb3a35e586c08c74a8f9a0c332c9e40753c095c5",
      "tree": "697b2b296fcaa6bbeb4d3d3e877b18a12a442b7c",
      "parents": [
        "35eef702b195a9546fbf9e0293641cf6eef025c5"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Wed Jun 09 16:24:17 2010 -0500"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Wed Jun 09 16:24:17 2010 -0500"
      },
      "message": "Fix the build.\n\nChange-Id: Ib633eb144277ec2598f25eac3a9cfe0f0184959e\n"
    },
    {
      "commit": "35eef702b195a9546fbf9e0293641cf6eef025c5",
      "tree": "4ee833c15ed926a8f6c8c3c7cf24727e79a1fd59",
      "parents": [
        "1c11015ec12352ef745340525a50c6325c72bd61"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Wed Jun 09 15:45:18 2010 -0500"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Wed Jun 09 15:46:59 2010 -0500"
      },
      "message": "Remove the unused demo data set stuff.\n\nChange-Id: I81f7a8118876ee7cb6c356c63b0d0613d9777d4f\n"
    },
    {
      "commit": "005847b03b2ebe3eb1a974a8a04ad51bca6636cd",
      "tree": "1664f30f2320bddcf44b0af581b492589a38fcda",
      "parents": [
        "d956ae8b813da893ab6a9357acfe287c529d6ac2"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 04 16:08:02 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 09:15:25 2010 -0700"
      },
      "message": "Handle errors inflating notifications (and their icons).\n\nOn an inflation error, the StatusBarService cleans up, removes / doesn\u0027t add\nthe views, and calls into the StatusBarManagerService, which tells the\nNotificationManagerService to remove the notification.\n\nThat then calls all the way back into the StatusBarService, but I think being\nextra careful is okay.  Throughout the status bar, it\u0027s all keyed off of the\nIBinder key, so if the app comes in with a good notification while we\u0027re\ncleaning up, we won\u0027t lose the new notification or anything like that.\n\nChange-Id: Iea78a637495a8b67810c214b951d5ddb93becacb\n"
    },
    {
      "commit": "bd73d01a9cafc1ee8cc91f9691b5234e2a59bb98",
      "tree": "e9494ea1f9db74e879fc6d4ca0ce4dde47239a28",
      "parents": [
        "fe4f3ae33c8da86585399b4167fd7987c8a16066"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 04 11:44:54 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 09:15:25 2010 -0700"
      },
      "message": "Cap the number of notifications that a given package can post.\n\nRight now the number is 50, just to prevent apps that have gone completely bonkers.  I think the limit should be lower.\n\nChange-Id: Ib2c4abf669c8b0250e5421b6d5aeb81aeb2f82ce\n"
    },
    {
      "commit": "fe4f3ae33c8da86585399b4167fd7987c8a16066",
      "tree": "9d106e681a8f94a024ecd87ce50f584991e99d6b",
      "parents": [
        "d2b1f00e1e34cdce0047af7374aa57b1e4b5b040"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 04 11:25:26 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 09:15:25 2010 -0700"
      },
      "message": "Move the usb mass storage notification \u0026 activity into SystemUI.apk.\n\nAlso fix the notification to show properly when the runtime is restarted.\n\nChange-Id: Id0c7ef9f9dc9c9df18428cbaa7db1703f085137e\n"
    }
  ],
  "next": "cd5529a9c72998a0b2e66ea41d3c9afca9c90552"
}
