)]}'
{
  "log": [
    {
      "commit": "c2346134bb519a54d50655cbef940fc3fdec60a9",
      "tree": "6b86f97b2175bc2b0181cbf123e4f874867e7c91",
      "parents": [
        "069c4f3f0c8190289d60296ec54fafa56abb4776"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 13 01:55:38 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 13 04:05:17 2012 -0700"
      },
      "message": "Extract Vibrator implementation from interface.\n\nMoved the core logic of Vibrator into SystemVibrator, potentially\nallowing for the creation of other Vibrator subclasses.\n\nFixed several places where we were creating new Vibrator\ninstances unnecessarily instead of getting it from the Context.\n\nIt is safe to make Vibrator abstract because its constructor\nwas hidden from the SDK so it was not possible to subclass it.\n\nBug: 6334179\nChange-Id: I18ece6544c26a7efb2d5099f8346a10aef8a5e18\n"
    },
    {
      "commit": "882735972e9e7ee52a3116a3aba0440968b2da1a",
      "tree": "be12d9a5d1f8608629d74382f6f1927eadcbbdb8",
      "parents": [
        "d4fecc2567ca54427b9c86900bccbc7103ea8fde",
        "af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 18:55:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 18:55:57 2012 -0700"
      },
      "message": "Merge \"Notify applications when input devices change.\""
    },
    {
      "commit": "af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78b",
      "tree": "50cf9dd27d673bc5b3f75e6e18e9577873eecd6c",
      "parents": [
        "cc1169831921d9295b2fc01c1eaf7e9b00836f53"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 17:32:48 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 18:54:54 2012 -0700"
      },
      "message": "Notify applications when input devices change.\n\nThis change allows the InputManager to keep track of what input\ndevices are registered with the system and when they change.\nIt needs to do this so that it can properly clear its cache of\ninput device properties (especially the key map!) when changes\noccur.\n\nAdded new API so that applications can register listeners for\ninput device changes.\n\nFixed a minor bug in EventHub where it didn\u0027t handle EPOLLHUP\nproperly so it would spam the log about unsupposed epoll events\nuntil inotify noticed that the device was gone and removed it.\n\nChange-Id: I937d8c601f7185d4299038bce6a2934fe4fdd2b3\n"
    },
    {
      "commit": "67ae551272f2bc8ffe83ecd62e970f657dc965d5",
      "tree": "8d38b0feaf8a45217ef47d8811bbb14a947ada30",
      "parents": [
        "cbba37c6096486cbc8ce6f0c4eb7df9a352d54b1",
        "ff5b158f69bf453cf1fdedd175a09482c65f2bf2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 12 18:18:45 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 18:18:45 2012 -0700"
      },
      "message": "Merge \"Keep activities stopped while the lock screen is up.\""
    },
    {
      "commit": "cbba37c6096486cbc8ce6f0c4eb7df9a352d54b1",
      "tree": "381c4788296568fdeed935cd425eae245c0106c1",
      "parents": [
        "6c70ef1fb2efd705406d73272b87573900812aff",
        "817388e056a5d1d0e7cd7de2c6b0c9c80617bc5f"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Apr 12 17:55:15 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 17:55:15 2012 -0700"
      },
      "message": "Merge \"Bonjour fixes\""
    },
    {
      "commit": "ff5b158f69bf453cf1fdedd175a09482c65f2bf2",
      "tree": "d9eb803d3a4a88814757434a8c8ec6c6ffb67cf3",
      "parents": [
        "b0398f59aae2c72161ea20339efaa950a788c375"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 12 17:24:07 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 12 17:26:55 2012 -0700"
      },
      "message": "Keep activities stopped while the lock screen is up.\n\nTell the activity manager when the lock screen is shown, so it\ncan keep itself (mostly) in sleep mode during this time, having\nthe foreground actvities remain in their stopped state.\n\nChange-Id: I71c86d3298f23a98014d7ae36fd540c9df9a64e6\n"
    },
    {
      "commit": "0c2acffec8689f8721a454845b24a830bc37ce92",
      "tree": "5c4d68095376aabd3af04c4b7d2d78b9e9ea8c2b",
      "parents": [
        "ed4995d646252313323f648e44a9539d9384f901"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 12 15:17:07 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 12 15:26:11 2012 -0700"
      },
      "message": "Clean up lock screen hide animation.\n\nWe now have an animation to apply to the thing behind the lock\nscreen animation when it isn\u0027t on the wallpaper, which looks\nsimilar to the animation we use when both are on the wallpaper.\n\nIn implementing this, cleaned up the code to figure out up-front\nwhich animation to run, getting rid of that kludgy thing that\ncleared the window animation if the wallpaper was not being used\nfor the lower windows.\n\nChange-Id: Ifc4c8a8894ad384124dcf4bbdaab134f1157b0f3\n"
    },
    {
      "commit": "187ae2105eb771e10ef54e0e9f2796e7fb7cb4e9",
      "tree": "85c9c1b4851fb7eb529fc96f3774bfe7dab4ded0",
      "parents": [
        "4f8b71e41d26538711920495242892839a1757f9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 11 18:12:06 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 12 13:08:26 2012 -0700"
      },
      "message": "Revert to ICS screen rotation animation.\n\nChange-Id: Ida76f17a00e4c8ab828deae51095107e4eeaa321\n"
    },
    {
      "commit": "817388e056a5d1d0e7cd7de2c6b0c9c80617bc5f",
      "tree": "e37932441599a8363cc9b41c8da0f92330a78704",
      "parents": [
        "63c115c4aa2158ea18338a9fb2c2619755958ddc"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Apr 11 14:52:19 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Apr 12 12:08:51 2012 -0700"
      },
      "message": "Bonjour fixes\n\nChange-Id: I1df1dc470bb42c84abc7e1a46bedf9f206910b65\n"
    },
    {
      "commit": "2b23adbc33c888a2c9fa22dd2e967227baa27e5c",
      "tree": "4d7aa968bf1b475078ade41ec881c5397f7f51f8",
      "parents": [
        "b187d52f8adaad068997595118f32cb02d7a9013",
        "7463adacbd5ccb329b094c5343a0389f4872f5e7"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Apr 12 11:18:08 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 11:18:08 2012 -0700"
      },
      "message": "Merge \"Make dumpsys activity services work again.\""
    },
    {
      "commit": "7463adacbd5ccb329b094c5343a0389f4872f5e7",
      "tree": "7e4e6cf6e618ffc8e2020e4ce125c2727cbf5980",
      "parents": [
        "30ff5aecd751a2d5d6722c9ae96204eda2c3cbc4"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Apr 11 15:02:39 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Apr 12 10:41:19 2012 -0700"
      },
      "message": "Make dumpsys activity services work again.\n\nDue to the step to query the users, dumpsys was crashing when run\nas non-root. Clearing the calling identity after checking perms\nfixes this.\n\nBug: 6311443\nChange-Id: I0b0bca5c7305cea19adc772b3bfec34c16bb24c4\n"
    },
    {
      "commit": "a11236bf0908c5d02e7be24b97ec4cf9e63e33f3",
      "tree": "94d90b9cd0141c642bf552ae1af99514e580c260",
      "parents": [
        "5bd43d15373746544a1a2b4150252c969c5886b3",
        "1c27576aff247ff1d7789e0a571958726f161593"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 11 19:11:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 19:11:35 2012 -0700"
      },
      "message": "Merge \"Include enforcement state in dumpsys.\""
    },
    {
      "commit": "1c27576aff247ff1d7789e0a571958726f161593",
      "tree": "c0f09dd5b6eb7fefaf76f0fc0dbc3bc917a950ee",
      "parents": [
        "5554b7082220d37496e30f39a0d9146afc177ab4"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 11 19:07:08 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 11 19:07:08 2012 -0700"
      },
      "message": "Include enforcement state in dumpsys.\n\nBug: 6323087\nChange-Id: I6d779798538c114ea9816d3bdbbff5552c285df6\n"
    },
    {
      "commit": "2f63cfda7645cf8ac6734b751fb9dcee42d6b302",
      "tree": "b899547ddd074006cdbe99b03ffa2e44897592c8",
      "parents": [
        "fe07820bf3bb87a0b44609833af791f01b942ede",
        "4ea7bfea312e4ddf815eabdef04d3f3b4878a51a"
      ],
      "author": {
        "name": "Justin Mattson",
        "email": "jmatt@google.com",
        "time": "Wed Apr 11 17:44:53 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 11 17:44:53 2012 -0700"
      },
      "message": "am 4ea7bfea: Merge \"Check if WallpaperService is enabled\" into ics-aah\n\n* commit \u00274ea7bfea312e4ddf815eabdef04d3f3b4878a51a\u0027:\n  Check if WallpaperService is enabled\n"
    },
    {
      "commit": "1e1edaa60dc183b1b8f0b8588deb8c42c9169cfb",
      "tree": "6fbada8f5ef6bc815c1b57b5b213938ee3e6d2a1",
      "parents": [
        "30ff5aecd751a2d5d6722c9ae96204eda2c3cbc4",
        "f20588fdc65a5651c3a5ab5c0c20165c0e33c394"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 11 17:18:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 17:18:44 2012 -0700"
      },
      "message": "Merge \"Check WindowState when looking for animation.\""
    },
    {
      "commit": "f20588fdc65a5651c3a5ab5c0c20165c0e33c394",
      "tree": "5a1ab6db613753443fd34cec2ccdef4db16328f1",
      "parents": [
        "f0cabba38bcb1aefad191915e214e836fa5ed2bd"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 11 17:06:21 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 11 17:15:09 2012 -0700"
      },
      "message": "Check WindowState when looking for animation.\n\nThe method setTokenVisibilityLocked returns true when animations are\ndelaying the exit of an app. Previously this only checked AppToken\nanimations but that caused exiting WindowState animations to be\nignored.\n\nIn particular if an application both hid an AppToken and then\ndismissed the AppToken, the AppToken was being removed from\nmClosingTokens before the animation finished. This caused\nrebuildAppWindowListLocked to lose a WindowState. Furthermore\nSurfaces were not being removed when a WindowState was lost and\nwe were leaking Surfaces.\n\nFixes bug 6297563.\n\nChange-Id: Ie75c71064518199237ec4a17d3f65e2a2dd29674\n"
    },
    {
      "commit": "f882efadd378e0476b7362e474f3a20dcf1c0d27",
      "tree": "9e36983c9902eefbfbf45c7cc8e5002c9fca703a",
      "parents": [
        "50a926789f9ec335f72346a3a1c922729a301f34"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 11 16:04:12 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 11 16:04:12 2012 -0700"
      },
      "message": "Fix issue #6266651: Low storage warning takes long time to sort apps by usage\n\nOn a device with emulated external storage, the low storage notification\nshould go to the main storage settings UI.  This shows the user all of\nthe things that could be causing their storage to be low.\n\nChange-Id: I9c345b6cb7abbabc24a67c7e104d077ecbbfb86d\n"
    },
    {
      "commit": "b4148125490d48fb57c69b8543c997e3a6be1f44",
      "tree": "76298c079b1bb07cedd5e700bbc4b7a41115844f",
      "parents": [
        "3bf928d51ec9ce53d1ebeb53c7265980e349e444",
        "f8d4fbb9c87201350534861c4d988e63691fe24f"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 11 09:35:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 09:35:05 2012 -0700"
      },
      "message": "Merge \"Check for existing dimming before stop dimming.\""
    },
    {
      "commit": "f8d4fbb9c87201350534861c4d988e63691fe24f",
      "tree": "f665a4ac0261ed07b3e89c568771af26e81e2c88",
      "parents": [
        "f0cabba38bcb1aefad191915e214e836fa5ed2bd"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 11 09:25:53 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 11 09:25:53 2012 -0700"
      },
      "message": "Check for existing dimming before stop dimming.\n\nAdd a test to make sure that we are dimming before we send the message\nto stop it. This prevents a CPU consuming loop when dimming is already on.\n\nFixes bug 6320003.\n\nChange-Id: If26dc5b0800300d8e38c166824651223eded4cfa\n"
    },
    {
      "commit": "3bf928d51ec9ce53d1ebeb53c7265980e349e444",
      "tree": "f5cfcd74ac14c6b14abadca10e1ac619455a9578",
      "parents": [
        "8d33d39d68d46af758143a56c89322360cbbada2",
        "0af489568de297fafc1d0e577481181ce3d81d4c"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Apr 11 07:03:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 07:03:00 2012 -0700"
      },
      "message": "Merge \"Fix PowerMgr NPE on emulator.\""
    },
    {
      "commit": "8d33d39d68d46af758143a56c89322360cbbada2",
      "tree": "0ab6d8815b5864cd74f299bcc458d0592bf980db",
      "parents": [
        "9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f",
        "01038492ff0317f0d3cff54d8a7ee36bb31ff175"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Apr 11 00:12:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 00:12:59 2012 -0700"
      },
      "message": "Merge \"Show physical keyboard control button on the input method switch dialog\""
    },
    {
      "commit": "01038492ff0317f0d3cff54d8a7ee36bb31ff175",
      "tree": "cb598b11ea2c012bd15e7e7f44a3006f752c0b81",
      "parents": [
        "63c115c4aa2158ea18338a9fb2c2619755958ddc"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Apr 09 21:08:27 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Apr 11 15:49:35 2012 +0900"
      },
      "message": "Show physical keyboard control button on the input method switch dialog\n\nBug: 5240095\nChange-Id: Ica768083f95c33dc1e494a28ba7d8b6eb989b0ef\n"
    },
    {
      "commit": "9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f",
      "tree": "b0b509a261874435cab3f5f1a727c02b399bd91c",
      "parents": [
        "54ae14749bc7f9e73cfda35a8b49f9efa80a77fb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 14:30:49 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 18:23:58 2012 -0700"
      },
      "message": "Request key maps from input manager service.\n\nInstead of each application loading the KeyCharacterMap from\nthe file system, get them from the input manager service as\npart of the InputDevice object.\n\nRefactored InputManager to be a proper singleton instead of\nhaving a bunch of static methods.\n\nInputManager now maintains a cache of all InputDevice objects\nthat it has loaded.  Currently we never invalidate the cache\nwhich can cause InputDevice to return stale motion ranges if\nthe device is reconfigured.  This will be fixed in a future change.\n\nAdded a fake InputDevice with ID -1 to represent the virtual keyboard.\n\nChange-Id: If7a695839ad0972317a5aab89e9d1e42ace28eb7\n"
    },
    {
      "commit": "2a854c13f864d5493846a7fc66bb6aefeaac8c8b",
      "tree": "ebd489d95dd9276e93a92f33af507c321c6d7a97",
      "parents": [
        "4245ab34d12cf7d608f1789981326d9009cc304f",
        "162bc0ea0d7862b92f18d0ce47310a85304205f7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 10 15:25:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 15:25:43 2012 -0700"
      },
      "message": "Merge \"Some small tweaks to improve memory management.\""
    },
    {
      "commit": "162bc0ea0d7862b92f18d0ce47310a85304205f7",
      "tree": "7d7342164ba4c6dde86e3951bcd6b79dead4273e",
      "parents": [
        "d3ce6f50c114f58a3f50e44764e9b315ac41f637"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 09 14:06:16 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 10 14:43:58 2012 -0700"
      },
      "message": "Some small tweaks to improve memory management.\n\nWe now allow processes that currently have stopping activities to\nbe managed as if they were done stopping, so that memory trimming\ncan be done before the process goes to the background.  Hopefully\nthis will reduce cases where the processes goes to the background\nand immediately gets killed, but wouldn\u0027t have had to be killed if\nit had a chance to trim its memory.\n\nAlso change window memory trimming to always do the aggressive\ntrimming when memory is critical, even if not on a low-end device.\n\nAnd tweak web view trimming to not trim for foreground UI events.\n\nChange-Id: I241b3152b52d09757bd14a202477cf69c9b78786\n"
    },
    {
      "commit": "f0cabba38bcb1aefad191915e214e836fa5ed2bd",
      "tree": "20d24cf9e5c32f6d3651c65044b314f272a65ba8",
      "parents": [
        "cd2a3ea5c8aaca505452e3287b2ad30bbba0e8d1",
        "1f4e0ccba08e4abb55a38a8b5936dbb244475fb9"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Apr 10 14:33:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 14:33:07 2012 -0700"
      },
      "message": "Merge \"Fix NPE in setTransparentRegion.\""
    },
    {
      "commit": "cd2a3ea5c8aaca505452e3287b2ad30bbba0e8d1",
      "tree": "01d18f3cd91b0f260b01c77fed4d4c9d5039105c",
      "parents": [
        "592647ee2e2eb64904a3a9c30e8f20b1f08c4ba0",
        "deb6ed8c2e63fcb2a189ce6e0338f13edcb7c783"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 14:30:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 14:30:20 2012 -0700"
      },
      "message": "Merge \"Don\u0027t reuse StringBuilder outside of lock when dumping ANR.\""
    },
    {
      "commit": "deb6ed8c2e63fcb2a189ce6e0338f13edcb7c783",
      "tree": "3bc613a13dda616f361d19fe35b7fa0595524e11",
      "parents": [
        "27fd3420ac0498ff5086f71023f443966541aa04"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 14:26:26 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 14:26:26 2012 -0700"
      },
      "message": "Don\u0027t reuse StringBuilder outside of lock when dumping ANR.\n\nThe ANR dumping code was reusing the shared StringBuilder while\nnot holding the ActivityManagerService lock.  As a result, other\nthreads could sweep in and clobber the ANR information.\nWe don\u0027t want to hold the lock here, so just create a new StringBuilder.\n\nChange-Id: I0d91af55f5c123102cfab2cd97035491efed59c0\n"
    },
    {
      "commit": "1f4e0ccba08e4abb55a38a8b5936dbb244475fb9",
      "tree": "12add2ae1fed7ee4b4846086fc30fc6133b28661",
      "parents": [
        "1ade5ae9c812464f086f2151069781db1b27db2f"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Apr 10 14:24:38 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Apr 10 14:24:38 2012 -0700"
      },
      "message": "Fix NPE in setTransparentRegion.\n\nCheck for null Surface before using it.\n\nFixes bug 6312835.\n\nChange-Id: Iaaac2a5d88e81b88e369815e09818c268085e4b7\n"
    },
    {
      "commit": "8330e40b9897afb1e2b2e6354ed3c35e7c557486",
      "tree": "523e03a963378f1c866983cd6dfeedfd9c3d2513",
      "parents": [
        "ad0ef210113f8337f56940962baaf2d19a33871e",
        "73850cb6991074e33c31d310ccb63a1f863f7b4e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Apr 10 13:01:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 13:01:12 2012 -0700"
      },
      "message": "Merge \"Reduce load on CPU when animating rotation.\""
    },
    {
      "commit": "73850cb6991074e33c31d310ccb63a1f863f7b4e",
      "tree": "cda721463fccf3541ba94fc916ccda6584f55887",
      "parents": [
        "1ade5ae9c812464f086f2151069781db1b27db2f"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Apr 10 12:56:27 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Apr 10 12:56:27 2012 -0700"
      },
      "message": "Reduce load on CPU when animating rotation.\n\nThis change keeps requestTraversalLocked from being called on virtually\nevery call to animate while rotating.\n\nChange-Id: I6d2db37db3bb82f4f9ecc84b17dbf121819a6c1b\n"
    },
    {
      "commit": "0af489568de297fafc1d0e577481181ce3d81d4c",
      "tree": "d784073cd7fa8a33ee6e280674ca51149ad29076",
      "parents": [
        "450c75a59bf510ef97bfc208ee7c7660fdb73afa"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Apr 10 15:14:35 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Apr 10 15:15:32 2012 -0400"
      },
      "message": "Fix PowerMgr NPE on emulator.\n\nBug: 6313695\nChange-Id: Ib12b9102df01603df135cef03fd2a2f6e3634dd1\n"
    },
    {
      "commit": "c38cf4c7dbe7d96255d42dabf8ca801830813f5e",
      "tree": "c34bc1561f67c0838d7ebd4d625b568738dc4589",
      "parents": [
        "06cce885296f60b6cc2d0dad3d167681536a53a5",
        "7d276c377ce0c56630c06a6da431a6cb9bd76d1e"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Apr 10 05:33:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 05:33:07 2012 -0700"
      },
      "message": "Merge \"New Android Dreams architecture, disabled for now.\""
    },
    {
      "commit": "4233f262499aa1dea332fe60d7a30ab4cdc4e3ed",
      "tree": "227875fb0ad486c9dc3857cf8bb9fbba8bd2aaeb",
      "parents": [
        "14d3b807b730e04d90d6dd9c9569decdf12cc9cb"
      ],
      "author": {
        "name": "Justin Mattson",
        "email": "jmatt@google.com",
        "time": "Mon Apr 09 18:23:16 2012 -0700"
      },
      "committer": {
        "name": "Justin Mattson",
        "email": "jmatt@google.com",
        "time": "Mon Apr 09 18:36:15 2012 -0700"
      },
      "message": "Check if WallpaperService is enabled\n\nIf WallpaperService is disabled, don\u0027t delay starting SurfaceFlinger\nuntil it is.\n\nChange-Id: I95db6b7bc791329e2bae33472cfeb125e5f6f324\n"
    },
    {
      "commit": "7d276c377ce0c56630c06a6da431a6cb9bd76d1e",
      "tree": "b5c96c71988ec1a0f3cbd7f64269651e69c8de92",
      "parents": [
        "63c115c4aa2158ea18338a9fb2c2619755958ddc"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Jan 30 14:33:52 2012 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Apr 09 15:33:26 2012 -0400"
      },
      "message": "New Android Dreams architecture, disabled for now.\n\nRather than normal Activities (which have a host of problems\nwhen used for this purpose), screen savers are now a\nspecial kind of Service that can add views to its own\nspecial window (TYPE_DREAM, in the SCREENSAVER layer).\n\nDreams are now launched by the power manager; whenever it is\nabout to turn the screen off, it asks the window manager if\nit wants to run a screen saver instead. (http://b/5677408)\n\nAlso, the new config_enableDreams bool allows the entire\nfeature to be switched on or off in one place. It is\ncurrently switched off (and the APIs are all @hidden).\n\nChange-Id: Idfe9d430568471d15f4b463cb70586a899a331f7\n"
    },
    {
      "commit": "eaeee6a55c443fcd71cd2012e4b3366421723e74",
      "tree": "8469e7e977dd9cf0b756743cb565199a0db37bb7",
      "parents": [
        "fd6ebee93c1b85118e4958a8fe4376af9033929e",
        "bfdd680ab44da173a4a39fcd6feccdebb9d1f855"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 09 11:26:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 11:26:34 2012 -0700"
      },
      "message": "Merge \"Migrate to @Override to remove warnings.\""
    },
    {
      "commit": "fd6ebee93c1b85118e4958a8fe4376af9033929e",
      "tree": "b0f342cbe4ae89b7b13f8b831bbec718e081ff2f",
      "parents": [
        "3b0ea8dbb6fa8407242b4dac9f07318f239bfbb6",
        "27fd3420ac0498ff5086f71023f443966541aa04"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 09 11:25:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 11:25:02 2012 -0700"
      },
      "message": "Merge \"Fix lid switch interpretation.\""
    },
    {
      "commit": "27fd3420ac0498ff5086f71023f443966541aa04",
      "tree": "dc29332ba544ec0d8da9503d9205e6ef753c0e56",
      "parents": [
        "eca3cf58c096d5a4ba4ae80318f72266c21a9a6d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 09 11:05:16 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 09 11:22:12 2012 -0700"
      },
      "message": "Fix lid switch interpretation.\n\nAlso remove unnecessary permission check for method that is\nonly called internally.\n\nChange-Id: I32f63fc3e96b06709d18b046ee2d3c8f310de70d\n"
    },
    {
      "commit": "bfdd680ab44da173a4a39fcd6feccdebb9d1f855",
      "tree": "7de3a6b4a8718f736545673f30e9d4660ef20307",
      "parents": [
        "081cc9a1f5cf35a4a0ffa959ab97242b27a33ed4"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 09 10:49:19 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 09 10:57:21 2012 -0700"
      },
      "message": "Migrate to @Override to remove warnings.\n\nBug: 6303344\nChange-Id: I0d33b2ed448467379d576ccd71fb5ae20c878852\n"
    },
    {
      "commit": "4b3c5232109422c5c9bee044c01721536ceab488",
      "tree": "e2344c8cc75b19263247688ed011453eec212405",
      "parents": [
        "079f09c6ca4148d8e640e34ec03a3eb4fb3507cc",
        "21a547823de52806de48f70b8360353344a5ad88"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 09 10:31:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 10:31:20 2012 -0700"
      },
      "message": "Merge \"Splice operations before collapsing ifaces.\""
    },
    {
      "commit": "21a547823de52806de48f70b8360353344a5ad88",
      "tree": "56214736d2974f63dbdf4d8dd62deb5526965bf9",
      "parents": [
        "b52e3e55098c4a6e3dbfe19885895411cfb38911"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 09 10:27:55 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 09 10:27:55 2012 -0700"
      },
      "message": "Splice operations before collapsing ifaces.\n\nBug: 6241038\nChange-Id: Ide9058703f7305df8fb070af149ddce0653a0abf\n"
    },
    {
      "commit": "079f09c6ca4148d8e640e34ec03a3eb4fb3507cc",
      "tree": "bf789fd8321728a7c5e2094c632e3ea522999dab",
      "parents": [
        "d1404465df624a66e9f80b2957bf18624a91df7a",
        "59f482764e346a5c5ac118ee1f7b24da645c2559"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 09 08:39:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 08:39:05 2012 -0700"
      },
      "message": "Merge \"Added support for USB audio devices\""
    },
    {
      "commit": "59f482764e346a5c5ac118ee1f7b24da645c2559",
      "tree": "db34c5faaf30daecdbae082961fc71501adeec2d",
      "parents": [
        "85d9e02094a0eefe21b949effb5e7c8f042c92c8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 05 19:42:21 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 06 18:24:48 2012 -0700"
      },
      "message": "Added support for USB audio devices\n\nTwo types of USB audio devices are defined:\n- USB audio device: the audio device in USB device mode while\nthe Android device is in USB host mode.\n- USB audio accessory: the audio device in USB host mode while\nthe Android device is in USB device mode.\n\nRenamed intents for analog and digital docks to avoid confusion:\n - ACTION_USB_ANLG_HEADSET_PLUG to ACTION_ANALOG_AUDIO_DOCK_PLUG\n - ACTION_USB_DGTL_HEADSET_PLUG to ACTION_DIGITAL_AUDIO_DOCK_PLUG\n\nFactorized code in AudioService broadcast receiver.\n\nChange-Id: I1b6d0257a9d68ecb9495c78c98bac8c67fec7891\n"
    },
    {
      "commit": "cd837070f64a7dffb5e78b37763da63c01600ebf",
      "tree": "befba876fd93e9a51874a98a9ba43a49ae8485ac",
      "parents": [
        "b7943811a2dbe602f21b2cce0bfb0458042191b0",
        "3de422fe4fe903b1370f3f7ee9c7086966e15b28"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Apr 06 18:14:15 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 18:14:15 2012 -0700"
      },
      "message": "Merge \"Fix endless looping in layout.\""
    },
    {
      "commit": "3de422fe4fe903b1370f3f7ee9c7086966e15b28",
      "tree": "93d79a5d3ba08dce05a92ba20cb0c202cb7a0e65",
      "parents": [
        "1ade5ae9c812464f086f2151069781db1b27db2f"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Apr 06 18:04:13 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Apr 06 18:04:13 2012 -0700"
      },
      "message": "Fix endless looping in layout.\n\nAn odd alignment of the stars can end up with all of mAppToken.allDrawn\nanimating and mAppToken.startingDisplayed all false, and animation not\nnull. In such a case we can continue returning false but still pass\nthe test in WindowAnimator.updateWindowsAndRotation setting\nwasAnimating to true. The combination continually sets the\nFINISH_LAYOUT_REDO_WALLPAPER bit in mPendingLayoutChanges.\n\nFixes bug 6304838.\n\nChange-Id: Ie7a7b39ea218213f51dc3df3eefe4ff03f1d885d\n"
    },
    {
      "commit": "b7943811a2dbe602f21b2cce0bfb0458042191b0",
      "tree": "c8e5bdc9f790ccabef4b0039e006fa2f06472404",
      "parents": [
        "e2427cac775390ecae2cd6d0d2ab2a3d6280f2df",
        "2d69d49d30a43f957b9b80b0ac2c27fdf9662771"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 06 17:53:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 17:53:59 2012 -0700"
      },
      "message": "Merge \"Fix issue #6242583: ResolverActivity is considered as home activity\""
    },
    {
      "commit": "2d69d49d30a43f957b9b80b0ac2c27fdf9662771",
      "tree": "498e6041b293e2ec52f79f651905c8b2c149d1bb",
      "parents": [
        "29d6fa9d8b651b6940e6f3f9182f5b72c404c739"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 06 16:24:14 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 06 16:24:14 2012 -0700"
      },
      "message": "Fix issue #6242583: ResolverActivity is considered as home activity\n\nChange-Id: Ib29908cdfcbbff769d12df1770264ad13ec5337b\n"
    },
    {
      "commit": "bf64e70f9b818d992d3aad8424f2f0ad3966d729",
      "tree": "793029ea2e456a6bfe58fb6eb59f90fe3b380c39",
      "parents": [
        "a987d2bde7789779e23803b858267724dbade2db",
        "c4a07d1caa9befd4fa8165ff05fa5e92480d8e27"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Apr 06 14:35:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 14:35:16 2012 -0700"
      },
      "message": "Merge \"Attribute alarm broadcast wakelocks to the sender\""
    },
    {
      "commit": "c4a07d1caa9befd4fa8165ff05fa5e92480d8e27",
      "tree": "21b4785e8bad532974031cbb2f580164689ec2bd",
      "parents": [
        "e4d8a5dd42070d919dbd774f24c6684ecf1e350e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Apr 06 14:19:13 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Apr 06 14:23:12 2012 -0700"
      },
      "message": "Attribute alarm broadcast wakelocks to the sender\n\nWakelock usage for the purpose of sending an alarm broadcast is now\nattributed to the application which posted the alarm, not to the OS.\n\nBug 5911317\n\nChange-Id: I8cb79c3bd5db467388716ab68285f4ab0bfe468b\n"
    },
    {
      "commit": "1ade5ae9c812464f086f2151069781db1b27db2f",
      "tree": "8c25abe13e8608acc33fbc3bddb439f9e801ae73",
      "parents": [
        "a5372055d37924d536fc43866edea7b09f7c60fa",
        "bec53f7066852c1c5877c51fcd8c55840891d866"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Apr 06 14:12:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 14:12:46 2012 -0700"
      },
      "message": "Merge \"Animate from local list of WindowStateAnimators.\""
    },
    {
      "commit": "bec53f7066852c1c5877c51fcd8c55840891d866",
      "tree": "057c3df0c28572f1b03b9d5caa7f3a85c1223589",
      "parents": [
        "90d82ea0085b30894c5297df5faee0b4b655a94e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Apr 05 11:49:05 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Apr 06 14:03:25 2012 -0700"
      },
      "message": "Animate from local list of WindowStateAnimators.\n\nStop animate() from using the mWindows maintained by\nWindowManagerService. Animating WindowStateAnimators are now drawn from\na HashSet maintained by WindowAnimator and containing just those\nWindowStateAnimators that have Surfaces.\n\nWhen starting a move animation do not place parameters directly into\nthe WindowStateAnimator, instead pass them through the Handler.\n\nAlso removed synchronization points from mWindows/mAppTokens\nadd/remove.\n"
    },
    {
      "commit": "b52e3e55098c4a6e3dbfe19885895411cfb38911",
      "tree": "2b40b88a64184c36d5a3794b8dab7450cc9d99eb",
      "parents": [
        "5713c9cfa9a0ed7625c8a48925a5c33b2c070460"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Apr 06 11:12:08 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Apr 06 13:38:29 2012 -0700"
      },
      "message": "INetworkStatsSession with lifecycle for caching.\n\nUsers outside system_server now explicitly communicate their\nlifecycle, which keeps a strong-reference chain to any fully loaded\nNetworkStatsCollection histories.\n\nBug: 6236498\nChange-Id: I8e22739b6e89a626b676967a736d7117fd000778\n"
    },
    {
      "commit": "9d5a4be05b6d51ebb768e5fbcfa27ed9a39269b3",
      "tree": "db59588972ac584c2a2ead8fb4037429bfc73183",
      "parents": [
        "e7aff2998489dcf2baf731150ebb63a8e8c509cf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Apr 06 09:41:32 2012 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Apr 06 11:00:27 2012 -0700"
      },
      "message": "Add Intents to notify when USB audio devices or accessories are attached\n\nIn this change, only the USB audio accessory support is implemented.\n\nChange-Id: Id9b411319b07a96dc56649ca74cc5f3f89a55a7c\nSigned-off-by: Mike Lockwood \u003clockwood@google.com\u003e\n"
    },
    {
      "commit": "7a3bc87468d2d2c48e9ae3071c82f7aa5251e7d5",
      "tree": "24d823cbdb0d167b10c5e86b1fa63c47b50b21f8",
      "parents": [
        "419ad1e3b1f82c94ade87a70e7a4d033f9cab818",
        "42c45856f5d8927e188ed1c9c3c8dd711af5796e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Apr 06 08:00:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 08:00:47 2012 -0700"
      },
      "message": "Merge \"Fix so that windows again animate when moving.\""
    },
    {
      "commit": "ac14351e16e1258f1cb54e2bf772b8be004eb2b8",
      "tree": "55c22fe8e19d35764f00a6ffad899e4fd2c4ccd0",
      "parents": [
        "030711c39b6093024d784c1c3d7566bd5a3e3489"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 18:57:33 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 19:33:11 2012 -0700"
      },
      "message": "Move some APIs from window manager to input manager.\n\nSimplified input injection API down to just one call.\n\nRemoved all input state reading API.  It was only used by the\nwindow manager policy and required a permission that applications\ncould not obtain.  READ_INPUT_STATE is now unused and deprecated.\n\nChange-Id: I41278141586ddee9468cae0fb59ff0dced6cbc00\n"
    },
    {
      "commit": "6af9b92b75c820661ea995a98898395f22871498",
      "tree": "fbbbb62a1939def6e9593198a03426a89014afaa",
      "parents": [
        "2119ade6d737345d58145e773f5877c199a3e20d"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Apr 05 19:25:51 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Apr 05 19:25:51 2012 -0700"
      },
      "message": "Fix looping to turn off dimming.\n\nDimming was constantly being turned off if it wasn\u0027t time to turn it\non. This caused endless reentry into the Window Manager and consumed\nlots of CPU.\n\nFixes bug 6293953.\n\nChange-Id: Id87e60c7c70e96e66ce0b6297442f5ac0d2ff477\n"
    },
    {
      "commit": "42c45856f5d8927e188ed1c9c3c8dd711af5796e",
      "tree": "5deeac926980f3378037273a8204049e5f07853c",
      "parents": [
        "9828830611137bb751ab3512082a3bd31f439e38"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 05 18:29:35 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 05 18:29:35 2012 -0700"
      },
      "message": "Fix so that windows again animate when moving.\n\nChange-Id: I2441d0c892687b8cda239815caf77837cd21093e\n"
    },
    {
      "commit": "2119ade6d737345d58145e773f5877c199a3e20d",
      "tree": "a50837bde2072400d71f5d67d9a2c64fccf6d17c",
      "parents": [
        "818e7e9c83ade56574a605e54125b4fdb1b91aaf",
        "963db55d59a170f4b17ff907c96615a19ef6fe17"
      ],
      "author": {
        "name": "John Wang",
        "email": "johnwang@google.com",
        "time": "Thu Apr 05 16:51:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 16:51:32 2012 -0700"
      },
      "message": "Merge \"Enhance Cell Location Api.\""
    },
    {
      "commit": "818e7e9c83ade56574a605e54125b4fdb1b91aaf",
      "tree": "b1c8eff8643d62dad501ae1656aa5863b0c48a42",
      "parents": [
        "dc417687a3beb2c792f853ad92f1a0f6675d74e6",
        "d3e677bc509f2fe275527adc71db62b714669fd2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 05 16:46:08 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 16:46:08 2012 -0700"
      },
      "message": "Merge \"Dump KSM stats in the meminfo.\""
    },
    {
      "commit": "330401243ed992eb62e59c8ac34d6862eb64d712",
      "tree": "41296a3eec05835799c64070afa4493428ca1032",
      "parents": [
        "05b8594f5cf9c8515ec0bcd2949e4ac263db59f6",
        "8fc27e8b87bd1def854a03d84009143b315d4176"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 05 16:17:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 16:17:54 2012 -0700"
      },
      "message": "Merge \"Support metered Wi-Fi NetworkPolicy.\""
    },
    {
      "commit": "8fc27e8b87bd1def854a03d84009143b315d4176",
      "tree": "f91a0a4b574e925f15c27f2e39db848b0140fc47",
      "parents": [
        "1c35d117f01b5a6f66b82c57eb29350f16694070"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 04 20:40:58 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 05 16:02:25 2012 -0700"
      },
      "message": "Support metered Wi-Fi NetworkPolicy.\n\nAdd networkId field to NetworkIdentity to identify Wi-Fi networks by\nSSID.  Add support for policies without usage cycles.\n\nOnly apply mobile policies when SIM state is ready, which is cleaner\nthan just checking for airplane mode.  Also avoids creating no-op\ndefault policies when subscriberId is null.\n\nBug: 3001465, 3291052\nChange-Id: I1f8aaa49a5db306df022c402ea7f3f5d4bc0cfc7\n"
    },
    {
      "commit": "e9bdb31ea1dc3c1c2b1833a4bf0031d85928a45b",
      "tree": "6ce11f382c228c01cc4a12102d2ef6f10c4adc3e",
      "parents": [
        "23b871d7147de910b53646cdb987e28dac0df927",
        "4532e6158474a263d9d26c2b42240bcf7ce9b172"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 15:30:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 15:30:10 2012 -0700"
      },
      "message": "Merge \"Refactor input system into its own service.\""
    },
    {
      "commit": "d3e677bc509f2fe275527adc71db62b714669fd2",
      "tree": "94ff195d37bbce58e1a2b2b829f53b7a311f2361",
      "parents": [
        "9828830611137bb751ab3512082a3bd31f439e38"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 05 14:58:18 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 05 15:03:21 2012 -0700"
      },
      "message": "Dump KSM stats in the meminfo.\n\nChange-Id: I077dcb137ed743ea10fde1dbba4e86c340dec432\n"
    },
    {
      "commit": "2184a985da15eddd010e53120ebb1da9f8af53e1",
      "tree": "6bf5df31475ba7ae659bedb689cad6dbdbe44220",
      "parents": [
        "e4d8a5dd42070d919dbd774f24c6684ecf1e350e",
        "52c489cd63cca0361f374f7cb392018fabfa8bcc"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Apr 05 14:43:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 14:43:22 2012 -0700"
      },
      "message": "Merge \"Lockscreen settings per user\""
    },
    {
      "commit": "4532e6158474a263d9d26c2b42240bcf7ce9b172",
      "tree": "e0055acd68c0a8729077695ac671935aa58a1fad",
      "parents": [
        "9df6e7a926ce480baf70e97ee1b9ea387193f6ad"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 14:27:12 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 14:42:11 2012 -0700"
      },
      "message": "Refactor input system into its own service.\n\nExtracted the input system from the window manager service into\na new input manager service.  This will make it easier to\noffer new input-related features to applications.\n\nCleaned up the input manager service JNI layer somewhat to get rid\nof all of the unnecessary checks for whether the input manager\nhad been initialized.  Simplified the callback layer as well.\n\nChange-Id: I3175d01307aed1420780d3c093d2694b41edf66e\n"
    },
    {
      "commit": "52c489cd63cca0361f374f7cb392018fabfa8bcc",
      "tree": "7e994b33b5203f2492c0e6eb39a9f139d061b0bf",
      "parents": [
        "7c8fd157da36b68529b08b820051ce775f84a9bf"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 28 11:42:42 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Apr 05 14:03:36 2012 -0700"
      },
      "message": "Lockscreen settings per user\n\nMove all lockscreen related settings to LockSettingsService.\nLockPatternUtils uses this through IPC instead of Secure settings.\nMigrate old settings to new database managed by LockSettingsService.\nPasswords and patterns are stored in a new per-user location, except\n for the primary user, for backward compatibility.\nKeyguardViewMediator and LockPatternKeyguardView listen for changes\nto user and updates the lockscreen.\n\nSettings provider will look for Lock settings in the LockSettings\nservice now for the entries that used to be stored in Settings.\n\nChange-Id: I956cd5b95e2d9d45a6401af7e270e6a5aa2dcc98\n"
    },
    {
      "commit": "e4d8a5dd42070d919dbd774f24c6684ecf1e350e",
      "tree": "48851e37e63e74259bafcb03d1041c13d53053b0",
      "parents": [
        "9828830611137bb751ab3512082a3bd31f439e38"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Apr 05 13:10:37 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Apr 05 13:10:37 2012 -0700"
      },
      "message": "Fix failure to animate away exiting AppWindowToken\n\nA previous check in changed the collection we were pulling exiting\nAppWindowTokens from. Instead of pulling them from mExitingAppTokens\nthey came from mAppTokens and hence were not animated away.\n\nFixes bug 6296433.\n\nChange-Id: I23347085658fce5412abb8ea119ce7e6152cab8b\n"
    },
    {
      "commit": "9828830611137bb751ab3512082a3bd31f439e38",
      "tree": "c85feee713294fedae276d786e0dda3fb91340ef",
      "parents": [
        "5459c43b83c3a9d0406f01deffaadd2ef458518c",
        "dd8fab2629131b09367df747afd9a61e42dd1992"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Apr 05 11:55:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 11:55:06 2012 -0700"
      },
      "message": "Merge \"TaskStackBuilder and Activity navigation features for framework\""
    },
    {
      "commit": "dd8fab2629131b09367df747afd9a61e42dd1992",
      "tree": "933cb43fba2098c3e55ef6aa12f150d04f2c21f9",
      "parents": [
        "d9966c4c21c9d3a49454b1267e43907e0256a414"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Mar 22 17:47:27 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Apr 05 11:45:10 2012 -0700"
      },
      "message": "TaskStackBuilder and Activity navigation features for framework\n\nPromote navigation helpers from the support library to the core\nplatform.\n\nThe support library\u0027s meta-data element has been replaced with a\nfirst-class parentActivityName attribute. This attribute is valid\non both activity and activity-alias elements. An activity-alias\nwill inherit the target activity\u0027s parentActivityName if one is\nnot explicitly specified.\n\nAutomatic Up navigation for Activities\n\nAdd the public method onNavigateUp() to Activity. The default\nimplementation will use the metadata supplied in the manifest about an\nactivity\u0027s hierarchical parent (parentActivityName) to do the right\nthing.\n\nIf any activities in the parent chain require special Intent\narguments, the Activity subclass should override onNavigateUp() to\nproperly implement Up navigation for the app, supplying such arguments\nas needed.\n\nIf automatic Up navigation within the same task can\u0027t find an activity\nmatching the supplied intent in the current task stack, it will act as\nan in-app \"home\" and return to the root activity (presumably the app\u0027s\nfront page) in that task. (From this state, pressing \"back\" with\ndefault behavior will return to the launcher.)\n\nChange-Id: If163e27e59587f7af36975a09c986cb117ec3bc6\n"
    },
    {
      "commit": "963db55d59a170f4b17ff907c96615a19ef6fe17",
      "tree": "31256fd7b86014cf11b5e0ba54a7ba662908007a",
      "parents": [
        "dedf1b2727556223aafcebba1a567ffa816412d2"
      ],
      "author": {
        "name": "John Wang",
        "email": "johnwang@google.com",
        "time": "Fri Mar 30 16:04:06 2012 -0700"
      },
      "committer": {
        "name": "John Wang",
        "email": "johnwang@google.com",
        "time": "Thu Apr 05 11:30:37 2012 -0700"
      },
      "message": "Enhance Cell Location Api.\n\nTo boost accurary and enhance capability of cell location api,\ntwo new APIs, TelephonyManager.getAllCellInfo() and\nTelephonyManager.listen(LISTEN_CELL_INFO), are added. Two new\nClass, CellInfo and CellIdentity, are created.\n\nThis API change returns all information of one cell locaiton\nat the same time. It also provides additional LTE and timestamp information.\n\nChange-Id: I4d0f813107e625ec4ac88c8d980ffd171aa5fc30\n"
    },
    {
      "commit": "f87d19621dc2a30232bba1f51862a0b671eb9729",
      "tree": "8bf53cb17770100b6fd1c1f31f1b27eb7121ce3e",
      "parents": [
        "5b86de1e6b8f597ab2444de0f2274546321f1810"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 04 12:48:24 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 04 16:00:45 2012 -0700"
      },
      "message": "Clean up status bar, system bar, navigation bar management.\n\nThe status bar and navigation bar are two completely separate\nelements, with their own semantics.  The system bar now classifies\nitself as a navigation bar, since that is really how it behaves.\n\nThis required rewriting the HDMI resizing code, so that it is\nall done by PhoneWindowManager since that is what is responsible\nfor the size of the navigation bar (and thus now system bar).  This\nactually gets rid of a fair amount of code, and means we can also\ndo the same thing for a pure navigation bar.\n\nLikewise the system bar now has the navigation bar ability to be\nhidden when requested by system UI flags.  To get the behavior\nwe want on Xoom, we only allow the nav bar to be hidden when it\nwill help provide a better aspect ratio for showing widescreen\nvideos.\n\nFinally the nav/system bar now animates when hidden and shown.\n\nChange-Id: Ie927154b68376a0b61802f99171ff56b8da92e7a\n"
    },
    {
      "commit": "689b741abc93a3b44d7a39e9b138162bad330f23",
      "tree": "8d5e09964b44a0e7e6c72eea43018eff1377dcd0",
      "parents": [
        "271cb5c0d41910a20fe47283e401420635f5e423",
        "7d024d372431effc87168afdc7cbe387680c4935"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Apr 04 12:34:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 12:34:52 2012 -0700"
      },
      "message": "Merge \"Add initial framework for DNS service discovery\""
    },
    {
      "commit": "7d024d372431effc87168afdc7cbe387680c4935",
      "tree": "2e8a8389c8792db9cce4575e7d6da4d9a870b30d",
      "parents": [
        "26d4452a08813cdbb7280c475fe5527cdc9673a3"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 22 17:01:39 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Apr 04 12:24:56 2012 -0700"
      },
      "message": "Add initial framework for DNS service discovery\n\nChange-Id: I53c0b7ebfd75e520ebb7553612f1aa8413b6b79b\n"
    },
    {
      "commit": "c3a6cf79e3ba65342a2f992bc730257a1656e501",
      "tree": "a260a23b011b311ad7066ce88ef90737b49a266d",
      "parents": [
        "0048dc9d55db71cea9c140748fbdb8e1cfe79b44",
        "594316361d38d88b53c85bd5c8d58a92345e8187"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 12:00:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 12:00:48 2012 -0700"
      },
      "message": "Merge \"First separation of animation from AppWindowToken.\""
    },
    {
      "commit": "0048dc9d55db71cea9c140748fbdb8e1cfe79b44",
      "tree": "c08cfad39ad7e78aae49ec70601979091807ba7f",
      "parents": [
        "6153ddc8f14640ad9d0686bb692f21bbb2774dda",
        "d09cc4ba247e896cc95a57ed7a3247b55b1b68fc"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 11:58:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 11:58:50 2012 -0700"
      },
      "message": "Merge \"Move more items between layout and animate sides.\""
    },
    {
      "commit": "594316361d38d88b53c85bd5c8d58a92345e8187",
      "tree": "f2e5d69946a784301fb382ad0ded772b9c2b84d2",
      "parents": [
        "d09cc4ba247e896cc95a57ed7a3247b55b1b68fc"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 11:56:44 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 11:56:44 2012 -0700"
      },
      "message": "First separation of animation from AppWindowToken.\n\nNew class AppWindowAnimator pulls animation out of AppWindowToken.\n\nChange-Id: Ic1ccb6ec2bf091f1f901fe3c20cbeb242376ae6b\n"
    },
    {
      "commit": "d09cc4ba247e896cc95a57ed7a3247b55b1b68fc",
      "tree": "cee7c3eff09b78a9b1a37bc9d7921ac2a4c6548e",
      "parents": [
        "4a727e342134f409c2cf7cf2f77dbe9c15128337"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 10:23:31 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 10:23:31 2012 -0700"
      },
      "message": "Move more items between layout and animate sides.\n\n- Isolate DimAnimator animation from the layout side.\n- Isolate mWallpaperForceHidingChanged and mOrientationChangeComplete\n  from the animation side.\n- Eliminate a redundant setting of mOrientationChangeComplete to true.\n  It was already true at that point.\n- Synchronize changes to mWindows and mAppTokens on mAnimator. This is\n  a nop until we go to multiple threads.\n- Synchronize AppWindowToken.freezingScreen on mAnimator.\n- Modification to repeat layout debugging including temporary enabling\n  of spew on layout repeats.\n\nChange-Id: Ic8d82b1c197144aaf6957caa5f71e175288220f2\n"
    },
    {
      "commit": "69ccdbd78a6dbcf32d6f734d238e5eaaa606a85f",
      "tree": "1b31e196d9190d3208e5fa09adc60514650a1952",
      "parents": [
        "3e29718d34eba7c6c455fa6bb622856fe651876e",
        "bc52ca28148a9a8f2935c380d9e97d56a75be416"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Apr 03 11:53:47 2012 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Apr 03 11:53:47 2012 -0700"
      },
      "message": "Merge commit \u0027bc52ca2\u0027\n\nConflicts:\n\tservices/java/com/android/server/am/ActivityManagerService.java\n\nChange-Id: I6da33a191a4ac13d08d8350a432b205e3dff85da\n"
    },
    {
      "commit": "15001eafa290e70b29a487ec196d99bf284fa103",
      "tree": "d1ece2413cff4b52ec0b51730208695ac369b26a",
      "parents": [
        "4a727e342134f409c2cf7cf2f77dbe9c15128337",
        "0dedffd656efb74a998bf697192720c93c48994d"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 03 09:59:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 09:59:55 2012 -0700"
      },
      "message": "Merge \"Dump the uid of a notification, for debugging.\""
    },
    {
      "commit": "191310b7d367b491496de85dce5e286ebfdc4c73",
      "tree": "ac5c9be3a4fd8cf6fba9fe0eef0d862e0568ba83",
      "parents": [
        "8d56b0e1d24f7392314df4be6503af395a843696",
        "34db3d65d6e1489f06fe9ec18a897bba3fa9c4d3"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Apr 02 16:46:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 16:46:26 2012 -0700"
      },
      "message": "Merge \"Fix a regression in activity manager regarding killing stopped processes.\""
    },
    {
      "commit": "34db3d65d6e1489f06fe9ec18a897bba3fa9c4d3",
      "tree": "495282c02dce783081a8a139ead1336b0f2d0730",
      "parents": [
        "58a40a3e92f8a53ac1068f0839dec4a1707fa6fb"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Apr 02 16:35:19 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Apr 02 16:35:19 2012 -0700"
      },
      "message": "Fix a regression in activity manager regarding killing stopped processes.\n\nBug: 6275175\nChange-Id: Ib1fa80cba9d21799f36fec999899e54a0fe8da51\n"
    },
    {
      "commit": "1d6013357847983180a317e2acaf807bde8b7ea7",
      "tree": "d63dfdc7b7739835e79fc46d9f6d7a73ab0726c5",
      "parents": [
        "ea7ff4d2fe58505ec66c0e994ac1e03561b2b836",
        "749a7bb28b2aff7a77a8c7dce01e086c2bd82c6b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:57:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 13:57:42 2012 -0700"
      },
      "message": "Merge \"Refactor to convert four state booleans to int.\""
    },
    {
      "commit": "749a7bb28b2aff7a77a8c7dce01e086c2bd82c6b",
      "tree": "802ed222902653a617c5e59c482595cf31d5630a",
      "parents": [
        "48ba1e7f530dab01bd2e733b6466246380720a92"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:49:53 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:49:53 2012 -0700"
      },
      "message": "Refactor to convert four state booleans to int.\n\nReplace four booleans (mDrawPending, mCommitDrawPending, mReadyToShow\nand mHasDrawn) with a single int that can take on the four states.\n\nMove mLastHidden from WindowState to WindowStateAnimator.\n\nChange-Id: Ieff319dfa19123bf5a6cdc98e9ab28fd432b8153\n"
    },
    {
      "commit": "ea7ff4d2fe58505ec66c0e994ac1e03561b2b836",
      "tree": "f1b1786eaac33cb845518d41c52a9b00c16d8d05",
      "parents": [
        "5d724f50d4d3907c4742dadd666f5355f046b5b1",
        "48ba1e7f530dab01bd2e733b6466246380720a92"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:24:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 13:24:55 2012 -0700"
      },
      "message": "Merge \"Defer a couple of Surface actions for WSAnimator.\""
    },
    {
      "commit": "48ba1e7f530dab01bd2e733b6466246380720a92",
      "tree": "bb79ee4b9fa80b9f9a8af5ec6818ae6456976d67",
      "parents": [
        "c8bc97e53044cd62c0e023fdc441fd13127d0283"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:18:16 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:18:16 2012 -0700"
      },
      "message": "Defer a couple of Surface actions for WSAnimator.\n\nPerform the set-transparent-region-hint operation outside of the\nWindowManagerService loop. This is to isolate the Surface operation\nfrom the WindowManagerService inner loop.\n\nSimilarly, defer the setWallpaperOffset call so it\u0027s animation is not\ncoupled to the WindowManagerService inner loop.\n\nNote that both operations are still being done on the\nWindowManagerService thread.\n\nChange-Id: I97f030b2a9b7cffe91c77342a299bfac6e59e9f8\n"
    },
    {
      "commit": "5d724f50d4d3907c4742dadd666f5355f046b5b1",
      "tree": "c107438bb6ca1997d3e5a392ac9834128d9ac1ff",
      "parents": [
        "0cf7507c6f37b4c259f92cfff0221a45dce45bef",
        "c8bc97e53044cd62c0e023fdc441fd13127d0283"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 12:58:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 12:58:23 2012 -0700"
      },
      "message": "Merge \"Further isolate the Surface from WindowState.\""
    },
    {
      "commit": "c8bc97e53044cd62c0e023fdc441fd13127d0283",
      "tree": "9cf90df6164fbcad6c6644c4ce385fae9865db63",
      "parents": [
        "b76a5608ecd05360daf484fae33ef88df285e038"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 12:54:54 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 12:54:54 2012 -0700"
      },
      "message": "Further isolate the Surface from WindowState.\n\nReplace references to mWinAnimator.mSurface with new member\nmHasSurface.\n\nClean up odd looping structures.\n\nSimplify logging.\n\nChange-Id: I9cc52a657044220d7b92528928b11bb18a724aef\n"
    },
    {
      "commit": "e6c966caa3aff3099e6fb00caefa10387f57b9c3",
      "tree": "83cc40d420f132a1b1d22f3d6fc8d733c760643d",
      "parents": [
        "78b0d9faddd11b0d33fe5164bb83224ff89e4305",
        "a3fabff98590d26f0c362cb09dc378fece66215c"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Mon Apr 02 09:45:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 09:45:36 2012 -0700"
      },
      "message": "Merge \"Add frame counter to dumpGfxInfo\""
    },
    {
      "commit": "2c93efc9eb188532472edc9e0c3e1ab8121aa20d",
      "tree": "712292267f39b8a1785ec77ad400e6afa023d3ce",
      "parents": [
        "fbdff47add9d886f1fac70230f05d29b88890fc0"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Apr 02 19:33:47 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Apr 02 19:54:28 2012 +0900"
      },
      "message": "Hide ongoing notification icon when the screen is locked.\n\nBug: 5858903\nChange-Id: Ibee9123f4a520e77f4baf8bdd3d75364ab451100\n"
    },
    {
      "commit": "61d6c8ca49d4a3d5bf4c961878a3f71145d75058",
      "tree": "dac339e3067c6e8cd20e759f1d1e5b0d402d05e4",
      "parents": [
        "96695f9ba04f85b24f906c59673e92f00f89adbe",
        "3a3a6cfd8ec12208ca75c0d0d871d19d76c34194"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 30 17:36:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 17:36:32 2012 -0700"
      },
      "message": "Merge \"Add new feature to let apps layout over status bar / system bar.\""
    },
    {
      "commit": "3a3a6cfd8ec12208ca75c0d0d871d19d76c34194",
      "tree": "58e93b1349c5594a8231ee2269d42248eaf55547",
      "parents": [
        "5eeee5e0bbf5aba0097a510b3e9dbb286b2b30cd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:24:04 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 30 15:22:04 2012 -0700"
      },
      "message": "Add new feature to let apps layout over status bar / system bar.\n\nThe main change is a few new flags you can supply to\nView.setSystemUiVisibility().  One is a new visibility mode,\nSYSTEM_UI_FLAG_FULLSCREEN, which is basically the same as\nthe global FLAG_FULLSCREEN option for windows, but driven as\npart of the system UI state.\n\nThere are also three new flags for telling the framework that you\nwould like to have your application\u0027s UI ignore screen\ndecorations -- SYSTEM_UI_FLAG_LAYOUT_NO_NAVIGATION for going\nbehind the navigation bar and SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN\nfor ignoring full screen decorations (that is the status bar).\n\nIn combination with this you can use SYSTEM_UI_FLAG_LAYOUT_STABLE\nto have the framework report consistent insets to your application.\n\nWhen using NO_NAVIGATION, when the user taps the screen we now\nalso automatically clear ONLY_CONTENT, so that we atomically show\nboth UI elements.  This should make it easy for apps like video\nplayers that want to move between fully full-screen and regular\nmodes.\n\nThe ActionBar has also been extended when in overlay mode so\nthat it will adjust the system window insets to also account\nfor its space, and allow it to be hidden using the new\nSYSTEM_UI_FLAG_FULLSCREEN.\n\nChange-Id: Ic8db1adec49a0f420bfe40c1d92eb21307856d0b\n"
    },
    {
      "commit": "4185012ad323847fb60d32224a642df629c0e06c",
      "tree": "0d65190070097b7ad4169473d1dc1d5e42b591ca",
      "parents": [
        "5eeee5e0bbf5aba0097a510b3e9dbb286b2b30cd",
        "a608b882327fbb393bde3854953cd322a6fea675"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 30 13:22:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 13:22:21 2012 -0700"
      },
      "message": "Merge \"Move variables into animation class.\""
    },
    {
      "commit": "a608b882327fbb393bde3854953cd322a6fea675",
      "tree": "32f957f0baae3b13a76fcbab3e7b23e4198735a6",
      "parents": [
        "d87946ba48b62a6a83fd971ef7c4c419407db836"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 30 13:03:49 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 30 13:19:45 2012 -0700"
      },
      "message": "Move variables into animation class.\n\nMoved drawPending and commitDrawPending and associated methods from\nWindowState to WindowStateAnimator.\n\nCreated mechanism for passing results from WindowAnimator to\nWindowManagerService. Initial results passed are mUpdateRotation and\nmWallpaperMayChange.\n\nChange-Id: Ib03d28f921580ac9426ea9233bea6eafc9ea964c\n"
    },
    {
      "commit": "0dedffd656efb74a998bf697192720c93c48994d",
      "tree": "f4f3ed7be5af62166d6a49c0266d06a230884ea8",
      "parents": [
        "58a40a3e92f8a53ac1068f0839dec4a1707fa6fb"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 30 10:47:23 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 30 10:47:23 2012 -0700"
      },
      "message": "Dump the uid of a notification, for debugging.\n\nUseful for multiuser testing.\n\nChange-Id: I4aac8eda9b2f9c7ada07bd6a040260beb1acce87\n"
    },
    {
      "commit": "a3fabff98590d26f0c362cb09dc378fece66215c",
      "tree": "06574f65dd864672e7f80816db5b5a826a58624e",
      "parents": [
        "f9c1f9935b349fe1a3f27be4462026dd212f8b78"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Wed Mar 28 17:22:29 2012 +0200"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Mar 30 05:06:55 2012 -0700"
      },
      "message": "Add frame counter to dumpGfxInfo\n\nChange-Id: I016f706e32cbdbce014795d8fc537b15c389dc7a\n"
    },
    {
      "commit": "50c69b5d8ae4bc973e53cbe3b58b0eb0299e25c8",
      "tree": "604ed9cea02d2120bc49e995c3427123216bd96a",
      "parents": [
        "6ef1eedac77977a4979a293499767e17ed3a4e03",
        "7f2668c8469934ce83a5647977f6e74ab782cf07"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Mar 30 05:02:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 05:02:57 2012 -0700"
      },
      "message": "Merge \"Preload recents on phones with hard nav keys\""
    },
    {
      "commit": "15d5a964fd120766d049fddfc051d10eef5e440d",
      "tree": "4edf64e3556ecc9c164083bbd6682860893547a4",
      "parents": [
        "f64bf84eeb8f7b63efa322a73a5279bd3c297784",
        "d87946ba48b62a6a83fd971ef7c4c419407db836"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 29 18:03:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 18:03:32 2012 -0700"
      },
      "message": "Merge \"Remove obsolete variable masking valid one.\""
    },
    {
      "commit": "d87946ba48b62a6a83fd971ef7c4c419407db836",
      "tree": "ff03729c7e9364af1911f726c1fbf82cded90ea0",
      "parents": [
        "1505ce29cfa62665cc645c319ecc7c288eb078cc"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 29 18:00:19 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 29 18:00:19 2012 -0700"
      },
      "message": "Remove obsolete variable masking valid one.\n\nThe mUpdateRotation variable was still in the WindowManagerService\nmInnerFields object. This was masking the true mUpdateRotation found in\nWindowAnimator.\n\nFixes Bug 6240025.\n\nChange-Id: I6531002f870f30d22e19ba9af5cac86e1c7b9bcb\n"
    },
    {
      "commit": "bc52ca28148a9a8f2935c380d9e97d56a75be416",
      "tree": "d108eb324db390897b736225dad2140f8f43eb6f",
      "parents": [
        "c7e56eff1b48b0b6e871bdd12027b6b3e80345de"
      ],
      "author": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Thu Mar 29 15:11:44 2012 -0700"
      },
      "committer": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Thu Mar 29 15:37:11 2012 -0700"
      },
      "message": "Stop ANR dialogs from appearing when ActivityManager dialogs should not be shown\n\nStop ANR dialogs from appearing on devices where the ActivityManager dialogs\nshould not be shown. Instead, kill the process. This is preferable because the\nuser can\u0027t actually do anything on the device.\n\nTESTED \u003d runs on device with that config, simulated ANR using test app.\n\nChange-Id: I6267000afd12ef929f0c625220184c6ab0139552\n"
    },
    {
      "commit": "a08f3e866a46c990e786defa95013ee0313b0887",
      "tree": "12cdc8abf60c856d60eec99dda5bab3e65aebfd0",
      "parents": [
        "e32a4ac8d39b96d965acccd1d3e9ef111c4cfa37",
        "ebb2d8d708c5c58c79ae88ac2bd10450a856f702"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 29 15:12:33 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 15:12:33 2012 -0700"
      },
      "message": "Merge \"Enable vsync traversals by default.\""
    }
  ],
  "next": "ebb2d8d708c5c58c79ae88ac2bd10450a856f702"
}
