)]}'
{
  "log": [
    {
      "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.\""
    },
    {
      "commit": "8247add51db34afd8ccb16ec120f4f1f6d80d576",
      "tree": "137af59149d56e015f1483e0f0ac41c3ef4aa01d",
      "parents": [
        "94828c3f3b41df427363cc890a779a7af937275f",
        "18651804ff913a6c296f772e53bc2d3b84b1b923"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Mar 07 15:21:31 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 15:21:31 2012 -0800"
      },
      "message": "Merge \"Fix 6119433: disambiguate screen brightness changes from other lights\""
    },
    {
      "commit": "18651804ff913a6c296f772e53bc2d3b84b1b923",
      "tree": "9e0f9ed556218e5f5bc15a72133d089025ad0b30",
      "parents": [
        "4b97257979034a8031040b84d8f016d8f3175313"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Mar 07 14:19:56 2012 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Mar 07 14:59:06 2012 -0800"
      },
      "message": "Fix 6119433: disambiguate screen brightness changes from other lights\n\nThis fixes a bug where the code asked to change the keyboard brightness\non a device that doesn\u0027t support it.  Instead of animating the keyboard\nbrightness, it ended up animating the display brightness and invoking\nthe power off animation as a result.  The fix is to ignore keyboard\nbrightness because we don\u0027t have any devices that currently support it.\n\nChange-Id: I672d89f92f991812ea676f19c40058b2d3008656\n"
    },
    {
      "commit": "091ca2d5fb0592304358a9dfcd7931de68bb9983",
      "tree": "7c4f993dacdb633c4a4b5a7e013e1a3122e061fa",
      "parents": [
        "5eb37241fee7e656cf9787bf00a160e94b4894fc",
        "6341fcecc8826924a4bb24169aaf80fec9a20894"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 06 20:04:26 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 20:04:26 2012 -0800"
      },
      "message": "Merge \"Avoid updating network stats after shutdown.\""
    },
    {
      "commit": "6341fcecc8826924a4bb24169aaf80fec9a20894",
      "tree": "982eaad71633447618cd0dda4562498d1f8ceb2a",
      "parents": [
        "09c8f48c105c4ed299617aaa892c7f0cd891b144"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 06 19:59:57 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 06 19:59:57 2012 -0800"
      },
      "message": "Avoid updating network stats after shutdown.\n\nBug: 6109476\nChange-Id: I9a3a8b182c8fa56d83ddc755d204d5b267c9bc5d\n"
    },
    {
      "commit": "5eb37241fee7e656cf9787bf00a160e94b4894fc",
      "tree": "4f6291fcc4462247152ee9927a1ebb90a331266c",
      "parents": [
        "afeecb0740938d295083335950ea901d832a794c",
        "27ff913d56de8400083a13fc572e2812b32c890c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 06 19:06:25 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 19:06:25 2012 -0800"
      },
      "message": "Merge \"Work on more low memory reporting to apps.\""
    },
    {
      "commit": "27ff913d56de8400083a13fc572e2812b32c890c",
      "tree": "f30ec6efb44658b448c5e049bf0c1c3e40f0f06c",
      "parents": [
        "4f03d35f9c040222e6a46dde807fe2ff7852beb8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 06 14:57:58 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 06 18:46:32 2012 -0800"
      },
      "message": "Work on more low memory reporting to apps.\n\nThere are now some new trim memory levels that are sent to\nnon-background applications as RAM becomes low.\n\nThere is a new API for an application to retrieve information\nabout memory trimming and such on demand.\n\nFixed various checks against the memory trim level to be\nrobust (not compare against exact values).\n\nChange-Id: Ifd1c6151124350168aef20a94e517166fd2e03eb\n"
    },
    {
      "commit": "06402e91e9a94ddccf4562fd98b358aad776b6aa",
      "tree": "15d09d3810703211144e762eff840d15732ffb79",
      "parents": [
        "135fb111dfa512809166ea3a0967ef6d67c76a2b",
        "470007f69a258ccebb7c04927210a091dbcbe181"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Mar 06 11:30:28 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 11:30:28 2012 -0800"
      },
      "message": "Merge \"Make NDC not block forever and handle restart.\""
    },
    {
      "commit": "135fb111dfa512809166ea3a0967ef6d67c76a2b",
      "tree": "aebcba7c8f12c38dbc45c77dbabe9a8dd882b76f",
      "parents": [
        "d1f0023ddf1633eb5d9aa98995086b0fe3080a85",
        "26caf7adf62fa36dc3fa7c194ff38520d1003f11"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 06 11:12:40 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 11:12:40 2012 -0800"
      },
      "message": "Merge \"Fix deadlock by making DropBoxManager call async.\""
    },
    {
      "commit": "4f03d35f9c040222e6a46dde807fe2ff7852beb8",
      "tree": "b73b05ebb248ea627f9428b4b8dc3c1705b3bfba",
      "parents": [
        "b7fdddab0d1cfa666747a0295fcea4bfea709737",
        "6569625beef705ec489662b80d372c4423f9c7f7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 06 10:34:18 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 10:34:18 2012 -0800"
      },
      "message": "Merge \"Fix issues #6103378 and #5959515.\""
    },
    {
      "commit": "26caf7adf62fa36dc3fa7c194ff38520d1003f11",
      "tree": "75022a6bf1bd2dde95c2a50b82bd7b2d526d348a",
      "parents": [
        "eb00769e8983a02397db26a5413147a975b47c1f"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun Mar 04 17:17:59 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 06 09:30:18 2012 -0800"
      },
      "message": "Fix deadlock by making DropBoxManager call async.\n\nCreated a Handler and used it to make sendBroadcast call asynchronously.\nDeadlock was caused by WindowManagerService Log.wtf call requiring\nActivityManagerService lock while holding its own lock. At the same time\nActivityManagerService was holding its lock while waiting for\nWindowManagerService lock.\n\nTested by forcing a Log.wtf in\nWindowManagerServices.updateWindowsAppsAndRotationAnimationsLocked\ninside mAppTokens loop. Then ran \u0027adb shell monkey -v -v 500000\u0027.\nWithout this fix it would lock up and reboot within a couple of minutes.\nWith this fix it runs until the Camera app crashes. But that\u0027s a\ndifferent bug...\n\nFixes bug 6112676.\n\nChange-Id: I5b360aa08412d117b1765f01bacd931020509db7\n"
    },
    {
      "commit": "6569625beef705ec489662b80d372c4423f9c7f7",
      "tree": "379e247e59452d80275614f22b5f153fa6dc9f79",
      "parents": [
        "c3b91e9afd981f1a994a1024c3e822cf909f070d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 05 18:49:21 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 05 18:49:21 2012 -0800"
      },
      "message": "Fix issues #6103378 and #5959515.\n\nChange-Id: I762d86dd7119c9ac02f4b8803c4a250c6b7637c7\n6103378: APR: IOOBE at android.content.pm.PackageParser.generatePackageInfo(\n    PackageParser.java:355)\n5959515: PackageManager doesn\u0027t validate className in setComponentEnabledSetting\n"
    },
    {
      "commit": "7e4e561bc717a6eea4e0d06ec4173ad27420425f",
      "tree": "3f01d44a6d26494572a10318595895e4bdaf77cf",
      "parents": [
        "fb9c41c2060497a459d16c30122e1d082895e5d1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 05 14:37:29 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 05 14:37:29 2012 -0800"
      },
      "message": "Ignore draw requests when the display is off\n\nWhen WindowManagerService\u0027s events are enabled/disabled, the state of the\ndisplay is dispatched to the known windows. This allows ViewRootImpl to\nignore draw requests until the screen is turned back on. This can potentially\nlead to significant battery savings. For instance, a launcher widget showing\na repeating animation will cause the CPU and the GPU to wake up regularly\nwithout this change.\n(Change submitted by Intel and merged manually)\n\nChange-Id: I7f93b0e60c3e6de1705f619e80860c36b1cdb978\n"
    },
    {
      "commit": "e78d7670ca6d0f7cd66edeef791978234dd8d857",
      "tree": "d75b07a9398c39b9330a5c9d6d4cbf81f20aa474",
      "parents": [
        "c8a0a159949a8b975b7e48a66f7034e2748f367d",
        "d975403a2dc71132cab1f6bfa111a9b353f307f8"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Mar 05 13:19:33 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 05 13:19:33 2012 -0800"
      },
      "message": "Merge \"PowerManagerService: only turn off screen when we really mean to\""
    },
    {
      "commit": "d975403a2dc71132cab1f6bfa111a9b353f307f8",
      "tree": "f150df23689531e0857821c00b599dcb7cb5ecd8",
      "parents": [
        "e6e47f0517b98055625abc21a85eaa702374495a"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Mar 05 09:55:41 2012 -0800"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Mar 05 13:13:33 2012 -0800"
      },
      "message": "PowerManagerService: only turn off screen when we really mean to\n\nChange-Id: I8aa574b38a4d901fce91b6d7771207949f9c8044\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "c3b91e9afd981f1a994a1024c3e822cf909f070d",
      "tree": "cfa6798cb4ac361754be7d95116a1838fdd0b897",
      "parents": [
        "5a2b6077001d948f5d7667829c95b06228556609",
        "9fd74805c8be91df78f3eccc40ab2466c8114fc9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 05 11:45:19 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 05 11:45:19 2012 -0800"
      },
      "message": "Merge \"More work on rotation animation.\""
    },
    {
      "commit": "9fd74805c8be91df78f3eccc40ab2466c8114fc9",
      "tree": "85c16457755a8dc81a92b740416143b632f542d0",
      "parents": [
        "f8acebe4a5dfc5d8f24e55b50170b6053ba060de"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 01 19:26:31 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 05 11:44:10 2012 -0800"
      },
      "message": "More work on rotation animation.\n\nThe black frame is now a separate animation element.  This allows us\nto have it move through the aspect ratio change, without the old\nand new screen elements doing weird aspect ratio scalings.  This\nmakes the animation generally look different (more like a reveal),\nnot sure if it is better or worse, but definitely has less artifacts\nin things like the gallery.\n\nAlso tweaked the animation definitions a bit.\n\nChange-Id: I94c274ba04bbc7a675946dc6c1778e19386e4a66\n"
    },
    {
      "commit": "db9e6937f18ceeb5715954c828ac4a51e383d140",
      "tree": "38b6165086408ed99e54fbca8e8ac93ac3b9e0f5",
      "parents": [
        "86add4350c228a9a33c71d695098ea8ba7c7c275",
        "86a5f5b9afa97a4ed6f5a2466fb9359ea131e2fb"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 02 16:33:01 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 16:33:01 2012 -0800"
      },
      "message": "Merge \"Enhance WPS\""
    },
    {
      "commit": "86add4350c228a9a33c71d695098ea8ba7c7c275",
      "tree": "1e8581fc4b23d582365312dbf4bb00c524a9d56b",
      "parents": [
        "b6df928e5eff4448f670b92c1ce00de55f0f0eac"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 02 16:09:01 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 02 16:09:01 2012 -0800"
      },
      "message": "Fix reference to wrong ArrayList.\nFixes bug 6107296.\n\nChange-Id: I44f2793c1c92686b276e491436a10be4f18c0d48\n"
    },
    {
      "commit": "b6df928e5eff4448f670b92c1ce00de55f0f0eac",
      "tree": "5ff8ea2f4b71b6af87baa2eb12a115115fa90cef",
      "parents": [
        "dc043b58cb3567246d00057d90e502ea16e1ebf2",
        "a731cd302dc39deaf835aeb52af12f391806a4bf"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 02 16:06:33 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 16:06:33 2012 -0800"
      },
      "message": "Merge \"Fix rotation so orientation changes aren\u0027t dropped. Modify test so that rotation animation is entered one final time after rotation completes. This last time causes mUpdateRotation to be set true forcing a test for orientation change. Fixes bug 6109189.\""
    },
    {
      "commit": "a731cd302dc39deaf835aeb52af12f391806a4bf",
      "tree": "297b7ee73c6bf14805e7213d423764a7d84de220",
      "parents": [
        "861d5ecc7cde0bf7f77ce31d5af2d56ee23b3aee"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 02 15:23:55 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 02 16:03:18 2012 -0800"
      },
      "message": "Fix rotation so orientation changes aren\u0027t dropped.\nModify test so that rotation animation is entered one final time after rotation completes. This last time causes mUpdateRotation to be set true forcing a test for orientation change.\nFixes bug 6109189.\n\nChange-Id: I25475f336a3439a56b1c540205d09ee48c1d2b7c\n"
    },
    {
      "commit": "86a5f5b9afa97a4ed6f5a2466fb9359ea131e2fb",
      "tree": "bee6fb52f69b677065cc1ee4e12f53e07ae00023",
      "parents": [
        "1a7dd039f189036709bc2253ba50955913f59d7a"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Feb 28 17:03:56 2012 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Mar 02 14:09:53 2012 -0800"
      },
      "message": "Enhance WPS\n\n- Add a cancel API\n- Add more error reporting on WPS\n- Fix network status reporting that showed up with new implementation\n\nChange-Id: I499796c80d16d18df95fb702d029aa7e7283b603\n"
    },
    {
      "commit": "7b72ea71b90f1c12ad9b104cc2e79499d98de863",
      "tree": "c3cfcbc60de46a4fe74fb2935677a8d34569ff64",
      "parents": [
        "ec418d3eae3d10cdc1b9d71f63648ce356722a94"
      ],
      "author": {
        "name": "yoonsung.nam",
        "email": "yoonsung.nam@samsung.com",
        "time": "Fri Mar 02 19:56:16 2012 +0900"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Mar 02 10:23:03 2012 -0800"
      },
      "message": "Fix the bug net.dns1.pid is same as net.dns2.pid\n\nwritePidDns() does not increase the index in case first given dns\nalready exist in the property.\n\nChange-Id: I1129d0042929b3ee119160e53cae0e4143c7ea88\nSigned-off-by: yoonsung.nam \u003cyoonsung.nam@samsung.com\u003e\n"
    },
    {
      "commit": "f8acebe4a5dfc5d8f24e55b50170b6053ba060de",
      "tree": "710691e2f85eec353108f2817883724b3c00450a",
      "parents": [
        "38addbe3aba92ca13d6a94a0103d60e5f14c79d3",
        "dbb7991b4e4638b284814b50e79cacc1e1c9d8cd"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 01 19:29:46 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 19:29:46 2012 -0800"
      },
      "message": "Merge \"Separate animation steps into start, step and finish phases. Fixes bug 6089126.\""
    },
    {
      "commit": "b132506e6e104f9c1fad15b5ee7cbc259fcd87c8",
      "tree": "e31ba939576dff7690d761491b75e1f039ed740c",
      "parents": [
        "14700016e9270de4e57a29ef29bf7949cd32518d",
        "0450510f5932c07e66c1208f007711fe514d2555"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 01 19:21:22 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 19:21:22 2012 -0800"
      },
      "message": "Merge \"Fix issue where pm would clear preferred apps when updating an app.\""
    },
    {
      "commit": "dbb7991b4e4638b284814b50e79cacc1e1c9d8cd",
      "tree": "6cbd560dadbcf6673a9f023ef170ae95a4af89dd",
      "parents": [
        "5bb59daf42fb24c1131effd4265c2386304feceb"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 01 18:59:14 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 01 19:06:07 2012 -0800"
      },
      "message": "Separate animation steps into start, step and finish phases.\nFixes bug 6089126.\n\nChange-Id: Iafbde36ff719640335a7ecf762e1d991cf7915e4\n"
    },
    {
      "commit": "209266e93f13f598a52b7706319ae1119311e10c",
      "tree": "fc80a01541ac9a229963b9b220b6b84d197b14b5",
      "parents": [
        "ac5a3a1c123ba58ed75ed7ddaf3f82eec37606c7",
        "d3975a917799b85cacaf382b65c5832813066b51"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 01 16:26:52 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 16:26:52 2012 -0800"
      },
      "message": "Merge \"Fix WifiManager async API\""
    },
    {
      "commit": "46f31c31ea76e8f8a835abbc6a2929ab0b929965",
      "tree": "eb12e15966e39173326fa94d873180bd37d8b973",
      "parents": [
        "3f4b1c4d582394646043f1a67527ed3e9f999e1b"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Mar 01 14:36:07 2012 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Mar 01 14:56:47 2012 -0800"
      },
      "message": "Fix 5797764: fix crash on tablets\n\nThis fixes a crash on tablets introduced by Change Ifad76fb2. It was caused\nby calling nativeStartSurfaceFlingerAnimation() on devices that previously\ndidn\u0027t call it and apparently don\u0027t support some feature it uses.\n\nChange-Id: Ia4c04e7e611f45cde0fbeb861aec3435d1719552\n"
    },
    {
      "commit": "3f4b1c4d582394646043f1a67527ed3e9f999e1b",
      "tree": "70746569badc033714fdd5df100edda0093e1b5f",
      "parents": [
        "cab063cf3804539d98086eab9c2d07e0dddd5aab",
        "92e66dd6835cd5fefad463c79d0589166e8fd3a7"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Mar 01 14:30:21 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 14:30:21 2012 -0800"
      },
      "message": "Merge \"Fix 5797764: don\u0027t hold PowerManager lock when changing native brightness\""
    },
    {
      "commit": "d3975a917799b85cacaf382b65c5832813066b51",
      "tree": "35f249be09330ebf5222b139bd1c2355823e7e88",
      "parents": [
        "5bb59daf42fb24c1131effd4265c2386304feceb"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Feb 24 10:54:13 2012 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 01 13:57:23 2012 -0800"
      },
      "message": "Fix WifiManager async API\n\nFix the current asynchronous API to use callback like the way\nwas done with p2p API.\n\nIn the process, fix the use of WPS\n\nChange-Id: Ib6f8714cf51b3525b655948268804e7eaaf17587\n"
    },
    {
      "commit": "5bb59daf42fb24c1131effd4265c2386304feceb",
      "tree": "6db4046e65bf7e4060834de9b5246993cf976ad6",
      "parents": [
        "faf88b85e27ccdba225ec8a501803224a76b9c93"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 01 12:39:25 2012 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 01 13:00:30 2012 -0800"
      },
      "message": "Merge: Send UpdateLock broadcasts to manifest receivers\n\nSo that e.g. the system update service doesn\u0027t need to run all the time.\n\nBug 5543442\n\nChange-Id: I4cd38240e67851daa5542a2962953e5dbed15b86\n"
    },
    {
      "commit": "10bcb6fbb1afda4e8ce8e23dc6620500cea09461",
      "tree": "342b668ce2d1afcbb2f69291e801976c3f910ee6",
      "parents": [
        "592c85cd6c083997ee7f31ecbd52ab67942467d6",
        "c9dac1185d6944e4bdb851a06ae07ea3621042bf"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Mar 01 08:13:24 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 08:13:24 2012 -0800"
      },
      "message": "Merge \"Don\u0027t forget to turn off mobile_dun\""
    },
    {
      "commit": "43d8a95fa8dfd26ba8c56ac7489a8bc77c77034c",
      "tree": "8aed3c6b7190073512833b461e4e28aa2a9fe657",
      "parents": [
        "7084e75282d6c800a1b889eff66794a8cd62e0c5",
        "07573b32494acbabd21979d8b9584c1ed3f7a6ad"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Feb 29 19:33:06 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 19:33:06 2012 -0800"
      },
      "message": "Merge \"Improve Wi-Fi hand-off\""
    },
    {
      "commit": "07573b32494acbabd21979d8b9584c1ed3f7a6ad",
      "tree": "ad3a4a15c889b4b175717cd38a28a92601ed82ae",
      "parents": [
        "6b48f088b1e0bed242118422c88fea8d714307e0"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Jan 27 21:00:19 2012 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Feb 29 17:33:36 2012 -0800"
      },
      "message": "Improve Wi-Fi hand-off\n\nWhen Wi-fi connects at L2 layer, the beacons reach and the device\ncan maintain a connection to the access point, but the application\nconnectivity can be flaky (due to bigger packet size exchange).\n\nWe now use Watchdog to monitor the quality of the last hop on\nWi-Fi using signal strength and ARP connectivity as indicators\nto decide if the link is good enough to switch to Wi-Fi as the uplink.\n\nARP pings are useful for link validation but can still get through\nwhen the application traffic fails to go through and thus not best indicator\nreal packet loss since they are tiny packets (28 bytes) and have\nmuch low chance of packet corruption than the regular data\npackets.\n\nSignal strength and ARP used together ends up working well in tests.\nThe goal is to switch to Wi-Fi after validating ARP transfer\nand RSSI and then switching out of Wi-Fi when we hit a low\nsignal strength threshold and waiting until the signal strength\nimproves and validating ARP transfer.\n\nChange-Id: Ica593291ec7772da892f03cf45b649635b730c47\n"
    },
    {
      "commit": "470007f69a258ccebb7c04927210a091dbcbe181",
      "tree": "3786344e495900f9218baa40b46e03cbbdc9f68a",
      "parents": [
        "502695d5283917d4c9e5a549d01c431dea4b1a5c"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 07 11:36:55 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Feb 29 16:53:27 2012 -0800"
      },
      "message": "Make NDC not block forever and handle restart.\n\nStill possible for netd to get wedged but system won\u0027t die because of it.\nLeads the way to having forking netd - then only individual commands would\nwedge, promoting stability.\n\nbug:5864209\nbug:6019952\nChange-Id: I43e4c5072863b8b812d4fe24d30d92eb1a11651a\n"
    },
    {
      "commit": "8662cab5c6a01ea5c426512e6f6d2cf3e158aea0",
      "tree": "3b59cda27e624d46603427888e906e3686c00379",
      "parents": [
        "c021a119a2b2b274e3a0bc06003e389a00de9112"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 23 14:59:36 2012 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 29 14:05:24 2012 -0800"
      },
      "message": "Merge: Introduce UpdateLocks\n\nAn \"UpdateLock\" works similarly to a wake lock in API: the caller is\nproviding a hint to the OS that now is not a good time to interrupt\nthe user/device in order to do intrusive work like applying OTAs.\nThis is particularly important for headless or kiosk-like products\nwhere ordinarily the update process will be automatically scheduled\nand proceed without user or administrator intervention.\n\nUpdateLocks require that the caller hold the new signatureOrSystem\npermission android.permission.UPDATE_LOCK.  acquire() and release()\nwill throw security exceptions if this is not the case.\n\nThe \"is now convenient?\" state is expressed to interested parties\nby way of a sticky broadcast sent only to registered listeners.  The\nbroadcast is protected; only the system can send it, so listeners\ncan trust it to be accurate.  The broadcast intent also includes a\ntimestamp (System.currentTimeMillis()) to help inform listeners that\nwish to implement scheduling policies based on when the device became\nidle.\n\nThe API change here is a tiny one: a dump(PrintWriter) method has been\nadded to the TokenWatcher class to facilitate getting information out\nof it for dumpsys purposes.  UpdateLock itself is still @hide.\n\nBug 5543442\n\nChange-Id: I3709c831fc1883d7cb753cd2d3ee8e10a61e7e48\n"
    },
    {
      "commit": "c9dac1185d6944e4bdb851a06ae07ea3621042bf",
      "tree": "de4eb222bd5f8d4a79f626f7b2b8056480229fd8",
      "parents": [
        "d9f94416fcca8bd091075d1058eade91811b798f"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 28 12:25:34 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Feb 29 14:02:55 2012 -0800"
      },
      "message": "Don\u0027t forget to turn off mobile_dun\n\nWhen we find a higher priority match for tethering traffic we should turn off\nwhatever we were trying before.\n\nbug:6083611\nChange-Id: I06ee41336df107353bf1a979150345e461574a48\n"
    },
    {
      "commit": "0450510f5932c07e66c1208f007711fe514d2555",
      "tree": "c8a2a9870580279659658453fccb2b71f4906012",
      "parents": [
        "8279570b222d46def4e541d71ef29dbfd9fbe3d7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 29 12:34:04 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 29 12:34:04 2012 -0800"
      },
      "message": "Fix issue where pm would clear preferred apps when updating an app.\n\nThe code for this was fairly conservative since the components of the\napps could change, leaving junk in the preferred app list.  Now we\ndon\u0027t pro-actively clear them, but try to catch missing components\nlater.\n\nChange-Id: I793063449dcc577fd3d56bb56495b308f0c95ea8\n"
    },
    {
      "commit": "c38358025d8551a7ed225fd08ae7492f140de2e2",
      "tree": "30969dd44af4321d45cfcd2a126fd7be73820a8f",
      "parents": [
        "9f77932422c3e819ea4c2ed16ff1f700337aa779",
        "343511c9ec6a7a1d3760f784824a64e732f3b7a2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Feb 29 06:18:23 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 06:18:23 2012 -0800"
      },
      "message": "Merge changes I08fcd278,I1f496bb7\n\n* changes:\n  Detect animation completions like we used to. Previous approximations weren\u0027t indicating completion and windows weren\u0027t being layered correctly as a result.\n  debug\n"
    },
    {
      "commit": "a6bae56fc533e5817bd85098b52dea9cc24b5dac",
      "tree": "47684073e997f0907f4391cc315caced0d37386d",
      "parents": [
        "1da4ce06990a185bdf08b14354356dadbc801a28",
        "4e713f14419a37f385cf1509b011982bdcf67edc"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Feb 28 17:56:43 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 17:56:43 2012 -0800"
      },
      "message": "Merge \"Unblock IPC call in TextServicesManagerService\""
    },
    {
      "commit": "343511c9ec6a7a1d3760f784824a64e732f3b7a2",
      "tree": "f2066948d78252bef75cf6f0c1e0ad19a58d8733",
      "parents": [
        "ba64dfe8728318f1a0db7547d0cc3f27f3a22766"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Feb 28 17:30:50 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Feb 28 17:34:22 2012 -0800"
      },
      "message": "Detect animation completions like we used to.\nPrevious approximations weren\u0027t indicating completion and windows weren\u0027t being layered correctly as a result.\n\nChange-Id: I08fcd278485bb87dc10bca257b9f8073108753f3\n"
    },
    {
      "commit": "ba64dfe8728318f1a0db7547d0cc3f27f3a22766",
      "tree": "ae21094b7decfa3caba277f3f53530bc24fad094",
      "parents": [
        "eb5698a6b98b73d6b3cc136af6eb1ad235e2420f"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Feb 28 12:55:58 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Feb 28 17:34:21 2012 -0800"
      },
      "message": "debug\n\nChange-Id: I1f496bb71068b6c3a09095c39fb04c9f4153e051\n"
    },
    {
      "commit": "8097e1c56702810e56b5c834729e81c30231e5d5",
      "tree": "0e9f83a3b3c6cfbe154d3322a37cea68dfd1268f",
      "parents": [
        "00e6fc4c738a766c6f42b144c473385b944aa399",
        "e7bb71d26943fbb053139e1e34203df4c2afaa9b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 28 15:14:19 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 15:14:19 2012 -0800"
      },
      "message": "Merge \"Disable verbose NetworkStats logging.\""
    },
    {
      "commit": "e7bb71d26943fbb053139e1e34203df4c2afaa9b",
      "tree": "d536183dcdc8559b0941de49bd3a36a40d76781a",
      "parents": [
        "c81ec3637b8e3c177ec041aeb3863e123924505b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 28 15:13:08 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 28 15:13:08 2012 -0800"
      },
      "message": "Disable verbose NetworkStats logging.\n\nBug: 6076584\nChange-Id: I4efcda2b474f623f4fe70db8b43b0aa69017d749\n"
    },
    {
      "commit": "00e6fc4c738a766c6f42b144c473385b944aa399",
      "tree": "9dd6bba1e349795cc07bd5e9080c6ae97843d4b7",
      "parents": [
        "d9f94416fcca8bd091075d1058eade91811b798f",
        "4953ec1c71c4c2c134da2c969945c0d8b4fcb03c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 28 15:10:39 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 28 15:10:39 2012 -0800"
      },
      "message": "am 4953ec1c: am a2e0e3b5: am 27e20ccd: Merge \"Fix issue #6073913: onActivityResult() not getting called...\" into ics-mr1\n\n* commit \u00274953ec1c71c4c2c134da2c969945c0d8b4fcb03c\u0027:\n  Fix issue #6073913: onActivityResult() not getting called...\n"
    },
    {
      "commit": "4953ec1c71c4c2c134da2c969945c0d8b4fcb03c",
      "tree": "62b899de504888969cd11828865c83d79d0f1d96",
      "parents": [
        "635d492d5918fe11a3a9bb9d9a87839a8331d34b",
        "a2e0e3b5f63dc741fd5e54f45f8dde1a3cb58c6c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 28 15:07:43 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 28 15:07:43 2012 -0800"
      },
      "message": "am a2e0e3b5: am 27e20ccd: Merge \"Fix issue #6073913: onActivityResult() not getting called...\" into ics-mr1\n\n* commit \u0027a2e0e3b5f63dc741fd5e54f45f8dde1a3cb58c6c\u0027:\n  Fix issue #6073913: onActivityResult() not getting called...\n"
    },
    {
      "commit": "c221d6ec2fbaa73f82cd219e2d5ab078697070ab",
      "tree": "cc8f41c5e464eec7e310e7415eae238db6038956",
      "parents": [
        "fa73815e1d953e67c635877440e717dc84465d97",
        "27e20ccd9ac4dd1f9bf902ed2b359cc8beff7c9b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 28 15:03:18 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 28 15:03:18 2012 -0800"
      },
      "message": "am 27e20ccd: Merge \"Fix issue #6073913: onActivityResult() not getting called...\" into ics-mr1\n\n* commit \u002727e20ccd9ac4dd1f9bf902ed2b359cc8beff7c9b\u0027:\n  Fix issue #6073913: onActivityResult() not getting called...\n"
    },
    {
      "commit": "973481d6677ba89721558cb245fa8c701bf5463b",
      "tree": "a57f7261f704c548831745baa5d609eee235f5b4",
      "parents": [
        "a267f0a7079c7d36ecb98e7603c447de6318faa6",
        "ccd08b8de9dc4c9cfaee93cbbcc7053cc9e8d96f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Feb 28 14:59:18 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 28 14:59:18 2012 -0800"
      },
      "message": "am ccd08b8d: am e939edb5: am f418738c: am d7fa7dee: Merge \"Fixes update of extras Bundle in new Locations for GPS Provider\"\n\n* commit \u0027ccd08b8de9dc4c9cfaee93cbbcc7053cc9e8d96f\u0027:\n  Fixes update of extras Bundle in new Locations for GPS Provider\n"
    },
    {
      "commit": "5c607433e3d609e1a023adb496018fd1389a8ec8",
      "tree": "021b1e5bac436fd2b89b16a377001438cacf305d",
      "parents": [
        "ee329930956c88d3c2cbcbb6da01abde4b40b2e8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 28 14:44:19 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 28 14:45:23 2012 -0800"
      },
      "message": "Fix issue #6073913: onActivityResult() not getting called...\n\n...if the process is killed and restarted\n\nTry to ensure that in all cases we deliver an activity result if one\nwas requested.\n\nChange-Id: Id43e830d2ee782f98ed1e3b68e5e16f3258d4ad8\n"
    },
    {
      "commit": "e939edb5b4e991998ae8219b03d75c10cdc765cb",
      "tree": "0a9958e7c7955861034cdd242a43d60fcaab4d97",
      "parents": [
        "743aceec4289508a8c514dae7319659cf7f278c4",
        "f418738c64413b818e2dc507c912c2678876632f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Feb 28 13:33:44 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 28 13:33:44 2012 -0800"
      },
      "message": "am f418738c: am d7fa7dee: Merge \"Fixes update of extras Bundle in new Locations for GPS Provider\"\n\n* commit \u0027f418738c64413b818e2dc507c912c2678876632f\u0027:\n  Fixes update of extras Bundle in new Locations for GPS Provider\n"
    }
  ],
  "next": "f418738c64413b818e2dc507c912c2678876632f"
}
