)]}'
{
  "log": [
    {
      "commit": "3df92c50febef4d5f1f55ab135c32006a123eeae",
      "tree": "e8e4715c06d1b54e80089e77e903945a176282bb",
      "parents": [
        "65dd3949d3a48268ff98e1d15a339e758d765acb",
        "a3d55342be7b4b209b5d794f4bae38ec78c48c3d"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 27 16:44:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 16:44:28 2012 -0700"
      },
      "message": "Merge \"Fix uninstallation tracking in the Backup Manager\""
    },
    {
      "commit": "a3d55342be7b4b209b5d794f4bae38ec78c48c3d",
      "tree": "742e62704d050159cfce4c7e5295bda60fb5e65a",
      "parents": [
        "b3e2e24f789d41d6c38b8ad4c252cf9f6e2122d8"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 27 13:16:18 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 27 16:29:35 2012 -0700"
      },
      "message": "Fix uninstallation tracking in the Backup Manager\n\nThis never worked properly; now it does.  We also no longer\ndo a redundant pair of remove/add operations when a package is\nupdated.\n\nBonus memory savings: we were keeping sets of ApplicationInfo\nobjects as part of the ongoing bookkeeping, but those were no longer\nbeing used for anything other than the package names.  That\u0027s been\ntossed out now and only the name strings are now used; hooray for\nmemory savings!\n\nChange-Id: I4c6e592a1680e28550bcb4f76789260ded22280d\n"
    },
    {
      "commit": "8b5bce8d9060c1b68b5605da8f6978d8fb5ea1d3",
      "tree": "8d55688177077766d695140c3bce18e2c38720c8",
      "parents": [
        "79763f3ce7495dfb3866989a05b64a5eeae50860",
        "135936072b24b090fb63940aea41b408d855a4f3"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 27 11:24:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 11:24:54 2012 -0700"
      },
      "message": "Merge \"User management and switching\""
    },
    {
      "commit": "135936072b24b090fb63940aea41b408d855a4f3",
      "tree": "c10e6a7642df4246937bb6fbd7277b642daf3eee",
      "parents": [
        "0c44525a4888de321c9497204d59c8515f828499"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 16:16:17 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 27 11:23:01 2012 -0700"
      },
      "message": "User management and switching\n\nBroadcast intents that get sent out when users are added/removed/switched.\n\nMore work on generating user-specific information in package manager queries.\nAPIs to update user name and query a user by id.\nRemoved Package.mSetStopped and mSetEnabled, since they\u0027re not user specific.\n\nUser removal:\n- Cleanup ActivityManager, PackageManager, WallpaperManager, AppWidgetService\n  and AccountManager.\n- Shutdown processes belonging to the user.\n\nDon\u0027t show vibrate option in long-press power if there\u0027s no vibrator.\n\nLock the screen when switching users, to force unlocking.\n\nChange-Id: Ib23a721cb75285eef5fd6ba8c7272462764038fa\n"
    },
    {
      "commit": "79763f3ce7495dfb3866989a05b64a5eeae50860",
      "tree": "4022231327368cea8e159520ac8c40efc6d5a5d9",
      "parents": [
        "40bd578db80c639c5b715cf99d0f6c3b1b9930e9",
        "857d6c27f28066769ead37c4e88e88a5a321bc5f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 27 10:54:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 10:54:35 2012 -0700"
      },
      "message": "Merge \"Fixed headset detection broken on stingray\""
    },
    {
      "commit": "b3cbd0b4d827577b3b8ad34106779c67a48701dd",
      "tree": "36003bfa78a6caa291e435a70e15f6cba5c2a494",
      "parents": [
        "628e2345ccca4f5c6572ebaa6edf727a42095937",
        "a2c77053b8dfa5f06bdd927bdbab4df2d00bb4e2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 26 17:27:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 17:27:16 2012 -0700"
      },
      "message": "Merge \"Refactor animation out of WindowState.\""
    },
    {
      "commit": "a2c77053b8dfa5f06bdd927bdbab4df2d00bb4e2",
      "tree": "b051b37794f261f98c3c885d0aab7c96f8b7e452",
      "parents": [
        "e300d828282645759abfbc5725c5ccc448e8c053"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 26 12:14:43 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 26 12:14:43 2012 -0700"
      },
      "message": "Refactor animation out of WindowState.\n\nRemove the animation stepping from WindowState and move it into a new\nclass, WindowStateAnimator. Update all references to moved variables\nin related files.\n\nChange-Id: I7540d8f897b370c73975f3ffe450140861cb0cd1\n"
    },
    {
      "commit": "dcbe048f4df9735c8d22f5a801c582cadcf35539",
      "tree": "2702d2f6a8589faba0598f38dd1073140ea31226",
      "parents": [
        "a561965842d0737d0781dc03b72d88802025cd1c",
        "4accb6a88bcd8521db1cd7cf438abd292e38741e"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Mon Mar 26 11:29:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 11:29:09 2012 -0700"
      },
      "message": "Merge \"Fix bug: don\u0027t show system bar in app thumbnails\""
    },
    {
      "commit": "eba00ce996d6646f558f25890f0a551de8e7ecf7",
      "tree": "d22e8a9962db04e90d3018990dfa1c70c11f2ae7",
      "parents": [
        "a026b48972316d05a75b6dde883be39b1e046891",
        "69dc66e91bcf1d982ae23b7c67cf82d6dd0e8056"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 11:12:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 11:12:28 2012 -0700"
      },
      "message": "Merge \"Okay now let\u0027s really turn it off.\""
    },
    {
      "commit": "69dc66e91bcf1d982ae23b7c67cf82d6dd0e8056",
      "tree": "4e5f780ebe704c26d7bc0844e6a9d54683addbc6",
      "parents": [
        "551d0b1f2ae3b4747ff38abbf8efa904e14fd368"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:50:54 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:50:54 2012 -0700"
      },
      "message": "Okay now let\u0027s really turn it off.\n\nChange-Id: Idda3c13339a6a29a300555d31e67219c9af4ae68\n"
    },
    {
      "commit": "a026b48972316d05a75b6dde883be39b1e046891",
      "tree": "f36a4c04440b47f303668b2d2633db49a53449c3",
      "parents": [
        "e300d828282645759abfbc5725c5ccc448e8c053",
        "551d0b1f2ae3b4747ff38abbf8efa904e14fd368"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:40:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 10:40:50 2012 -0700"
      },
      "message": "Merge \"Turn off \"too slow\" logs.\""
    },
    {
      "commit": "551d0b1f2ae3b4747ff38abbf8efa904e14fd368",
      "tree": "fb59c1fd7e437736e403fcea71eed0e18168679b",
      "parents": [
        "7cf4640e812a86451d17514f01bb7ffa5e56c33b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:25:59 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:25:59 2012 -0700"
      },
      "message": "Turn off \"too slow\" logs.\n\nChange-Id: I6ec306ca1c55226269c4644a869a984c4fa00f0d\n"
    },
    {
      "commit": "4accb6a88bcd8521db1cd7cf438abd292e38741e",
      "tree": "c6fd410fc6d859efa13cc86c582e719d91f666ef",
      "parents": [
        "c9f67764a856544446d44a3b377081f7fde3966c"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Mon Mar 26 09:18:46 2012 -0700"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Mon Mar 26 09:42:35 2012 -0700"
      },
      "message": "Fix bug: don\u0027t show system bar in app thumbnails\n\nBug: 5953608\nChange-Id: Ib730638fe130f287ff446db0c6cd42efc5746c5c\n"
    },
    {
      "commit": "c9f67764a856544446d44a3b377081f7fde3966c",
      "tree": "c26bab4c5a08c62e1ae26364cbbc9ac5b1e28e59",
      "parents": [
        "83e675f5ecf9f5615f3179ac102176faa3ae2596",
        "cf8cbbe77447d9cca28e789c5ec4e714694ab37d"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun Mar 25 22:01:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Mar 25 22:01:18 2012 -0700"
      },
      "message": "Merge \"Skip layout if performShow fails.\""
    },
    {
      "commit": "cf8cbbe77447d9cca28e789c5ec4e714694ab37d",
      "tree": "e9fc2869f14129ab391caaea75ab6d1f179b52d9",
      "parents": [
        "2cd24ecf61e374d8b9feafec78ccefb5d3ae647e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun Mar 25 21:54:36 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun Mar 25 21:54:36 2012 -0700"
      },
      "message": "Skip layout if performShow fails.\n\nIn cases where a Surface does not go from hidden to shown, do not set\nthe perform layout flag. This keeps us out of repeated passes through\nthe layout code.\n\nFixes bug 6222487.\n\nChange-Id: I22601bef5733d2f996a8cbdd50d6b89517bc3122\n"
    },
    {
      "commit": "a6deda436baf0df70438b0d9d795bb420b120114",
      "tree": "a7fdb17da680a7a5e3720f6273394be78a684005",
      "parents": [
        "0c44525a4888de321c9497204d59c8515f828499",
        "0abf6a001461a4c2ea31ddc44a60b003b4e0554d"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 17:52:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 17:52:25 2012 -0700"
      },
      "message": "Merge \"Don\u0027t crash when wiping backup data redundantly in the local transport\""
    },
    {
      "commit": "0abf6a001461a4c2ea31ddc44a60b003b4e0554d",
      "tree": "5abf436d6a7b166f9084d60482ca933ca8716d6f",
      "parents": [
        "243806cfeb72e46b39994b2ec3b0908fc7fcc973"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 17:45:15 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 17:47:58 2012 -0700"
      },
      "message": "Don\u0027t crash when wiping backup data redundantly in the local transport\n\nPreviously, if using the \"local\" debugging transport:\n\n    adb shell bmgr wipe com.android.browser\n    adb shell bmgr wipe com.android.browser\n\n... would bring down the runtime.  This no longer happens.  The fix\ncovers two aspects of the situation:  1. the local transport no longer\nblows up in this use case, and 2. the backup manager itself now catches\nblowups on the part of the transport, and tidies up after them.\n\nBug 6205185\n\nChange-Id: Ieb9b8827a62523148ad5a0ec15b05a954d198b3d\n"
    },
    {
      "commit": "857d6c27f28066769ead37c4e88e88a5a321bc5f",
      "tree": "64508293697b896693dba3e50687c1af825b9e97",
      "parents": [
        "2e842a58ebbc3a8a0599dfb0c19d7cda7ed21e5f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 23 17:24:07 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 23 17:32:37 2012 -0700"
      },
      "message": "Fixed headset detection broken on stingray\n\ncommit 5e64321e broke the headset detection on stingray.\nThis is because the name passed with the UEvent upon headset insertion/removal is\ndifferent from the dev path (h2w). It actually indicates the type of headset connected.\n\nThe fix consists in using the dev path received with the UEvent to find the corresponding\nentry in uEventInfo.\n\nChange-Id: I8481cfa17a7af3c8f5d83fc87d0f7c0d2c981098\n"
    },
    {
      "commit": "d5f2374e13a7bcefbc7252b814d128794f22af93",
      "tree": "0dcfde0da6a47ebf42cffe9c2c192fb6947630f6",
      "parents": [
        "9321ad6a7567a28116f15240688d474993539922",
        "bb1449b392b4fb14f17fa747c2261d7195405df3"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 23 16:20:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 16:20:47 2012 -0700"
      },
      "message": "Merge \"Reset layout needed at each animation step.\""
    },
    {
      "commit": "bb1449b392b4fb14f17fa747c2261d7195405df3",
      "tree": "4650ad11d3c2e94aa07979a55374d3eabd869467",
      "parents": [
        "764983d16925daeeba3f29fd1f844187655d1386"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 23 16:11:14 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 23 16:11:14 2012 -0700"
      },
      "message": "Reset layout needed at each animation step.\n\nThe member variable WindowAnimator.mPendingLayoutChanges was never\nbeing reset to 0. Consequently once it was set it was causing endless\ncalls to the layout method.\n\nFixes bug 6208114, 6220403, 6219546.\n\nFixed NPE in RecentsPanelView.\n\nChange-Id: Ie529b8f31e535543cb5ae0af9447146306b14eeb\n"
    },
    {
      "commit": "69f819b397e5e4b50b1931da6ef1caba0229640a",
      "tree": "20e9ae659dc16338fb20faab562a8dedf5b5ad0f",
      "parents": [
        "7cf4640e812a86451d17514f01bb7ffa5e56c33b",
        "b9a070189c2280a6356a8abb9483b517a41e14c3"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 23 15:21:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 15:21:00 2012 -0700"
      },
      "message": "Merge \"Include GIDs for unenforced permissions.\""
    },
    {
      "commit": "7cf4640e812a86451d17514f01bb7ffa5e56c33b",
      "tree": "e3e3ede8d6f902921bac5be358bae5bb59d0b2b2",
      "parents": [
        "3e93e433e28a617bb1c85958dde8d7fd11e327a5",
        "8078d8c8a282ca81344febe7256f63b1e805e3aa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 23 15:00:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 15:00:59 2012 -0700"
      },
      "message": "Merge \"Add new thumbnail animation.\""
    },
    {
      "commit": "8078d8c8a282ca81344febe7256f63b1e805e3aa",
      "tree": "6bfb8ab0a389c2ae344088017bd0ceee1e913660",
      "parents": [
        "3c4da3cad04ca878a4a37fcca3f3e2ff51d03fcb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 20 11:11:26 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 23 14:13:13 2012 -0700"
      },
      "message": "Add new thumbnail animation.\n\nUse it for recent tasks switching.\n\nNot perfect yet by far, but something.\n\nAlso fix issue #6186758: Twitter crashes after tapping on a tweet on JRM75D\n\nChange-Id: I49bf6c94aafde875ac652dedaf96d6c08cc9e7d2\n"
    },
    {
      "commit": "5b6f07b46122a0a1f057b28f1c07cbc74e592660",
      "tree": "1afef69430d6403f4c751d70d7b2fdb59f199855",
      "parents": [
        "0aa4713e47a53377720a043cf1b043ce31cb73da",
        "aa0c02d22182011b2add83b56ef96a303fa53ee0"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 14:01:40 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 14:01:40 2012 -0700"
      },
      "message": "Merge \"Deal gracefully with fatal exceptions during full backup\""
    },
    {
      "commit": "aa0c02d22182011b2add83b56ef96a303fa53ee0",
      "tree": "3de1eb26401798fd4584d7624590bd16c0927f74",
      "parents": [
        "54c546223cd550d2995ec6d956a8e7963311a0a6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 13:56:34 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 13:56:34 2012 -0700"
      },
      "message": "Deal gracefully with fatal exceptions during full backup\n\nIn particular, if the low-level zip or crypto layers of the output\npipeline throw, the output becomes invalid at that point, but we\nwere not properly detecting this; we were missing the exception and\nthe runtime was going down.  Now we catch any such fatal exception\nand make sure to shut down the backup operation cleanly, leaving\nthe output at whatever point in its construction that it had\nachieved.\n\nBug 6131870\n\nChange-Id: If0fe0337857404b776f407a79d11dd88b8e60fd0\n"
    },
    {
      "commit": "9c2efb35e23eb875e8d901c39a94ce9dc14bf0dc",
      "tree": "b9253e68c2a48de250035577c30302b5df588c9c",
      "parents": [
        "54c546223cd550d2995ec6d956a8e7963311a0a6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 13:00:05 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 13:00:05 2012 -0700"
      },
      "message": "Sanity-check backup agent name prior to instantiation\n\nFixes a crash that would occur if an app with a pending backup\npass in the pipeline was updated to remove its agent declaration\nfrom the manifest (or other more esoteric ways that a backup\npass was expected to run for an app without their own agent).\n\nBug 5776591\n\nChange-Id: I5a8bc8c12de6a2bfa82f5093fe3a15b754109ab1\n"
    },
    {
      "commit": "b9a070189c2280a6356a8abb9483b517a41e14c3",
      "tree": "765b97cec4325ef361196f0efbc5e911506028ac",
      "parents": [
        "cae04a29da1334aa160ac44f7430411c23cebd1b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 22 17:00:04 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 23 10:22:54 2012 -0700"
      },
      "message": "Include GIDs for unenforced permissions.\n\nWhen READ_EXTERNAL_STORAGE isn\u0027t enforced, grant its GID to all\nlaunched processes.  When changing enforcement, kill all processes\nbelow foreground adjustment, causing them to be relaunched with\nupdate GIDs.\n\nBug: 6131916\nChange-Id: I6d83efc937919f13a1a7d9caac902e572869406a\n"
    },
    {
      "commit": "54c546223cd550d2995ec6d956a8e7963311a0a6",
      "tree": "c379bd448ac2daf8e044644a7c58231603cc1214",
      "parents": [
        "8dde7e29fb514d4f3106766e23ca05d82bc2d7d4",
        "764983d16925daeeba3f29fd1f844187655d1386"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 22 17:15:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 17:15:17 2012 -0700"
      },
      "message": "Merge \"Separate animation into separate class.\""
    },
    {
      "commit": "764983d16925daeeba3f29fd1f844187655d1386",
      "tree": "47a0967bfd01667b746413cf338b8d3fb1203229",
      "parents": [
        "9a69fea81d43b79a6e4c2d808438b9e6690a7e4c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 22 11:37:36 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 22 16:46:01 2012 -0700"
      },
      "message": "Separate animation into separate class.\n\nIntroduction of the class WindowAnimator which takes care of all\nanimations stepping and Surface operations.\n\nChange-Id: I78f1c269fa57df0616c08adbe156e3059709ae48\n"
    },
    {
      "commit": "ced11a5bc4495eaa51a4d6675b2d4e296a130049",
      "tree": "ffdf68c388135cf4d66d606fdb36f45f9b92f716",
      "parents": [
        "1c8e0a074be475e653a7263688bd818120d17a45",
        "1b6989cdc212aec7579489a362f99b791abe7352"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Mar 22 15:16:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 15:16:03 2012 -0700"
      },
      "message": "Merge changes I35a76a27,I04bb7ad4,If38a1a10,Ice5be6e5,I009e443f,I968ddf90,I69d4e518,I09b1dfc9\n\n* changes:\n  Merge commit \u002774803dc\u0027\n  add config_bluetooth_default_profiles config var and use it to disable bt profiles\n  Do not allow Surface creation on machines without SurfaceFlinger We will fail later anyways, but this change makes it much easier to track down places where we are inadvertently doing operations that depend on the flinger.\n  fix setting only usb mode\n  Detect (at runtime) kernel support for the \"hdmi_audio\" switch.\n  Add a config resource to disable key-chord screenshotting\n  Do not assume that there is always a running activity (Necessary for headless devices)\n  Add batch volume adjust support to adjustMasterVolume() in AudioManager and AudioService.\n"
    },
    {
      "commit": "11c0ab9a0810a9007228db197acd27c274f0d08d",
      "tree": "d8ac8d44bc06691ab493b0fb003f4cdd9e2a2f5c",
      "parents": [
        "ad812a23df775062f0185076557e7f3fdfa57943",
        "86548c472afc3700969fafb42b7ce6aa6dae0005"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Mar 22 15:13:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 15:13:20 2012 -0700"
      },
      "message": "Merge \"ActivityManagerService: Disable app crashed dialog on headless builds\""
    },
    {
      "commit": "ad812a23df775062f0185076557e7f3fdfa57943",
      "tree": "d170b440d49fb188203bfe2d2b72f844d6b8a0f0",
      "parents": [
        "df78cd5ee959f57c35dd9d6ad0f6871c72438f3c",
        "483f3b06ea84440a082e21b68ec2c2e54046f5a6"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 15:11:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 15:11:51 2012 -0700"
      },
      "message": "Merge \"Package restrictions per user\""
    },
    {
      "commit": "dab2072365565b4892be7910b0cdb870e83689f6",
      "tree": "e0cc3dd8a9e3eeca5db66d417339bd03d7958861",
      "parents": [
        "5e64321ebfc0a3225bc4e4828d3c29d719db450a"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Mar 07 17:53:36 2012 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Mar 22 15:09:36 2012 -0700"
      },
      "message": "fix setting only usb mode\n\nIf you cleared the last usb mode it would fail (and so would setting\nit if you started with none). This fixes it to set and unset the\nlast property correctly.\n\nChange-Id: Ice5be6e57b6ca6b8c9241b0ac62071a3bc72606a\n"
    },
    {
      "commit": "5e64321ebfc0a3225bc4e4828d3c29d719db450a",
      "tree": "0bed823398c0bd79d23e6fdf45532189e6567a5e",
      "parents": [
        "e90585f89d550a61e3efd5050efdc5be2be494af"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Mar 05 16:01:26 2012 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Mar 22 15:09:29 2012 -0700"
      },
      "message": "Detect (at runtime) kernel support for the \"hdmi_audio\" switch.\n\nA new switch was introduced in AndroidAtHome to deal with a race\ncondition between the WiredAccessoryObserver and the HW composer HAL.\nWhen the new switch (\"hdmi_audio\") is present, we want to pay\nattention to it instead of paying attention to the old switch\n(\"hdmi\").  This change checks at startup for the presence or absence\nof the new switch and uses it if available, otherwise it falls back on\nclassic behavior.\n\nsee change ID I960cfc2f3e8df5342e7248a26fd313fdad2ca322 for the kernel\nside changes.\n\nsee bug 6023647 for a discussion of the issue.\n\nChange-Id: I009e443f25662e7beb233e892ca71034b05ebfc2\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "d87a9be444874d62fcfa70a9d48b7dc4f5f5948e",
      "tree": "5724c8b25990dd6541267d6dca309c3627f63231",
      "parents": [
        "6c798970ccb8759d1e613b57111daa8da0ab44c7"
      ],
      "author": {
        "name": "Kevin Hester-Chow",
        "email": "khester@google.com",
        "time": "Mon Mar 05 08:01:00 2012 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Mar 22 15:09:21 2012 -0700"
      },
      "message": "Do not assume that there is always a running activity\n(Necessary for headless devices)\n\nChange-Id: I69d4e518df99a02f2fbf19a9d86a693cea292f80\n"
    },
    {
      "commit": "86548c472afc3700969fafb42b7ce6aa6dae0005",
      "tree": "1485858b36f0df289c89607333e81ffe92896390",
      "parents": [
        "4355b001cb736d4aa312231ce129506a3c7f6808"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 13 17:21:46 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Mar 22 15:09:00 2012 -0700"
      },
      "message": "ActivityManagerService: Disable app crashed dialog on headless builds\n\nChange-Id: I78bf2cb2cd9f99db57f447b7bfaca80c4fefbd66\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "370f2dbc372116f986274ff2552b5ecfdce7d29a",
      "tree": "915d2c72d65d2b16f37fd48f1966484d23092307",
      "parents": [
        "bf30911bf1894506793fccea24deca2e9208b3b4",
        "8a8b581e669f6187b397f856a567a76ed8aba2c2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 22 11:13:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 11:13:54 2012 -0700"
      },
      "message": "Merge \"Move network policy to per-appId (instead of UID).\""
    },
    {
      "commit": "8a8b581e669f6187b397f856a567a76ed8aba2c2",
      "tree": "9f917d1d3703c537728f42b35768e77a44f068c8",
      "parents": [
        "e5b2b644b1c48026cd3a58fb9267b708b774ae6a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 21 18:13:36 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 22 11:02:43 2012 -0700"
      },
      "message": "Move network policy to per-appId (instead of UID).\n\nTo support multi-user, store network policy per-appId and expand to\napply rules to all UserInfo on device.\n\nBug: 6140462\nChange-Id: Ic0866b4d41c8c60cc1c0a597f0de927b92b65b1e\n"
    },
    {
      "commit": "483f3b06ea84440a082e21b68ec2c2e54046f5a6",
      "tree": "cc0dff8ea3d133a4dc910bc1e90c85380cea2064",
      "parents": [
        "8fca15f1f2273fa429e58f783d0970251d0942e5"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 13 16:08:00 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 10:08:24 2012 -0700"
      },
      "message": "Package restrictions per user\n\nPackages can be enabled/disabled per user.\nThis requires maintaining stopped/launched states and\nenabled / disabled components and packages per user.\n\nRefactored pm.Settings and PackageSettingsBase to keep\ntrack of states per user.\n\nMigrated the stopped-packages.xml to users/\u003cu\u003e/package-restrictions.xml\n\nChanged intent resolution to handle individual user restrictions.\nBunch of IPackageManager calls now have a userId argument.\nMake AppWidgetService handle removals of packages.\n\nAdded some tests for pm.Settings and PackageManager.\n\nChange-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861\n"
    },
    {
      "commit": "03273d00ce1d7b4ebde95994732dd80204ba7e68",
      "tree": "daa0a0f8d9474c847f9012f8664baf53030b5287",
      "parents": [
        "006f0e41abca961bade88908d7ef56ae63c429fb"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 21 11:52:40 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 21 11:52:40 2012 -0700"
      },
      "message": "Continue animations started from AppWindowToken.\n\nAnimations that were started from AppWindowToken.showAllWindowsLocked\nwere not setting mInnerFields.mAnimating and hence the animations were\nnot progressing. This resulted in popups such as menus and time/date\nsettings not showing up.\n\nFixes bug 6205076.\n\nChange-Id: I4daae5895e64182328671e282331f14dd5561d5e\n"
    },
    {
      "commit": "6d332c514805798a9a545999e7f0d6d83a6a35d1",
      "tree": "597742623a901b7189c9090099c866904a26d2ae",
      "parents": [
        "ad32461ec14593e57a5fb107f4796276656f2a23",
        "2fb98b147b58210604dfaf1482f635ce8d8a0575"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 21 09:21:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 09:21:39 2012 -0700"
      },
      "message": "Merge \"Minor refactoring prior to major refactoring.\""
    },
    {
      "commit": "e5b2b644b1c48026cd3a58fb9267b708b774ae6a",
      "tree": "ac5274c5f00b1479283f17ea6122acb544579e03",
      "parents": [
        "829aaeea91686d918bc3ea7d86320395a25ec3f8",
        "948eef82546c15086d0b78ce18ee874aa5c634f7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 18:00:29 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 18:00:29 2012 -0700"
      },
      "message": "Merge \"Remove unused android.net.Downloads.\""
    },
    {
      "commit": "948eef82546c15086d0b78ce18ee874aa5c634f7",
      "tree": "76eedd51d5a15dc52e1ac6104bbb6e7808a1e401",
      "parents": [
        "127d4deab1606527777160d4ace3b92baae8b67f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 17:44:42 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 17:58:27 2012 -0700"
      },
      "message": "Remove unused android.net.Downloads.\n\nIt\u0027s another set of constants that can be confused with those in\nandroid.provider.Downloads.\n\nChange-Id: I78ac058fa264d59a81f7655ab101c3fb2c8c17ff\n"
    },
    {
      "commit": "3a66cf3e86f351f0957188a4b874a3e65edfa40f",
      "tree": "890070eeaac0a72ffbabfbea92672979f7cb54e0",
      "parents": [
        "127d4deab1606527777160d4ace3b92baae8b67f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 17:00:01 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 17:45:23 2012 -0700"
      },
      "message": "Avoid data usage notifications in airplane mode.\n\nOnly for mobile networks.\n\nBug: 5995839\nChange-Id: I6a6dba8cfe98c8e72861f90665c3e41da6d9a474\n"
    },
    {
      "commit": "2fb98b147b58210604dfaf1482f635ce8d8a0575",
      "tree": "0c8f563852bc7f74a7264e88913ab8c4c0bebac6",
      "parents": [
        "d3ae220286c2f98ec7739d228a85a24987759506"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 20 17:24:00 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 20 17:24:00 2012 -0700"
      },
      "message": "Minor refactoring prior to major refactoring.\n\nRemoval of blur layer.\nDeferral of Surface actions in BlackFrame from ctor to first use.\nCombine common test into single method okToDisplay().\nRemove redundant logic in DimAnimator.\n\nChange-Id: I43af0415794a8f142803ce94d7e17539aafac67d\n"
    },
    {
      "commit": "481cb7ea386d110bd1d0c6e224d3989546344457",
      "tree": "eb0f43550ce4f97a99f5aaac08adf2613a80969b",
      "parents": [
        "f57bdf3a2b5b8833fc1ded877bbf6ed232205d1e",
        "837f9242ae2e8f5f380d0b30b8fffbc68494914f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 16:54:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 16:54:51 2012 -0700"
      },
      "message": "Merge \"Remember when NetworkPolicy was inferred.\""
    },
    {
      "commit": "837f9242ae2e8f5f380d0b30b8fffbc68494914f",
      "tree": "523e03187bc8cb24beec3fbb9310588159337af8",
      "parents": [
        "edc84ee8392afa0102f098168329db5bb43a6d4b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 16:52:20 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 16:52:20 2012 -0700"
      },
      "message": "Remember when NetworkPolicy was inferred.\n\nThis helps future-proof NPMS if we need to correct default policies\nafter an upgrade.\n\nChange-Id: I0ddfdeaf41757a46aeb867c91d495ccf981d544b\n"
    },
    {
      "commit": "d3ae220286c2f98ec7739d228a85a24987759506",
      "tree": "3220510effd842ba4edda36b3a58cbc7ca6d3a5e",
      "parents": [
        "0b83efb64ac6dcc1e59dc13367a623ed1e2dec71",
        "22ce1414a0073b5cddadf1da8475f6fb7b409e44"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 20 12:46:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 12:46:48 2012 -0700"
      },
      "message": "Merge \"Fix flickering when starting and ending apps.\""
    },
    {
      "commit": "22ce1414a0073b5cddadf1da8475f6fb7b409e44",
      "tree": "449cef06da5bbbc27ab00f4c8fdf8d099abb0c1b",
      "parents": [
        "f6b8f7b34f5fe94cd1d8753ec356b967293f1f9c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 20 10:16:26 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 20 10:16:26 2012 -0700"
      },
      "message": "Fix flickering when starting and ending apps.\n\nSurfaces were displaying animations in their entirety for a single\nframe before the animation kicked in. This caused a flash on the\nscreen. By setting the animation to invisible (alpha\u003d0) at their\nstart it makes no difference if they are displayed.\n\nFixed bug 6176540.\n\nRemoved redundant mDimAnimator.show call.\n\nChange-Id: I47c1b0d38273b011d9115822a8476671d6a050fc\n"
    },
    {
      "commit": "09f5aededa1568f59bbe014ce5199ebca35a93b8",
      "tree": "99ccbe34f133d94ff79a4a0f94b84d29ddd6a024",
      "parents": [
        "975e04c24494cf4515a61f3bcf6b25fb5f565f4f",
        "edc84ee8392afa0102f098168329db5bb43a6d4b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 19 19:24:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 19:24:04 2012 -0700"
      },
      "message": "Merge \"Selective enforcement of READ_EXTERNAL_STORAGE.\""
    },
    {
      "commit": "edc84ee8392afa0102f098168329db5bb43a6d4b",
      "tree": "73b87a485d53936cfd5c5c18f4f33b827ce8890d",
      "parents": [
        "80a6b33be276eb6c808fce13debb4bb7a489cdad"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 19 16:52:26 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 19 19:01:45 2012 -0700"
      },
      "message": "Selective enforcement of READ_EXTERNAL_STORAGE.\n\nStore enforcement state of specific permissions, allowing them to be\nselectively enforced. Currently supports READ_EXTERNAL_STORAGE, which\nby default isn\u0027t enforced, but enforcement can be enabled at runtime.\n\nBug: 6131916\nChange-Id: I4bcc215a2eb5e6507d6257b577311cbd13c77acf\n"
    },
    {
      "commit": "7a2195cdd33f27c79eda343defc1f7ccf59cc8ac",
      "tree": "a0964fae7ec6d7e39f3ed6a50d4092a1a3028f05",
      "parents": [
        "f6b8f7b34f5fe94cd1d8753ec356b967293f1f9c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 19 17:38:00 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 19 17:41:10 2012 -0700"
      },
      "message": "Start using the new activity options argument.\n\nNew class lets you make an options bundle defining a custom animation,\nas an alternative to Activity.overridePendingTransition().\n\nChange-Id: I8e209bf52398a98ab9f1bcafa1ec0a580dae57c0\n"
    },
    {
      "commit": "dea50f05e43b2ad6ea392d7ddfbfa691f6903734",
      "tree": "8194b7e0e4ba1df8340d9ca91a64f96a9bb8b1d7",
      "parents": [
        "06ba42d5fb2a5e6cf97772558bb6b1324eac5623",
        "d6b32b6178238361ffd1b428120942858de78428"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 18:29:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 18:29:16 2012 -0700"
      },
      "message": "Merge \"More work on rotation animation.\""
    },
    {
      "commit": "d6b32b6178238361ffd1b428120942858de78428",
      "tree": "5498320e12ef004bd3d92ed3d6c160f2d7ce8c13",
      "parents": [
        "4108fbc299bb0c02293ff53fa670308ed81607f7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 11:54:51 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 18:20:07 2012 -0700"
      },
      "message": "More work on rotation animation.\n\nChange-Id: Ib8206db98b68cb1e0b16e4c55d949e80ff31bd9f\n"
    },
    {
      "commit": "d87eb6c7c686182aaf0e7dd6facacb9e229f9684",
      "tree": "205ebc25b2cd0bd7197017b4a457d81f4140a63e",
      "parents": [
        "9e4fdfae11b921b57d5e12cbc1ad0fbc8daab41e",
        "0059d3508f3c5346d4ea07d4ada3e1827e4c8a01"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 16 15:35:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 15:35:21 2012 -0700"
      },
      "message": "Merge \"Fix black screen on app transition.\""
    },
    {
      "commit": "0059d3508f3c5346d4ea07d4ada3e1827e4c8a01",
      "tree": "50fd870181dc4391eb5014e382f2c83fc4d8f270",
      "parents": [
        "1dd3ed09e8623574ef21fd48354eaa46d1edd9ee"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 16 15:26:01 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 16 15:26:01 2012 -0700"
      },
      "message": "Fix black screen on app transition.\n\nThe layer adjustment to an animating window upon completion was masking\nthe window behind the mWindowAnimationBackgroundSurface, a DimSurface.\nThe DimSurface was not being hidden because the step was happening too\nlate. Swapping the order of performAnimationsLocked and\nupdateWindowsAppsAndRotationAnimationsLocked fixes this ordering issue.\n\nFixes bug 6185920.\n\nChange-Id: I0ff64c019e821fa3a92505ac6351f2648897e592\n"
    },
    {
      "commit": "baad5d5f0de40c4b161aaf8bb87aee4e57784c50",
      "tree": "7b6f6bb875bf4285c0f383cd3d632618ecd25654",
      "parents": [
        "b070521ee1403788ee6acc4b1ed11e374192d40b",
        "29ba7e66804e91cbd05fed74893061b4971ec52b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 15:19:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 15:19:51 2012 -0700"
      },
      "message": "Merge \"resolved conflicts for merge of 354e0346 to master\""
    },
    {
      "commit": "29ba7e66804e91cbd05fed74893061b4971ec52b",
      "tree": "ca4939082344887f6879023a0a08801ab2092e3e",
      "parents": [
        "4108fbc299bb0c02293ff53fa670308ed81607f7",
        "354e034697d667fbab5d3f9af28704dca4ad7b12"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 15:03:36 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 15:03:36 2012 -0700"
      },
      "message": "resolved conflicts for merge of 354e0346 to master\n\nChange-Id: I432f5f43aa1e19c6a474e8656fe0e3715828e8af\n"
    },
    {
      "commit": "1dd3ed09e8623574ef21fd48354eaa46d1edd9ee",
      "tree": "7871645397ccca6953580176633127cec052719b",
      "parents": [
        "4108fbc299bb0c02293ff53fa670308ed81607f7"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 16 14:01:16 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 16 14:05:07 2012 -0700"
      },
      "message": "Perform finish animation actions.\n\nWhen stepAnimation returns false, do not return false immediately.\nInstead carry out finish actions. Also, remove state machine that is no\nlonger necessary.\n\nFixes bug 6184070.\n\nChange-Id: I530eb2b62b864bbce929f573d10b31b102152f1f\n"
    },
    {
      "commit": "c032a73b511d4006e083a646b7dd23d54ed373ac",
      "tree": "e2455e95c160534c644a277121da7e7f525e6b4c",
      "parents": [
        "c8e83aa73e174be163649bb80989b9099fbb74cf",
        "ce06c000b4133c63414c3244c3325e25315ab179"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 11:55:05 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 11:55:05 2012 -0700"
      },
      "message": "am ce06c000: Merge \"Debugging code for #6169553: Make Phone launch faster\" into ics-mr1\n\n* commit \u0027ce06c000b4133c63414c3244c3325e25315ab179\u0027:\n  Debugging code for #6169553: Make Phone launch faster\n"
    },
    {
      "commit": "2937a9ea0a81a0400f0189221f775561ff3b0a6c",
      "tree": "8d39e879eadbcd30f2cf985065a15afb26327127",
      "parents": [
        "996598bf30b65d5bc099f3315a8da80368e74961",
        "d4dd7716fb825f29a609c5c4cb31204eea78183a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 16 11:40:40 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 11:40:40 2012 -0700"
      },
      "message": "Merge \"Combine network subtypes by default.\""
    },
    {
      "commit": "d4dd7716fb825f29a609c5c4cb31204eea78183a",
      "tree": "1484e5809d3834b2c317f588d38fd6e69a8af276",
      "parents": [
        "e82a54aedc45ed2c06e62a14947d4f56c823221d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 16 11:11:54 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 16 11:35:29 2012 -0700"
      },
      "message": "Combine network subtypes by default.\n\nSubtype controls (3G-vs-4G) aren\u0027t exposed in the UI, so tracking\ndata with that granularity creates unnecessary overhead. For example,\nsome GSM networks can regularly flap between two subtypes.\n\nBug: 6118868\nChange-Id: Id098891dba52336d00d0f96632a7924e228b4713\n"
    },
    {
      "commit": "fe4afa153571890fa684170ebf058e7daeb57531",
      "tree": "12551edbd2a9436f84edc9f93dabb15f8af7bec5",
      "parents": [
        "0e7b094a613d8dc410b393936ddd594dcf05f99f",
        "9da2d403344d7e8b67c966db4f064c4c7a2f5901"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 15 15:50:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 15:50:43 2012 -0700"
      },
      "message": "Merge \"Fix swiping away recents to always kill processes.\""
    },
    {
      "commit": "2a29b3ad1350785aedea3442b38042885533576c",
      "tree": "110eb4b7982347f7fb8bdc309369a98d44ea4993",
      "parents": [
        "7f94977867ae67aa4f75d9db5de94e1233a2d7fe"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 15 15:48:38 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 15 15:48:38 2012 -0700"
      },
      "message": "Debugging code for #6169553: Make Phone launch faster\n\nThe activity manager now has a tick when launching an app every\n500ms, where it collects the current stack traces of the app if\nit hasn\u0027t finished launching.  These traces are included as part\nof dumpstate.\n\nThis is only done on non-user builds.\n\nChange-Id: I7f09ea00aab821ac81795f48c9d68fcca65f89fe\n"
    },
    {
      "commit": "9da2d403344d7e8b67c966db4f064c4c7a2f5901",
      "tree": "84b06415f75e603ba04743a1c7e2059727d1a8f9",
      "parents": [
        "5108b1b3cf51a08ddae609c384233df36ef53de3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 15 13:43:08 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 15 13:43:08 2012 -0700"
      },
      "message": "Fix swiping away recents to always kill processes.\n\nThis would only kill processes if there were activities associated\nwith the recent task; now it always kills processes.\n\nAlways fix some debug output.\n\nChange-Id: Iccda19ba0a20823347b06c13b450587283d28284\n"
    },
    {
      "commit": "bf90eaa5d2410bfb60ef84a0efcf3b5eb5022d9f",
      "tree": "3f32a8542fe6bcc78acc08900a1c59b394c4bd95",
      "parents": [
        "6c25ffb77069a9f39884b8e91e1810254c3e2f03"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 15 11:28:53 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 15 11:34:24 2012 -0700"
      },
      "message": "Separate layout ops from surface ops.\n\nFurther work to isolate layout from animation and surface operations.\nRemove cruft and minor refactoring.\n\nChange-Id: I6f910ed72c7c614996641c353870c2b2ab5e8bb4\n"
    },
    {
      "commit": "f44882ff1c156f9abb7417d075379d1f5a4551f3",
      "tree": "d1b09245acdcb996a51b7ac57fac213e00b7384a",
      "parents": [
        "27fa52701d83da78aea4efb5f389ed4bc41d3c08",
        "e32c30784191a9244a08450759471c934c85034c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 14 16:55:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 16:55:58 2012 -0700"
      },
      "message": "Merge \"Separate out animations from layout.\""
    },
    {
      "commit": "e32c30784191a9244a08450759471c934c85034c",
      "tree": "e591237d719f095d48b05239831c3120e690f116",
      "parents": [
        "a1b09a92d8879f1f385046533628547a118eb558"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 12 15:25:35 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 14 16:09:28 2012 -0700"
      },
      "message": "Separate out animations from layout.\n\n(Dianne) pulled the animation steps out of the layout. Changes to\nexposed layers cause repeated calls to layout code.\n\nCombined animation steps into start and finish animation code.\n\nChange-Id: I3602d1d6249d20987d102a54e3a67a7a39361b55\n"
    },
    {
      "commit": "a4972e951bf2bdb7afdafee95b3ab0c15b8bacae",
      "tree": "9800a9dcd62d945a8ad71549ebcef70393ef5442",
      "parents": [
        "89ea4ca9c26f3c7e365525a0b83500e85517a457"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 14 10:38:05 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 14 12:57:14 2012 -0700"
      },
      "message": "Add new \"options\" argument to all startActivity APIs.\n\nThis will be used to allow new features to be requested...  such as,\nsay, a special kind of animation.  Right now there are no options\ndefined.\n\nChange-Id: I4eb6f27275cdd4bf186f6da316ab93a2372ad4b7\n"
    },
    {
      "commit": "8e94c25f5d7392f299de3b67c49e847cdd103551",
      "tree": "6902558c2696a844c9308879ef9ef9856538cb7f",
      "parents": [
        "1c1d1e7ed7ed2673b22642c6701659146ceaa602",
        "d192598d3e7c6f38fc9deb573b06ababa56d741a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Mar 13 14:13:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 14:13:07 2012 -0700"
      },
      "message": "Merge \"Record the trimmed cmd string for logs\""
    },
    {
      "commit": "d192598d3e7c6f38fc9deb573b06ababa56d741a",
      "tree": "c6d313abf3a6bbb3ffcc1dd3d01cada775fbfe22",
      "parents": [
        "742f4fa8c963e8d7fbbb19328ea7e337eb4911ee"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Mar 12 15:37:40 2012 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Mar 13 12:30:14 2012 -0700"
      },
      "message": "Record the trimmed cmd string for logs\n\nThe over the wire command includes a \\0 that mangles log messages.\nbug:6149176\n\nChange-Id: I77d4e443f1966bff060f1b97570851f7549fee8e\n"
    },
    {
      "commit": "a1b09a92d8879f1f385046533628547a118eb558",
      "tree": "9bacee06df45dcd64a69a1850004b5ebe66e6aa1",
      "parents": [
        "53567a756e34706edbeae7217ad4205c55bb76b6",
        "44bf70fba26146d7e788ec051ee4ab45336de2fa"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 13 12:21:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 12:21:09 2012 -0700"
      },
      "message": "Merge \"Set the reason for screen-off before usage.\""
    },
    {
      "commit": "44bf70fba26146d7e788ec051ee4ab45336de2fa",
      "tree": "5def88d3fd089522666bb6ba6cd3012966fc640e",
      "parents": [
        "5d1907b2f3e624dc838e9658a1986636252ac8b1"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 13 11:38:38 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 13 11:38:38 2012 -0700"
      },
      "message": "Set the reason for screen-off before usage.\n\nAn occasional call sequence through updateLightsLocked ended up storing\nthe old screen-off reason rather than the current screen-off reason.\nThis caused the Keyguard screen to be bypassed when turning back on. By\nsaving the power-off reason in mScreenOffReason prior to calling\nupdateLightsLocked we eliminate this problem.\n\nThe offending calling sequence was:\n  PowerManagerService.setPowerState(..., reason) \u003d\u003e updateLightsLocked\n  \u003d\u003e animateTo \u003d\u003e screenOffFinishedAminatingLocked(mScreenOffReason)\n  \u003d\u003e sendNotificationLocked.\n\nChange-Id: I8ee0b3226f94af7ff7e7b7b0bf54e47fd0c03631\n"
    },
    {
      "commit": "e0247498304f6591eb4b9347e5ad64bc6b63523b",
      "tree": "6fc7aa4b28787af90f653ee7132abe7c89726b77",
      "parents": [
        "ff31fdcd125ef076fac107a55c3843e3370aaa89",
        "8f30d2191eb88d577d6d2ba9874053cfea0091c8"
      ],
      "author": {
        "name": "Daniel Lehmann",
        "email": "lehmannd@google.com",
        "time": "Mon Mar 12 18:30:17 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 12 18:30:17 2012 -0700"
      },
      "message": "am 8f30d219: am f0533f94: am 0e873700: Remove the country detector logging\n\n* commit \u00278f30d2191eb88d577d6d2ba9874053cfea0091c8\u0027:\n  Remove the country detector logging\n"
    },
    {
      "commit": "f0533f9462275eff04491a1a27ee4cb1f4afd581",
      "tree": "75b721c1080f9b14d1985905423f5971065d6e9e",
      "parents": [
        "442612a273981a1b21fdb2e9c19a887ab710224d",
        "0e87370077b322b3a88c345a44c6bf3d56617071"
      ],
      "author": {
        "name": "Daniel Lehmann",
        "email": "lehmannd@google.com",
        "time": "Mon Mar 12 18:24:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 12 18:24:41 2012 -0700"
      },
      "message": "am 0e873700: Remove the country detector logging\n\n* commit \u00270e87370077b322b3a88c345a44c6bf3d56617071\u0027:\n  Remove the country detector logging\n"
    },
    {
      "commit": "13dfcd1f08170df24301e895de0b300c6267ef1e",
      "tree": "1a1b514ef0fe20542588eff2a1cc689dae8200d3",
      "parents": [
        "4faaed97ab331b322afeef8055d740dc7673e1b2",
        "1743b64d87cee56e51dedbe4ad60fa2acc28af9c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 12 18:21:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 12 18:21:25 2012 -0700"
      },
      "message": "Merge \"Dejank: also animate window moves due to requested size changes.\""
    },
    {
      "commit": "4faaed97ab331b322afeef8055d740dc7673e1b2",
      "tree": "21ad27fdbb17b14f2489c2ad2543849ed05f79f5",
      "parents": [
        "b48e0291078e3a7052513572cfb2b19318f6c08c",
        "92a8b22e7410e74e1cba1b856333116652af8a5c"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Mar 12 18:10:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 12 18:10:36 2012 -0700"
      },
      "message": "Merge \"ActivityManager: add option to allow OpenGL trace.\""
    },
    {
      "commit": "1743b64d87cee56e51dedbe4ad60fa2acc28af9c",
      "tree": "2d699fdbd52b7c3917643e61cca63aabb8eabc17",
      "parents": [
        "035c20f5b4f31a2a4b592ff5004fe67fef0106d2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 12 17:04:43 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 12 17:04:43 2012 -0700"
      },
      "message": "Dejank: also animate window moves due to requested size changes.\n\nThis performance an animation when, for example, a dialog window is\nmoved because the size of its content has changed.\n\nChange-Id: I2d79a1a57f94e0f2f8ef706a473fca6c9cc637cf\n"
    },
    {
      "commit": "0e87370077b322b3a88c345a44c6bf3d56617071",
      "tree": "9fa4b8ce60f0e1dea9739ea6cf8462b89f2bf20c",
      "parents": [
        "f4ae6aabbcefe39b3c85b03729c74044f02369d4"
      ],
      "author": {
        "name": "Daniel Lehmann",
        "email": "lehmannd@google.com",
        "time": "Mon Mar 12 17:04:17 2012 -0700"
      },
      "committer": {
        "name": "Daniel Lehmann",
        "email": "lehmannd@google.com",
        "time": "Mon Mar 12 17:04:17 2012 -0700"
      },
      "message": "Remove the country detector logging\n\nBug:6156714\nChange-Id: Id0ff60b0530142e2bce055ee8cf8dde94e974aa5\n"
    },
    {
      "commit": "110a6b6252d6daf9882ece7595bd3613b82448a8",
      "tree": "51824211736f3f33654eec918265fc31e216dcd0",
      "parents": [
        "5d1907b2f3e624dc838e9658a1986636252ac8b1"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 12 11:12:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 12 14:09:34 2012 -0700"
      },
      "message": "Let \u003cpath-permission\u003e block unprotected providers.\n\nWhen accessing a ContentProvider that is unprotected by top-level\npermissions, and caller doesn\u0027t hold a matching \u003cpath-permission\u003e\npermission, revoke the default top-level access.\n\nThis enables an otherwise unprotected provider to enforce permissions\non specific paths.\n\nBug: 6131916\nChange-Id: Icab89f765ccd90b1acea6988b05f00877fe2c11e\n"
    },
    {
      "commit": "92a8b22e7410e74e1cba1b856333116652af8a5c",
      "tree": "fd340b33bdcf7d2b5f84d9f9454a5805efff54b6",
      "parents": [
        "64d10a1da0a702ffeb086ad9c4a632f2712f1dad"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Mar 09 16:24:04 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Mar 12 12:18:53 2012 -0700"
      },
      "message": "ActivityManager: add option to allow OpenGL trace.\n\nThis patch adds an option to enable tracing of OpenGL functions.\nOpenGL tracing can be enabled by passing \"--opengl-trace\" option\nto am start.  This option requires either a device in debug mode,\nor that the application itself has debug permission set.\n\nChange-Id: I77788bfe97c9108943b1f947ce81afe8293d78a0\n"
    },
    {
      "commit": "ce8668f809f8e25ddbc65217e7f08490c6165637",
      "tree": "5a8cb23b87c074162450e15133d7261d4c220620",
      "parents": [
        "772a73963d22163deff3fd3c7f65013ccb941f34",
        "9bf3150cfae03421c9dd237b46657714859d871c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 09 18:33:44 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 18:33:44 2012 -0800"
      },
      "message": "Merge \"Save timezone when setting data cycle reset date.\""
    },
    {
      "commit": "9bf3150cfae03421c9dd237b46657714859d871c",
      "tree": "f62a9a964ba0c745ec0cd45814a45cf8fbf922e4",
      "parents": [
        "92d291ef6481c6cbb1305780dd4f450a16bb9a7a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 09 17:07:21 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 09 17:10:05 2012 -0800"
      },
      "message": "Save timezone when setting data cycle reset date.\n\nInstead of cycle reset at midnight UTC, use midnight of timezone\nactive when user last set cycle reset date.  Tests to verify, and\nalso to test leap year behavior.\n\nBug: 5938567\nChange-Id: Ie06f7f0fa242d23110f9586a3f4f7037af87b31b\n"
    },
    {
      "commit": "466608e9e8bc48dafa2f970249076b03535cb97a",
      "tree": "f30bfbb6ad34352bb0ee572d7eec3ad42ddd1134",
      "parents": [
        "2463353c01d96ec6a2e321a5c14fcbb4da7c782a",
        "ad3a9bb628e912b39e10f8d8a8bde0badefd8bd0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 09 14:40:45 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 14:40:45 2012 -0800"
      },
      "message": "Merge \"Fix state machine sequence causing wallpaper flash.\""
    },
    {
      "commit": "ad3a9bb628e912b39e10f8d8a8bde0badefd8bd0",
      "tree": "3e459f697572c8238b232390706eaba276a905cf",
      "parents": [
        "d4933842b1f665f4d88b75a5d4d152cbc02e7010"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 09 11:31:06 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 09 14:32:06 2012 -0800"
      },
      "message": "Fix state machine sequence causing wallpaper flash.\n\nFixes bug 6127355.\n\nChange-Id: Ie6894329829f78b3ff8936cfe5ed2933490db5d8\n"
    },
    {
      "commit": "55b4b28606e740c3a1f75dd7b9b3b8feee86d795",
      "tree": "f909be0514ddb1ae55e9ad85e90814774721ae4f",
      "parents": [
        "d4933842b1f665f4d88b75a5d4d152cbc02e7010",
        "191874e37106ca503003ef3d4bec392ca2627cbe"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 09 11:40:23 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 11:40:23 2012 -0800"
      },
      "message": "Merge \"Improved rotation animation.\""
    },
    {
      "commit": "191874e37106ca503003ef3d4bec392ca2627cbe",
      "tree": "0231599022e063f7b5cf269bed3495b49252c6f4",
      "parents": [
        "a0b29f556519653c9749cebff4af43e68b4d59ce"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 09 11:03:36 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 09 11:20:54 2012 -0800"
      },
      "message": "Improved rotation animation.\n\nChange-Id: Id21686be8b2b229dc61c5d01f888c9b5deabb857\n"
    },
    {
      "commit": "d4933842b1f665f4d88b75a5d4d152cbc02e7010",
      "tree": "851861da157785e214a140944381dbf8a0f84993",
      "parents": [
        "977c9a5d3cb9ecd9190c37da25d1e7476a1dd0bb",
        "e4aecb671ba19903e3e1066a6e265a18c43b188e"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 09 11:06:42 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 11:06:42 2012 -0800"
      },
      "message": "Merge \"Fix softap start\""
    },
    {
      "commit": "e4aecb671ba19903e3e1066a6e265a18c43b188e",
      "tree": "f046fc87bace72cac082ba3c132aabb9096bf682",
      "parents": [
        "4c8982ad820007512e4e9cbb7f15925228d70761"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 09 11:01:01 2012 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 09 11:01:01 2012 -0800"
      },
      "message": "Fix softap start\n\nRemove the unncessary \"softap start\" which was used for broadcom\nspecific implementation\n\nChange-Id: I79458082a116cd630bd13d1ed1a237eda7daaa88\n"
    },
    {
      "commit": "8931da12e85c181652a8e47fb358a5bdfc79a1fd",
      "tree": "1262e4531b02830bee6f2999b7beea08bae3bc75",
      "parents": [
        "8ac70c42507560bf6df7114e96f788c03a18bd6a",
        "d9781fe7ee88ea324e5e688dd9c352ab54fd179a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 08 19:27:21 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 19:27:21 2012 -0800"
      },
      "message": "Merge \"Fix crash.\""
    },
    {
      "commit": "d9781fe7ee88ea324e5e688dd9c352ab54fd179a",
      "tree": "eaa924d7bc6e45445a2e7ce203f61c680e0926e4",
      "parents": [
        "a0b29f556519653c9749cebff4af43e68b4d59ce"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 08 18:04:18 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 08 18:04:18 2012 -0800"
      },
      "message": "Fix crash.\n\nChange-Id: Id219351625494c54524e400055755d41f3bef868\n"
    },
    {
      "commit": "df813c03b16ed32c25a8c8fee82a7a98088ac940",
      "tree": "c83351b426b7f4981e2913ec21ce9171a4da1a4a",
      "parents": [
        "21b4d6b7a5959b567355aae032bd76500c148e54",
        "7ae9d5faad5816f7e567ec1ec77e78d746cf7e5c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 08 16:28:48 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 16:28:48 2012 -0800"
      },
      "message": "Merge \"Use the Choreographer for Drawable animations.\""
    },
    {
      "commit": "28ca8f9f95b1ee8186463bfc3f33b9383c0d1dd0",
      "tree": "59ad76b3447c2f56b9160a5d487f92f045aaff37",
      "parents": [
        "754682e513772940f23a5b167f1311f34f202d18",
        "04e0d265e3385e9d1fbc35e43c4e8caffbbe3290"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 08 15:55:20 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 15:55:20 2012 -0800"
      },
      "message": "Merge \"Make SyncManager and AccountManagerService multi-user aware.\""
    },
    {
      "commit": "583fcb9175cd0c614f096db633d9e784ab7e1f54",
      "tree": "a75573a0bc37dd1df88b127068a4e3c7f47e95ed",
      "parents": [
        "a0b29f556519653c9749cebff4af43e68b4d59ce",
        "bb9908b828a8cfd5965553be66faa6af89973697"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 08 15:06:50 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 15:06:50 2012 -0800"
      },
      "message": "Merge \"Dispatch screen state change events to Views Bug #6120957\""
    },
    {
      "commit": "bb9908b828a8cfd5965553be66faa6af89973697",
      "tree": "33ab74a9cb8ad69058cece5ae83d4b82f7b51633",
      "parents": [
        "3bef5e9f3aa90465ee3ab66ef33d7a88d1b0c5c1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 08 11:14:07 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 08 15:05:12 2012 -0800"
      },
      "message": "Dispatch screen state change events to Views\nBug #6120957\n\nUsing this new callback, views can interrupt and resume their\nanimations or other periodic tasks based on the current state\nof the display.\n\nChange-Id: I398f4abd421e9c5f207107bf1009a7b92cf45daa\n"
    },
    {
      "commit": "21c241e061de29a538008ca42df9c878184bcfb8",
      "tree": "2ab9065ae16bbe9fc5b599e1c591a020ac5c7ce1",
      "parents": [
        "c8462e322bcf5a07d9ef677ed099e007ef268932"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 08 13:57:23 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 08 14:34:03 2012 -0800"
      },
      "message": "Add new Intent API for associating a ClipData with an Intent.\n\nAllows applications to propagate multiple URI grants through an\nIntent.\n\nLater on, we should probably redefine the share actions to be\nbased on this ClipData with the old extras-based approach only\nthere for compatibility.  Even if we don\u0027t do that, though, this\nallows you to do a multi-select share that grants multiple URI\npermissions by stuffing the URIs in a ClipData.\n\nAlso add some documentation in various places telling people how\nthey can grant URI permissions.\n\nChange-Id: Id4ba8e72c11caf7e1f1f438cb7af058d1586a37c\n"
    },
    {
      "commit": "04e0d265e3385e9d1fbc35e43c4e8caffbbe3290",
      "tree": "0570669214e6f4f45a81b51c618dfba38a02afae",
      "parents": [
        "e5d076e8d1a44414edf4cc4796d4c510b8d49518"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Feb 14 11:50:53 2012 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 08 10:52:36 2012 -0800"
      },
      "message": "Make SyncManager and AccountManagerService multi-user aware.\n\nAccountManagerService\n- Maintain multiple account lists, one per user\n- Keep multiple databases of accounts\n- Account db moved to /data/system/users/\u003cuserid\u003e/\n\nSyncManager\n- SyncStorageEngine keeps track of multiple users\u0027 accounts.\n- SyncQueue maintained as a single instance, queueing requests from\n  multiple users.\n- Changed some methods to take userId arguments\n- Removed some deadc0de\n- Store the userId in the SyncOperation, so we know which provider\n  instance to bind to when queued operations are processed.\n\nContentService\n- Pass along the userid to sync manager calls.\n\nActivityManagerService:\n- Fixed a bug in cancelIntentSender\n- Don\u0027t bring other user\u0027s task forward when resetting tasks.\n\nUpdated tests\n\nChange-Id: If317340ef68e902787aa3f5ceb4cf96f14aea695\n"
    },
    {
      "commit": "250069bf6bf3d7e2ef85c49e0cd100e80c3c8b7d",
      "tree": "5dbcb720953c2462948ea42160fc5cef0d1b4556",
      "parents": [
        "cd40f4a062d73088462eaca6c3e778440c1ccdd8",
        "7e4e561bc717a6eea4e0d06ec4173ad27420425f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 08 10:47:02 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 10:47:02 2012 -0800"
      },
      "message": "Merge \"Ignore draw requests when the display is off\""
    },
    {
      "commit": "7ae9d5faad5816f7e567ec1ec77e78d746cf7e5c",
      "tree": "ba96bb195804706f40e4f9930b8d5ae19ed719c3",
      "parents": [
        "d5f07990822db3531c84755f406c1e12083aee37"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 05 19:33:49 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 07 19:02:51 2012 -0800"
      },
      "message": "Use the Choreographer for Drawable animations.\n\nChange-Id: Ifcbf33434bf3c32d1900fd0b3f5bde004604ce8a\n"
    },
    {
      "commit": "09ec58ea0ff4a49c3c040cda7e5af8df3b040237",
      "tree": "6ed74aa149cc65abc72363a4cc325371536806e2",
      "parents": [
        "97d0ae391d9c472331301a276f2d82742bf3678f",
        "84c00c67d70af4797c098f20124b9f8882980649"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Wed Mar 07 17:04:52 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 17:04:52 2012 -0800"
      },
      "message": "Merge \"Prevent potential stall in dns proxy.\""
    }
  ],
  "next": "8247add51db34afd8ccb16ec120f4f1f6d80d576"
}
