)]}'
{
  "log": [
    {
      "commit": "a858cb075d0c87e2965d401656ff2d5bc16406da",
      "tree": "a184d02d871a906a5b3192bcec5f3495a2a97f21",
      "parents": [
        "507fc54924af53635e8d5520e5836c046af00775"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 03 12:27:51 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 03 14:06:46 2011 -0700"
      },
      "message": "Respect android:allowBackup\u003d\"false\" during full backup \u0026 restore\n\nPackages with this manifest attribute set \u0027false\u0027 will not be backed\nup even through the \"full device backup\" infrastructure.  If someone\nproduces an apparent restore file with data for such an application,\nit will not actually be restored onto the device.\n\nWhen an apk is installed during the course of a restore operation,\nit is validated against the manifest contents and deleted if there\nis a mismatch.  Also, if the newly-installed app is found to\ndisallow backups, no file content will be processed for that app.\n\nBug 4532159\n\nChange-Id: I59630054584b1394e567de939192e22e597044ee\n"
    },
    {
      "commit": "9313a2779732aaaec1f61f85f260499036c7927a",
      "tree": "2b3038f4a184c95bac4718a2664170514958c041",
      "parents": [
        "7dad2c24fa7811c115f850fd2a8f2ecc8874061e",
        "096762d6efcae6300c02919bc6b3eaeeffccf91d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 02 16:50:59 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 02 16:50:59 2011 -0700"
      },
      "message": "am 096762d6: am 8075fe48: am 78470718: Fix various places that were using the wrong display metrics.\n\n* commit \u0027096762d6efcae6300c02919bc6b3eaeeffccf91d\u0027:\n  Fix various places that were using the wrong display metrics.\n"
    },
    {
      "commit": "7dad2c24fa7811c115f850fd2a8f2ecc8874061e",
      "tree": "09ffe99fc17075faa9129e2bce77a6509092c23a",
      "parents": [
        "63b18d395c84579cb179bddf6b6362990f3fd110",
        "9b94aa18f78e6c6281202e72b5a7451bc479fe82"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 02 16:50:13 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 02 16:50:13 2011 -0700"
      },
      "message": "am 9b94aa18: am e5d37701: am 8ea5e1d7: Fix compat mode bugs when updating apps.\n\n* commit \u00279b94aa18f78e6c6281202e72b5a7451bc479fe82\u0027:\n  Fix compat mode bugs when updating apps.\n"
    },
    {
      "commit": "546d64f56d0f930070289e26021f97638601e388",
      "tree": "fcb1bc8412255db876f79e81f837e254e8e78c34",
      "parents": [
        "801453f53349589ba9977231a23b89e929cea00d",
        "5c2e4d20df934728f39312741ef3390fd87795ce"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 02 14:29:13 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 02 14:29:13 2011 -0700"
      },
      "message": "resolved conflicts for merge of 5c2e4d20 to master\n\nChange-Id: Iadbee872468ceafb54c5877046c91f6052f3c953\n"
    },
    {
      "commit": "61ad43dc1e62a9cfdbc3f6624d9c8b269fc59a44",
      "tree": "356d0fb8e9719e47ecc605036b044070b44a4f1c",
      "parents": [
        "6c2cb3061d031b5d8ccc095ecc038959d4489709",
        "469465c45e42c66201639feb49db5421f5843bbe"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 02 10:40:52 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 02 10:40:52 2011 -0700"
      },
      "message": "am 469465c4: am 0821f274: am 2a108403: I am a dummy.\n\n* commit \u0027469465c45e42c66201639feb49db5421f5843bbe\u0027:\n  I am a dummy.\n"
    },
    {
      "commit": "ed60f81940c5f2125518c7c31ad4f61b8a9baf3e",
      "tree": "59c083e4c28f202179b41cfb350a2c68c43ad0d3",
      "parents": [
        "c49b870adf26cd0ca6c0c562fe544b27d6ca312e",
        "76450622f08b1d0d09df7f1ad8e52afe01090770"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 02 09:20:52 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 02 09:20:52 2011 -0700"
      },
      "message": "resolved conflicts for merge of 76450622 to master\n\nChange-Id: I26ccd8f264e65f100d894f43cf597a781552db83\n"
    },
    {
      "commit": "cc28a669f61c71ec95e5cca2b25eab4266ea0cfb",
      "tree": "fe0f7631c0a03fd10cfdf56bf9d22c3a065361ab",
      "parents": [
        "f9886f3ee9db23cc5a553b92e2aeff0ae842c915",
        "4f31353cb3b00c77c9420ef27ec949fd570ede3b"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Jun 02 02:34:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 02 02:34:32 2011 -0700"
      },
      "message": "Merge \"Add an api to get the display name for InputMethodSubtype\""
    },
    {
      "commit": "4f31353cb3b00c77c9420ef27ec949fd570ede3b",
      "tree": "f8b82e376f7eaf019afb44d7adb4af31a64406f6",
      "parents": [
        "d1a1c09cb06fef6ade48063fe1171ff25cd38050"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Jun 01 16:13:45 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Jun 02 18:26:36 2011 +0900"
      },
      "message": "Add an api to get the display name for InputMethodSubtype\n\nBug: 4321667\n\nChange-Id: I55aa844ff33dae0cf8ef00072e87727992eb77c1\n"
    },
    {
      "commit": "f9886f3ee9db23cc5a553b92e2aeff0ae842c915",
      "tree": "76d2bfd0fe84b2028cc48e554aa89139a13a9dd8",
      "parents": [
        "c3076425bba5c129408338be4e138f8be16855a6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 10 15:28:33 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jun 01 20:32:09 2011 -0700"
      },
      "message": "AccessiblityManagerService not cleaning up dead binders.\n\n1. AccessibilityManagerService was keeping handles to dead\n   IAccessibilitymanagerClients - now doing so.\n\n2. AccessibilityManagerService was lazily cleaning up dead\n   IAccessibilityServiceConnections - now using a callback.\n\n3. Cleaned up the book keeping of enabled services.\n\n4. Fixed a bug that the input filter is still enabled\n   when disabling accessibility.\n\nChange-Id: I5e9af7ab684a3b71e8ee51125b1262a17e960eb0\n"
    },
    {
      "commit": "287bd83f9ea257594e0d483d3851236139e5744e",
      "tree": "d2ea25615298d8ebccbdd824a4cf3f8af4b8cd6a",
      "parents": [
        "d840b66556b4a0a990189cfb28cd3a65ebb39d72"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat May 28 19:36:26 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jun 01 17:56:23 2011 -0700"
      },
      "message": "Snapshot PID/UID when enqueuing events.\n\nSince ProcessRecord can change before event is processed, snapshot\nPID/UID values when enqueuing.\n\nChange-Id: I281e63310c8fc6c3761ae00e80e06654b18b3e17\n"
    },
    {
      "commit": "75279904202357565cf5a1cb11148d01f42b4569",
      "tree": "db3b40af4fdfda1d46d1d4c9e471bf4630656036",
      "parents": [
        "77c1cc0aa4d088f54c3b36a05a19acfa5295c4da"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue May 24 18:39:45 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jun 01 17:44:52 2011 -0700"
      },
      "message": "Collect historical network stats.\n\nPeriodically records delta network traffic into historical buckets to\nsupport other services, such NetworkPolicyManager and Settings UI.\n\nIntroduces NetworkStatsHistory structure which contains sparse, uniform\nbuckets of data usage defined by timestamps.  Service periodically\npolls NetworkStats and records changes into buckets.  It only persists\nto disk when substantial changes have occured.  Current parameters\ncreate 4 buckets each day, and persist for 90 days, resulting in about\n8kB of data per network.\n\nOnly records stats for \"well known\" network interfaces that have been\nclaimed by Telephony or Wi-Fi subsystems.  Historical stats are also\nkeyed off identity (such as IMSI) to support SIM swapping.\n\nChange-Id: Ia27d1289556a2bf9545fbc4f3b789425a01be53a\n"
    },
    {
      "commit": "9599cc5f21152860af9d18015b1398b50743da76",
      "tree": "b3cd1d7e6b97c81f9c72d86869062acdc0387a5d",
      "parents": [
        "1b861278a2051f53ce7955fb7992fa536dc975d9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun May 22 14:59:31 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jun 01 17:26:30 2011 -0700"
      },
      "message": "Tests for NetworkPolicyManager rule generation.\n\nVerifies that policy changes trigger rule updates that respect current\nforegroundActivities status.  Also verifies logic that promotes a UID\nbased on its most-foreground PID.  Verifies that policy changes result\nin immediate rule changes.\n\nAlso verifies that BACKGROUND_DATA_SETTING_CHANGED broadcasts are sent\nby policy changes.\n\nChange-Id: I4fd0dad9e1dbccee2c5968244bb1814e6cb2c6e1\n"
    },
    {
      "commit": "1b861278a2051f53ce7955fb7992fa536dc975d9",
      "tree": "976f151d4cb66f67c34779dcb108676ff83c3514",
      "parents": [
        "751fb1108239c47e024d803301ee17de753dbef0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun May 22 00:34:52 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jun 01 17:21:17 2011 -0700"
      },
      "message": "Teach NetworkPolicyManager how to dumpsys itself.\n\nIncludes details on all internally known UIDs, which can be used for\ndebugging purposes.\n\nChange-Id: I340d25212e3c7a76a57de0a94ffeea34b6748941\n"
    },
    {
      "commit": "751fb1108239c47e024d803301ee17de753dbef0",
      "tree": "1c65e2dec48e2bcf20d9bd607e2eb0591d1ced18",
      "parents": [
        "8900fa65045436c5cef13b753c4ac82aed07b595",
        "c006f1aec15454782c35e028ad64d79a5c161cc1"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jun 01 17:18:15 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 01 17:18:15 2011 -0700"
      },
      "message": "Merge \"Policy and rules work for ConnectivityManager.\""
    },
    {
      "commit": "c006f1aec15454782c35e028ad64d79a5c161cc1",
      "tree": "1cc9ecc18e55fce30c7054b21d7ecb326934e4f6",
      "parents": [
        "b145112effca63e770f52c5573980a204035b23a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu May 19 17:12:49 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jun 01 17:00:42 2011 -0700"
      },
      "message": "Policy and rules work for ConnectivityManager.\n\nTeach ConnectivityManager about UID-specific rules derived from policy,\nsuch as rejecting network traffic on \"paid\" interfaces.  Calls that\nreturn NetworkInfo now filter based on any REJECT rules in effect for\nthe calling UID.  (Added uid parameter if callers that still want all\ninterfaces.)\n\nChanged NetworkPolicyManager to derive rules based on current policy\ncombined with PowerManager and ActivityManager status, which it passes\nto ConnectivityService for eventual enforcement through netd.  When\nrules change the usability of a NetworkInfo for a specific UID, it also\ndispatches CONNECTIVITY_ACTION broadcasts to that UID.  Combined paid\nand background policy together to match current working definition.\n\nChange-Id: I797ea49439fcc487cfe2cbc16703d4b91ceb9af6\n"
    },
    {
      "commit": "ca680af21b15ec51f31d294f2f1fe0110562fdfe",
      "tree": "d0b6825a2a6390597faafb4c49d9eb1b41e7c4f2",
      "parents": [
        "b145112effca63e770f52c5573980a204035b23a",
        "c994d693b684bcba1a690310b5b2be306074cc02"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "stadler@google.com",
        "time": "Wed Jun 01 15:59:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 01 15:59:58 2011 -0700"
      },
      "message": "Merge \"Use unchecked admin lookup for getStorageEncryption()\""
    },
    {
      "commit": "c994d693b684bcba1a690310b5b2be306074cc02",
      "tree": "0bcf49f679e1977f1854e018be97403a1a0afb41",
      "parents": [
        "829de65b9aa8d59cff7d8b4acd6c89682a1952a5"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "stadler@google.com",
        "time": "Wed Jun 01 15:30:54 2011 -0700"
      },
      "committer": {
        "name": "Andy Stadler",
        "email": "stadler@google.com",
        "time": "Wed Jun 01 15:30:54 2011 -0700"
      },
      "message": "Use unchecked admin lookup for getStorageEncryption()\n\nDue to a copy/paste typo, getStorageEncryption() was protected by\ngetActiveAdminForCallerLocked(), which made the API unreadable if the\ncaller is not an admin.  This doesn\u0027t match the rest of the DPM API which\nallows the \"get\" calls to be made anonymously.\n\nThis fix supercedes the proposed workaround CL in the DPM ApiDemo sample.\n\nChange-Id: If1a6237634e97ced09a7c6a8876bb6b0f60c9be9\n"
    },
    {
      "commit": "75a99709accef8cf221fd436d646727e7c8dd1f1",
      "tree": "9ce16dbf95890e8dad57d63724a6cdb3d36d6fb9",
      "parents": [
        "2978cef0a77550ea3a364ffbf42fc43f2029070e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 18 16:28:19 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 01 15:09:55 2011 -0700"
      },
      "message": "Restore from a previous full backup\u0027s tarfile\n\nUsage:  adb restore [tarfilename]\n\nRestores app data [and installs the apps if necessary from the backup\nfile] captured in a previous invocation of \u0027adb backup\u0027.  The user\nmust explicitly acknowledge the action on-device before it is allowed\nto proceed; this prevents any \"invisible\" pushes of content from the\nhost to the device.\n\nKnown issues:\n\n* The settings databases and wallpaper are saved/restored, but lots\n  of other system state is not yet captured in the full backup.  This\n  means that for practical purposes this is usable for 3rd party\n  apps at present but not for full-system cloning/imaging.\n\nChange-Id: I0c748b645845e7c9178e30bf142857861a64efd3\n"
    },
    {
      "commit": "36f80f3a5a3de42d4e7ca4b53d4aa3e567f4df6f",
      "tree": "9fc258a8787c90942d9f7a6deb85369c91fd755e",
      "parents": [
        "bade424fdd4110752081183290417145f8af05e8",
        "590ec479fd51e13d077212833e2ac4f848a49cc3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 31 18:26:45 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 31 23:11:16 2011 -0700"
      },
      "message": "resolved conflicts for merge of 590ec479 to master\n\nChange-Id: I30503da6a73b9cb15eee66a67c75d50ccdc4b9f0\n"
    },
    {
      "commit": "46d0adf8256a42416584765625852b6e48497c90",
      "tree": "1667e7010a36ad8023b466242388317fa3a06174",
      "parents": [
        "b0aee3ee430ce79430ba16e53109840db5bc342a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 26 10:27:39 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 31 20:52:06 2011 -0400"
      },
      "message": "UsbService: Refactor USB host and device support into two separate classes\n\nHost support is in UsbHostManager, device support is in UsbDeviceManager\n\nRenamed UsbDeviceSettingsManager to UsbSettingsManager\n\nChange-Id: Ib76e72957c233fa7f08f454d4d9a2a1da6368cc7\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b0aee3ee430ce79430ba16e53109840db5bc342a",
      "tree": "d7f3749d92900a07b4fecbab2ef4bd53ae928a95",
      "parents": [
        "b530abcff5ae8e5ebb75ec6aa42b7c7c190e98a5",
        "da8bb74b9d9ffcb095815db800d0816c411f1fba"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 31 16:14:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 31 16:14:08 2011 -0700"
      },
      "message": "Merge \"Move stringToFile utility from ConnectivityService to FileUtils\""
    },
    {
      "commit": "cc4053e031371456fe54d51bbad1db721db4ae38",
      "tree": "9f5954a422efc283efac0762906e822dbf89377e",
      "parents": [
        "da188fbe4b4d7b91e1440afe5a1279d0fd7a91eb"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon May 23 13:37:44 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 31 12:04:18 2011 -0700"
      },
      "message": "Accessibility serviceconfiguration via meta-data\n\nNote: This is a part of two CL change and contains the\n      system changes without updates to the settings.\n\n1. Added a mechanism for configuring an accessibility service via\n   XML file specified in a meta-data tag (similar to IMEs).\n\n2. Added property for specifying a settings activity for an\n   accessibility service.\n\n3. Refactored the APIs in AccessibilityManager to return\n   lists of AccessiblityServiceInfo instead ServiceInfo\n   since the former describes an AccessibilityService in\n   particular (similar to IMEs).\n\nChange-Id: Ie8781bb7e0cdb329e583b6702a612a507367ad7b\n"
    },
    {
      "commit": "9b4157935af9e44571187a9533c2cc9b413383bf",
      "tree": "c5a79afe893c246dbb37e05766857c7c069e9170",
      "parents": [
        "39a8dc4aaf6b8ff63b3168a8f7e3b8153d3891d8"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon May 30 12:37:52 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon May 30 22:44:48 2011 +0900"
      },
      "message": "Use isAuxiliary instead of ExtraValue for the auxiliary subtypes.\n\nChange-Id: Ibce4f884e697ca789b9942cf3abad43741040a87\n"
    },
    {
      "commit": "da8bb74b9d9ffcb095815db800d0816c411f1fba",
      "tree": "bfabe314d2203900749f1a974c1f89cfa39dd247",
      "parents": [
        "39a8dc4aaf6b8ff63b3168a8f7e3b8153d3891d8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat May 28 13:24:04 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat May 28 13:28:12 2011 -0400"
      },
      "message": "Move stringToFile utility from ConnectivityService to FileUtils\n\nChange-Id: I59a2dc649d59677f6b5e7ade252587c7c151ec06\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "096762d6efcae6300c02919bc6b3eaeeffccf91d",
      "tree": "38d99064934af8a263d0ac80123271d109654a2e",
      "parents": [
        "9b94aa18f78e6c6281202e72b5a7451bc479fe82",
        "8075fe48bf345e4014de9b7bee8def5f4373457c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 17:16:19 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 27 17:16:19 2011 -0700"
      },
      "message": "am 8075fe48: am 78470718: Fix various places that were using the wrong display metrics.\n\n* commit \u00278075fe48bf345e4014de9b7bee8def5f4373457c\u0027:\n  Fix various places that were using the wrong display metrics.\n"
    },
    {
      "commit": "8075fe48bf345e4014de9b7bee8def5f4373457c",
      "tree": "2ce99e545cc162b4efd66ce6f90933e94012cc75",
      "parents": [
        "e5d377014b04022a04fd0b2b24b343d1e0ec8d2a",
        "784707187d96b731df5256c1c2adb0aaf9037239"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 17:12:53 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 27 17:12:53 2011 -0700"
      },
      "message": "am 78470718: Fix various places that were using the wrong display metrics.\n\n* commit \u0027784707187d96b731df5256c1c2adb0aaf9037239\u0027:\n  Fix various places that were using the wrong display metrics.\n"
    },
    {
      "commit": "784707187d96b731df5256c1c2adb0aaf9037239",
      "tree": "61dde1177765cdf549349ca292a02110565210b8",
      "parents": [
        "8ea5e1d79eb1f05ee7628b0d45ea8fc8eea5330d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 17:09:19 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 17:09:19 2011 -0700"
      },
      "message": "Fix various places that were using the wrong display metrics.\n\nChange-Id: I1ac2a0c4a1b7c851dbc99d26f295c7dd49b0bd5c\n"
    },
    {
      "commit": "9b94aa18f78e6c6281202e72b5a7451bc479fe82",
      "tree": "e652a2575c5e1e646e40f1d4215ee91fdf639849",
      "parents": [
        "54cb63e26e41b80c013b8665878b9c7c7fb328c1",
        "e5d377014b04022a04fd0b2b24b343d1e0ec8d2a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 17:01:47 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 27 17:01:47 2011 -0700"
      },
      "message": "am e5d37701: am 8ea5e1d7: Fix compat mode bugs when updating apps.\n\n* commit \u0027e5d377014b04022a04fd0b2b24b343d1e0ec8d2a\u0027:\n  Fix compat mode bugs when updating apps.\n"
    },
    {
      "commit": "e5d377014b04022a04fd0b2b24b343d1e0ec8d2a",
      "tree": "e22a35a70bf793993c70bd2bd4c497792f35140d",
      "parents": [
        "528c49f112dce5f9687f30a9751e783196eca0c6",
        "8ea5e1d79eb1f05ee7628b0d45ea8fc8eea5330d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 16:58:33 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 27 16:58:33 2011 -0700"
      },
      "message": "am 8ea5e1d7: Fix compat mode bugs when updating apps.\n\n* commit \u00278ea5e1d79eb1f05ee7628b0d45ea8fc8eea5330d\u0027:\n  Fix compat mode bugs when updating apps.\n"
    },
    {
      "commit": "8ea5e1d79eb1f05ee7628b0d45ea8fc8eea5330d",
      "tree": "a676c6b0daf45a90b600d3268bb37e81f23a2275",
      "parents": [
        "b96cbbd11c4590bec846212c33361e02293f18b5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 16:45:31 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 16:49:29 2011 -0700"
      },
      "message": "Fix compat mode bugs when updating apps.\n\nNo longer accidentally puts an app into compatibility mode.\n\nAlso various cleanup, freezing screen while switching between modes.\n\nChange-Id: Ic1b3958be7800189a93f68e9dee3c5adfc45fe57\n"
    },
    {
      "commit": "d7eedc0a698062c506c3b7caf93f44a2181a80af",
      "tree": "9a6a7c41f1867eccb58555b4ac6109a688ffa427",
      "parents": [
        "8239b95d11d6bd68abce33f01d296b7edc6b786c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 27 16:35:55 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 27 16:35:55 2011 -0700"
      },
      "message": "FileOutputStream guarantees to open O_TRUNC (unless you explicitly ask otherwise).\n\nChange-Id: Ibd2f247d8e52b2814729c93442ae197c186660f6\n"
    },
    {
      "commit": "5c2e4d20df934728f39312741ef3390fd87795ce",
      "tree": "04662b3fcdc339cea95feee8d14b445c8992dfaf",
      "parents": [
        "0f667ff5e57e171311c2b4ec19d29832ffbcd3f7",
        "8fcbfb52607263754b6d3895a112f792c5c3a12e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 17:12:36 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 26 17:12:36 2011 -0700"
      },
      "message": "am 8fcbfb52: am 94250ac6: Merge \"Add new supports-screens attributes for declaring the compatible screens.\" into honeycomb-mr2\n\n* commit \u00278fcbfb52607263754b6d3895a112f792c5c3a12e\u0027:\n  Add new supports-screens attributes for declaring the compatible screens.\n"
    },
    {
      "commit": "8fcbfb52607263754b6d3895a112f792c5c3a12e",
      "tree": "476aee5f274bb2b028c0e9f12fa4d9192fde3f77",
      "parents": [
        "a33bb164b2ac792d5bba76ba198fb052197fd520",
        "94250ac69c6e07534e4781d3479dccb79d8c366c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 17:09:39 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 26 17:09:39 2011 -0700"
      },
      "message": "am 94250ac6: Merge \"Add new supports-screens attributes for declaring the compatible screens.\" into honeycomb-mr2\n\n* commit \u002794250ac69c6e07534e4781d3479dccb79d8c366c\u0027:\n  Add new supports-screens attributes for declaring the compatible screens.\n"
    },
    {
      "commit": "94250ac69c6e07534e4781d3479dccb79d8c366c",
      "tree": "0002c4ca6a9cf1b7d5ac087199fa11b879ccdbc2",
      "parents": [
        "4686fb8ac8c88eb1f0d76fc4157be4cb5949e98e",
        "df6e980e3f63eb0f6f9eb437fa925d5009cd9c44"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 17:07:52 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 26 17:07:52 2011 -0700"
      },
      "message": "Merge \"Add new supports-screens attributes for declaring the compatible screens.\" into honeycomb-mr2"
    },
    {
      "commit": "df6e980e3f63eb0f6f9eb437fa925d5009cd9c44",
      "tree": "5440eeb979427cf2d0be09e067b0dd5c0d62a943",
      "parents": [
        "7a09f72b8850ec22e4ca7fd50aba20ead7666f67"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 14:20:23 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 14:48:04 2011 -0700"
      },
      "message": "Add new supports-screens attributes for declaring the compatible screens.\n\nChange-Id: I40d57e4354e48accc1027c9f90916ea73eb5190d\nandroid:requiresSmallestWidthDp provides the smallest supported width.\nandroid:compatibleWidthLimitDp provides the largest compatible width.\n"
    },
    {
      "commit": "469465c45e42c66201639feb49db5421f5843bbe",
      "tree": "d12444e21ffb3c0e15eaf8e910b926e4d71b2faa",
      "parents": [
        "76450622f08b1d0d09df7f1ad8e52afe01090770",
        "0821f2745d05af98195c9c1c7889ca14e9c56e0b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 14:14:41 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 26 14:14:41 2011 -0700"
      },
      "message": "am 0821f274: am 2a108403: I am a dummy.\n\n* commit \u00270821f2745d05af98195c9c1c7889ca14e9c56e0b\u0027:\n  I am a dummy.\n"
    },
    {
      "commit": "76450622f08b1d0d09df7f1ad8e52afe01090770",
      "tree": "3d61522a5670621da4083f2d8542478a3befcd26",
      "parents": [
        "0bb63c58a464e7df60de103319204b7b590e5d75",
        "d5238cc1ab8366389b2aada228f2f2e5cbb3244e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 14:14:35 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 26 14:14:35 2011 -0700"
      },
      "message": "am d5238cc1: am 7a09f72b: Merge \"Rework how we decide whether to use system or status bar.\" into honeycomb-mr2\n\n* commit \u0027d5238cc1ab8366389b2aada228f2f2e5cbb3244e\u0027:\n  Rework how we decide whether to use system or status bar.\n"
    },
    {
      "commit": "5e34a1945a6b26dff5551a37627c5216b076d896",
      "tree": "ad320f5935177d91c59136df2f65544c3a08c332",
      "parents": [
        "101139cc8f5b975dfacf1a2ffd3bdae8e3907f65",
        "1d8f8819f1e98cdf3b7756396158613e95fe9eb6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 26 13:34:42 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 26 13:34:42 2011 -0700"
      },
      "message": "am 1d8f8819: Merge \"Break apart queries to getInstalled* API DO NOT MERGE\" into honeycomb-mr2\n\n* commit \u00271d8f8819f1e98cdf3b7756396158613e95fe9eb6\u0027:\n  Break apart queries to getInstalled* API DO NOT MERGE\n"
    },
    {
      "commit": "0821f2745d05af98195c9c1c7889ca14e9c56e0b",
      "tree": "baa13ddc047496003a2d1ba5c4abf99e07d77aaf",
      "parents": [
        "d5238cc1ab8366389b2aada228f2f2e5cbb3244e",
        "2a108403803bd30bee1c019060c208fb8c52c10c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 13:34:37 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 26 13:34:37 2011 -0700"
      },
      "message": "am 2a108403: I am a dummy.\n\n* commit \u00272a108403803bd30bee1c019060c208fb8c52c10c\u0027:\n  I am a dummy.\n"
    },
    {
      "commit": "d5238cc1ab8366389b2aada228f2f2e5cbb3244e",
      "tree": "ec6f26829875401ac65b2f9a0235a243687149df",
      "parents": [
        "90856661cf07453a23c3737f421a4686b70d95c1",
        "7a09f72b8850ec22e4ca7fd50aba20ead7666f67"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 13:34:33 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 26 13:34:33 2011 -0700"
      },
      "message": "am 7a09f72b: Merge \"Rework how we decide whether to use system or status bar.\" into honeycomb-mr2\n\n* commit \u00277a09f72b8850ec22e4ca7fd50aba20ead7666f67\u0027:\n  Rework how we decide whether to use system or status bar.\n"
    },
    {
      "commit": "1d8f8819f1e98cdf3b7756396158613e95fe9eb6",
      "tree": "b1d2fa9f52cc01032563f5dad35d9ae4f51b864f",
      "parents": [
        "c31239616cca417e71acb98813df7eda645835df",
        "1bb6cf18c0039cb9d2a60713ea34d3709af58c5c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 26 13:10:23 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 26 13:10:23 2011 -0700"
      },
      "message": "Merge \"Break apart queries to getInstalled* API DO NOT MERGE\" into honeycomb-mr2"
    },
    {
      "commit": "2a108403803bd30bee1c019060c208fb8c52c10c",
      "tree": "bb9a6f8d2192a88f87b9c49a7147739d6de94150",
      "parents": [
        "7a09f72b8850ec22e4ca7fd50aba20ead7666f67"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 11:45:00 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 11:45:00 2011 -0700"
      },
      "message": "I am a dummy.\n\nChange-Id: Ie6908a8931954f83ab0e9b905173b576dbf3661d\n"
    },
    {
      "commit": "590ec479fd51e13d077212833e2ac4f848a49cc3",
      "tree": "09e45bc88b07d2732f3da4e07e09ea20ec329956",
      "parents": [
        "3f5b95b05efcf7ab2e8f193649b841dc1786f2ef",
        "80ef2a9745e6103efd9698577536bbfed1fd74f6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 11:02:52 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 26 11:02:52 2011 -0700"
      },
      "message": "am 80ef2a97: am 42f8094c: Merge \"Spiffy new compatibility mode UI.\" into honeycomb-mr2\n\n* commit \u002780ef2a9745e6103efd9698577536bbfed1fd74f6\u0027:\n  Spiffy new compatibility mode UI.\n"
    },
    {
      "commit": "81e56d535c853d73ff537357da5b935f51cb779d",
      "tree": "b0d69765bbefecbdeeadebc24b7e57f902af84b9",
      "parents": [
        "42f8094c066209a65b09d53611ef5c93daba4c51"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 00:55:58 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 10:46:19 2011 -0700"
      },
      "message": "Rework how we decide whether to use system or status bar.\n\nThe PhoneWindowManager is now responsible for determing this,\nsince it needs to do this before we can generate the configuration\nsince we need to take into account the system bar size we will use.\n\nAlso the Display should now report the screen height without\nincluding the system bar.\n\nChange-Id: I82dfcc5e327e4d13d82c373c6c870f557a99b757\n"
    },
    {
      "commit": "80ef2a9745e6103efd9698577536bbfed1fd74f6",
      "tree": "2b507d2f664405313d5b9b6109777fa004ec807f",
      "parents": [
        "a4e747445ac0bdd2cc561802c9c7abfedbd0d981",
        "42f8094c066209a65b09d53611ef5c93daba4c51"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 10:00:00 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 26 10:00:00 2011 -0700"
      },
      "message": "am 42f8094c: Merge \"Spiffy new compatibility mode UI.\" into honeycomb-mr2\n\n* commit \u002742f8094c066209a65b09d53611ef5c93daba4c51\u0027:\n  Spiffy new compatibility mode UI.\n"
    },
    {
      "commit": "1bb6cf18c0039cb9d2a60713ea34d3709af58c5c",
      "tree": "ca4c1bb52197b19df287cd4dbc4cd972ce454eef",
      "parents": [
        "42f8094c066209a65b09d53611ef5c93daba4c51"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 15 17:50:10 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 26 09:53:24 2011 -0700"
      },
      "message": "Break apart queries to getInstalled* API DO NOT MERGE\n\nTo avoid blowing past the Binder IPC limit, change the\nPackageManagerService to have a DB-like interaction where the client\ntells the service the last \"row\" that it read.\n\nThe fact that we use a HashMap instead of a TreeMap makes this\nproblematic. For now we\u0027re just making a new ArrayList for the keys and\nthen sorting them for each call. This can make the API slower for callers\nof this, but it\u0027s probably greatly overshadowed by the cost of the data\ntransfer itself.\n\nBug: 4064282\nChange-Id: Ia3a8cdaa94581ed9336f2e05694b8c8a5f757bce\n"
    },
    {
      "commit": "8c1132e3ceed8e1a8c696e2afe0e6fe456ccd7ef",
      "tree": "91476edcc4d1ce9b1a92acd45058a8ab33f1a1fb",
      "parents": [
        "42c5a1666c4e576ccd5974233513100aad2c1534",
        "0601eb7953cbf77d92826bef3ca37e208d922de7"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu May 26 06:01:41 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 26 06:01:41 2011 -0700"
      },
      "message": "Merge \"Framework support for Android Dreams.\""
    },
    {
      "commit": "42c5a1666c4e576ccd5974233513100aad2c1534",
      "tree": "78d7835af04bef744259eb34ced43efef6b691e6",
      "parents": [
        "2a3c67c0e99bd3d8c6c538ff323a27df19cad109"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu May 26 16:46:14 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu May 26 19:21:35 2011 +0900"
      },
      "message": "Fix internal variables and equals in SuggestionSpan\n\nBug: 4443922\n\n- Instantiating other package\u0027s class for the name is complicated, so we changed the internal value for the notification target class from Class to String.\n- Implement equals\n\nChange-Id: Iaf7682be777f0027d33c9a3be4609ac01b6950ad\n"
    },
    {
      "commit": "2a3c67c0e99bd3d8c6c538ff323a27df19cad109",
      "tree": "6f05e3d75dd19952e7d7256309ff970c9ac2bb8d",
      "parents": [
        "620d69d85b240a31ad1c41a23d28ea746e161ee3",
        "cfb046dead49568de6f6808a697e0508ef39a3a6"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed May 25 21:29:07 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 25 21:29:07 2011 -0700"
      },
      "message": "am cfb046de: am 2c09a9c0: am 5520610c: Merge \"Make adb shell am display-size persistent.\" into honeycomb-mr2\n\n* commit \u0027cfb046dead49568de6f6808a697e0508ef39a3a6\u0027:\n  Make adb shell am display-size persistent.\n"
    },
    {
      "commit": "620d69d85b240a31ad1c41a23d28ea746e161ee3",
      "tree": "e8d0e41ca88d90155a250305c8146d8b83486524",
      "parents": [
        "b3094dbe29deded7f503327087d10631669547e5",
        "103e74d9b1fdebbbc035da0567cd075554d4137d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 21:28:39 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 25 21:28:39 2011 -0700"
      },
      "message": "am 103e74d9: am d6f29cd8: am 2a15eb55: Merge \"Fix issue #4445007: DPM initializes some values to 1, instead of 0\" into honeycomb-mr2\n\n* commit \u0027103e74d9b1fdebbbc035da0567cd075554d4137d\u0027:\n  Fix issue #4445007: DPM initializes some values to 1, instead of 0\n"
    },
    {
      "commit": "42f8094c066209a65b09d53611ef5c93daba4c51",
      "tree": "edf0542248487db54f142f1f8a9b5111b722d6d2",
      "parents": [
        "fa574c0e0ce7f84eea34e96dededea35329dbd18",
        "36cd41f8efa6f6a683d3353d309ff548295af9e9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 21:18:36 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 25 21:18:36 2011 -0700"
      },
      "message": "Merge \"Spiffy new compatibility mode UI.\" into honeycomb-mr2"
    },
    {
      "commit": "36cd41f8efa6f6a683d3353d309ff548295af9e9",
      "tree": "5b460b9496f38b91267704e0da8501fa49b1df65",
      "parents": [
        "2a15eb559cfc18800b3e345995df76695a3ae4b2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 21:00:46 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 21:08:37 2011 -0700"
      },
      "message": "Spiffy new compatibility mode UI.\n\nChange-Id: I1207eaafae59a434fcc979ad60a83e2d685288af\n"
    },
    {
      "commit": "f9f01008624e2d28c15a90d942fa36f98c8c967d",
      "tree": "3e6cfc7fc71c3cf7db7588713c7f0b9a64c1da81",
      "parents": [
        "f30c23d7bfa7a490ce01e2799905f320883c66d3"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu May 19 21:31:50 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu May 26 11:02:31 2011 +0900"
      },
      "message": "Add Apis to send notifications when the suggestion was picked\n\n- Due to a strong request from VoiceIME\n\nBug: 4443922\n\nChange-Id: Ia539de0acf66053e0349daec459d75e36805f6bf\n"
    },
    {
      "commit": "3c2fb0242b0ec21101959dfa08aad3162a523634",
      "tree": "5f338cb0714dbe36988431320f8919576d91009a",
      "parents": [
        "13412d31650366f41b1f3d9f429cb0a01dd575ef",
        "8148cc3e47e50c916066e2fed562618b5827188f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 25 14:46:53 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 25 14:46:53 2011 -0700"
      },
      "message": "am 8148cc3e: am 86ea1f5f: Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)\n\n* commit \u00278148cc3e47e50c916066e2fed562618b5827188f\u0027:\n  Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)\n"
    },
    {
      "commit": "8148cc3e47e50c916066e2fed562618b5827188f",
      "tree": "98dfbd122cf6768c672c4826742e2694330ce8a9",
      "parents": [
        "e8dc05aa6d2f4138729438281485ca10d854dc8d",
        "86ea1f5f521981d075aef56f11693e4f3bc32fdb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 25 14:43:34 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 25 14:43:34 2011 -0700"
      },
      "message": "am 86ea1f5f: Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)\n\n* commit \u002786ea1f5f521981d075aef56f11693e4f3bc32fdb\u0027:\n  Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)\n"
    },
    {
      "commit": "86ea1f5f521981d075aef56f11693e4f3bc32fdb",
      "tree": "72e1e44513d3e9e204a4fbd2855a079822e949eb",
      "parents": [
        "a6dbfdd3a858aac52cc87f80f91e8eef7d613605"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 12 22:39:53 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed May 25 14:37:17 2011 -0700"
      },
      "message": "Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)\n\nAdded a new PointerIcon API (hidden for now) for loading\npointer icons.\n\nFixed a starvation problem in the native Looper\u0027s sendMessage\nimplementation which caused new messages to be posted ahead\nof old messages sent with sendMessageDelayed.\n\nRedesigned the touch pad gestures to be defined in terms of\nmore fluid finger / spot movements.  The objective is to reinforce\nthe natural mapping between fingers and spots which means there\nmust not be any discontinuities in spot motion relative to\nthe fingers.\n\nRemoved the SpotController stub and folded its responsibilities\ninto PointerController.\n\nChange-Id: Ib647dbd7a57a7f30dd9c6e2c260df51d7bbdd18e\n"
    },
    {
      "commit": "cfb046dead49568de6f6808a697e0508ef39a3a6",
      "tree": "591a065c04235d8dd913efefb3cd4a62bde21a37",
      "parents": [
        "103e74d9b1fdebbbc035da0567cd075554d4137d",
        "2c09a9c0e960163a16ad1d06055aa6ee9635c693"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed May 25 11:46:28 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 25 11:46:28 2011 -0700"
      },
      "message": "am 2c09a9c0: am 5520610c: Merge \"Make adb shell am display-size persistent.\" into honeycomb-mr2\n\n* commit \u00272c09a9c0e960163a16ad1d06055aa6ee9635c693\u0027:\n  Make adb shell am display-size persistent.\n"
    },
    {
      "commit": "2c09a9c0e960163a16ad1d06055aa6ee9635c693",
      "tree": "5fc6f6752a6295d6b4003114a0c3b86d6bdbaa8c",
      "parents": [
        "d6f29cd8f92b098330818227428f5a42836097b7",
        "5520610cb2612054c5d0bcec9d031f7b71faa349"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed May 25 11:43:06 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 25 11:43:06 2011 -0700"
      },
      "message": "am 5520610c: Merge \"Make adb shell am display-size persistent.\" into honeycomb-mr2\n\n* commit \u00275520610cb2612054c5d0bcec9d031f7b71faa349\u0027:\n  Make adb shell am display-size persistent.\n"
    },
    {
      "commit": "5520610cb2612054c5d0bcec9d031f7b71faa349",
      "tree": "ebaa618f61490fc160e6ac7b3631512b8a2dd9c7",
      "parents": [
        "2a15eb559cfc18800b3e345995df76695a3ae4b2",
        "571ae90801d943a4c0c8897d1cf74c9cfe04b1ec"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed May 25 11:40:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 25 11:40:59 2011 -0700"
      },
      "message": "Merge \"Make adb shell am display-size persistent.\" into honeycomb-mr2"
    },
    {
      "commit": "571ae90801d943a4c0c8897d1cf74c9cfe04b1ec",
      "tree": "0fe9dfac6a14c64bf2aa9a19487a0d530197be2e",
      "parents": [
        "ef89cc14957ab631346564801841190346632ac9"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue May 24 13:48:43 2011 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed May 25 11:40:21 2011 -0700"
      },
      "message": "Make adb shell am display-size persistent.\n\nChange-Id: If3d5d18729f4e89eb7e689994deadd996fd487e9\n"
    },
    {
      "commit": "103e74d9b1fdebbbc035da0567cd075554d4137d",
      "tree": "da4933eda163ccf5079408f7540f0d3ae099423f",
      "parents": [
        "361c286d095a22152750e73b01bfc6b1d2076a4d",
        "d6f29cd8f92b098330818227428f5a42836097b7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 11:18:59 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 25 11:18:59 2011 -0700"
      },
      "message": "am d6f29cd8: am 2a15eb55: Merge \"Fix issue #4445007: DPM initializes some values to 1, instead of 0\" into honeycomb-mr2\n\n* commit \u0027d6f29cd8f92b098330818227428f5a42836097b7\u0027:\n  Fix issue #4445007: DPM initializes some values to 1, instead of 0\n"
    },
    {
      "commit": "d6f29cd8f92b098330818227428f5a42836097b7",
      "tree": "2a434ab3d3a25e08394370a26f2917dd9bea4a9c",
      "parents": [
        "5d9e0a1a867aa5b6162a972288cbef41fd68a29b",
        "2a15eb559cfc18800b3e345995df76695a3ae4b2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 11:14:13 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 25 11:14:13 2011 -0700"
      },
      "message": "am 2a15eb55: Merge \"Fix issue #4445007: DPM initializes some values to 1, instead of 0\" into honeycomb-mr2\n\n* commit \u00272a15eb559cfc18800b3e345995df76695a3ae4b2\u0027:\n  Fix issue #4445007: DPM initializes some values to 1, instead of 0\n"
    },
    {
      "commit": "d998acb3491fe750ce157b6171d5b0a18f4b3883",
      "tree": "bcd5ea1329cd397a5bc8bd8689478b8679c6ae0d",
      "parents": [
        "c404e9b20165f634904d1489216d17d8e09fe696"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 10:48:28 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 10:51:27 2011 -0700"
      },
      "message": "Fix issue #4445007: DPM initializes some values to 1, instead of 0\n\nAlso fix not writing the settings file when an admin is removed.\n\nAnd take care of an old to-do about not removing an admin until\nafter it has received the broadcast about it being disabled.\n\nChange-Id: I4ebe0ea0461222b65425b2c5438b646b572f18c8\n"
    },
    {
      "commit": "b5b1fb25853eb2e00f981d3b0bb52acd50684c4f",
      "tree": "00f0ba0a582ea20541eb075827472d33231138ea",
      "parents": [
        "e372c17ba76163018cbc1b6972c9e6b0a8a8b5f4",
        "ebed7d6e35f7f960e6e6add2b8ab7c7a31a511c3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 24 14:26:18 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 24 14:26:18 2011 -0700"
      },
      "message": "Merge \"Support wrapping app processes to inject debug instrumentation. Bug: 4437846\""
    },
    {
      "commit": "7cc9ee2676d3e892945d2096b18739802d5179e1",
      "tree": "50dd106df6162f8ff90c49e7e966f8047474a42a",
      "parents": [
        "942bc252ce7dbd229e28ee3a44dc94e1dd0b0d90",
        "859443f2a4d6a2b72c3e9c75720d32d4e4c09489"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 24 12:57:17 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 24 12:57:17 2011 -0700"
      },
      "message": "am 859443f2: am c0d9834a: am 5d78e0b8: Merge \"GPS: Change NTP polling interval from 4 to 24 hours\" into honeycomb-mr2\n\n* commit \u0027859443f2a4d6a2b72c3e9c75720d32d4e4c09489\u0027:\n  GPS: Change NTP polling interval from 4 to 24 hours\n"
    },
    {
      "commit": "9fd4c6d3aeea46820c7ab637b0bc6556b798bc2b",
      "tree": "daeccd1270d7bec3f9a9caa944a249d8d996c43f",
      "parents": [
        "aa9fff8cb457cb5330390dcd82868a0f480a26fe",
        "49b9449b6605c7b4f77f9a0635ba93f7dfa0ea47"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 24 12:56:56 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 24 12:56:56 2011 -0700"
      },
      "message": "am 49b9449b: am d8d84708: am 988b6648: Merge \"MountService: Add StorageVolume as extra in storage related broadcasts.\" into honeycomb-mr2\n\n* commit \u002749b9449b6605c7b4f77f9a0635ba93f7dfa0ea47\u0027:\n  MountService: Add StorageVolume as extra in storage related broadcasts.\n"
    },
    {
      "commit": "ebed7d6e35f7f960e6e6add2b8ab7c7a31a511c3",
      "tree": "ae346479a6c069a3a57acecb18a0b0a563325e3f",
      "parents": [
        "cbc38e74f028d9e337eba0f3ed7c435310cc10c2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 16 17:08:42 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 24 12:01:25 2011 -0700"
      },
      "message": "Support wrapping app processes to inject debug instrumentation.\nBug: 4437846\n\nChange-Id: I4552501c693716b14714afb5c5248edaca9547ab\n"
    },
    {
      "commit": "0601eb7953cbf77d92826bef3ca37e208d922de7",
      "tree": "2c03cf6044b025e951648a6ea42577f3292e8f33",
      "parents": [
        "52ee3eb4ebf108e593cc85b79d0aa1f651c69e35"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Apr 13 01:01:32 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Tue May 24 10:28:52 2011 -0400"
      },
      "message": "Framework support for Android Dreams.\n\nA Dream is an activity that is launched by the window\nmanager after a specified idle time. You might think of this\nas a \"screen saver\", but with the same capacity for\ninteractivity as any other application.\n\nThe window manager maintains a timer (like the screen lock\ntimer) that is reset on userActivity; the timer is suspended\nduring wakelocks and when the screen is off.\n\nWhen the timer elapses, the user\u0027s preferred dream module is\nlaunched (by reading Settings.Secure.DREAM_COMPONENT, which\nis configured through the Settings app UI).\n\nLike a dock app, the user can install new dreams and a\nsingle application package may contain multiple dream\nactivities. Unlike the dock mode, however, there is no\n\"screensaver mode\" for the system to manage. This allows us\nto offer the user the ability to run a dream at any time, in\naddition to making the overall mechanism quite simple.\n\nThere is no public API for this facility.\n\nThere is, however, a useful/recommended base class for dream\nactivities in the support library (change I4559a958).\n\nChange-Id: Ied691856f88cfa38a7aca496d015f9a595da72f2\n"
    },
    {
      "commit": "859443f2a4d6a2b72c3e9c75720d32d4e4c09489",
      "tree": "a9b6b7d3d47430edbe56f6236388aa33ca0923c7",
      "parents": [
        "fcdbcf9174f7a5404da4514b71041c3d37692d15",
        "c0d9834a1c6dd8d9cd0b7fe9b50495578c104405"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 18:45:17 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 23 18:45:17 2011 -0700"
      },
      "message": "am c0d9834a: am 5d78e0b8: Merge \"GPS: Change NTP polling interval from 4 to 24 hours\" into honeycomb-mr2\n\n* commit \u0027c0d9834a1c6dd8d9cd0b7fe9b50495578c104405\u0027:\n  GPS: Change NTP polling interval from 4 to 24 hours\n"
    },
    {
      "commit": "a4620793038b9a9163b26c6ece882cb454fcbf87",
      "tree": "450e8f355658bcc56bf19dc00f8c63d3464cb69f",
      "parents": [
        "442fa21e98835ceb966f196906907eb236d38d65"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri May 20 15:29:23 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon May 23 18:39:56 2011 -0700"
      },
      "message": "Observe screen on/off events in NetworkPolicy.\n\nThe POLICY_REJECT_BACKGROUND policy requires that network traffic be\nblocked when a UID goes into the background.  Even if the UID has an\nactivity in the foreground, it\u0027s considered \"background\" if the screen\nis turned off.\n\nThis changes watches for SCREEN_ON/OFF broadcasts, and rule generation\nnow observes screen state.  It also introduces an observer pattern so\nthat ActivityManager doesn\u0027t directly know about NetworkPolicy, and\nmoves the service management into SystemServer.\n\nChange-Id: Ie7a84929d3ca60ae4578d47e19d5a8da10fd8d58\n"
    },
    {
      "commit": "442fa21e98835ceb966f196906907eb236d38d65",
      "tree": "8a343e88f27371e0b02f0f25df869e38e079b779",
      "parents": [
        "9ddcdd98d97b2d5026d62d2b60c8582515381eaf",
        "eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon May 23 18:38:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 23 18:38:04 2011 -0700"
      },
      "message": "Merge \"APIs to profile network usage for current UID.\""
    },
    {
      "commit": "c0d9834a1c6dd8d9cd0b7fe9b50495578c104405",
      "tree": "a4e9b92b9612141b9e518e01e08aeaa5a7780435",
      "parents": [
        "5b00912e5844591a846e8ba3c4710d2daaa8069a",
        "5d78e0b8ea548da3fa88ae2190a9334297b992b6"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 18:04:44 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 23 18:04:44 2011 -0700"
      },
      "message": "am 5d78e0b8: Merge \"GPS: Change NTP polling interval from 4 to 24 hours\" into honeycomb-mr2\n\n* commit \u00275d78e0b8ea548da3fa88ae2190a9334297b992b6\u0027:\n  GPS: Change NTP polling interval from 4 to 24 hours\n"
    },
    {
      "commit": "5d78e0b8ea548da3fa88ae2190a9334297b992b6",
      "tree": "bab3f5ce72e3bf4faf289fc5ff6cc0e85db2c703",
      "parents": [
        "51652f5674e266d62607324255517d41d225d9be",
        "4c126068527c9adba45aa227d40e245ee8e7c9a4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 18:01:50 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 23 18:01:50 2011 -0700"
      },
      "message": "Merge \"GPS: Change NTP polling interval from 4 to 24 hours\" into honeycomb-mr2"
    },
    {
      "commit": "4c126068527c9adba45aa227d40e245ee8e7c9a4",
      "tree": "0c776a2c2849aab68f70bd1c8369518debbea161",
      "parents": [
        "b9537db8d9ee27efb4a98415ad2d6b50c1806e5d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 20:57:43 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 20:57:43 2011 -0400"
      },
      "message": "GPS: Change NTP polling interval from 4 to 24 hours\n\n4 hours is excessive, and we want to save bandwidth on the NTP servers\n\nChange-Id: Ic5ac4f4a8e62167206f3f620ea51635a2ea771d6\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "49b9449b6605c7b4f77f9a0635ba93f7dfa0ea47",
      "tree": "2c95d482ab6a8c353cff4cd6672179c0ff70eda3",
      "parents": [
        "f656d95078fbcb65df7753ba8c04679c5389e15c",
        "d8d8470825a637843d45a3b436e80a3b85f1dd11"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 17:09:30 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 23 17:09:30 2011 -0700"
      },
      "message": "am d8d84708: am 988b6648: Merge \"MountService: Add StorageVolume as extra in storage related broadcasts.\" into honeycomb-mr2\n\n* commit \u0027d8d8470825a637843d45a3b436e80a3b85f1dd11\u0027:\n  MountService: Add StorageVolume as extra in storage related broadcasts.\n"
    },
    {
      "commit": "d8d8470825a637843d45a3b436e80a3b85f1dd11",
      "tree": "b1086bd2f87c4454ce33e1fc9a8db00e53479ece",
      "parents": [
        "82de141db736b95b0e388ff060e2d2535192d769",
        "988b6648b0138fe1294228e17164b2f1d6a4042d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 17:06:47 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 23 17:06:47 2011 -0700"
      },
      "message": "am 988b6648: Merge \"MountService: Add StorageVolume as extra in storage related broadcasts.\" into honeycomb-mr2\n\n* commit \u0027988b6648b0138fe1294228e17164b2f1d6a4042d\u0027:\n  MountService: Add StorageVolume as extra in storage related broadcasts.\n"
    },
    {
      "commit": "a5250c93928e256738125b265e10c96c3575597e",
      "tree": "0461f4f237d6aaad4838f6b8566aa3c237fda5c3",
      "parents": [
        "2c7906eb392c6349e6f75fd2681310b934d6e262"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 13:44:04 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 20:01:55 2011 -0400"
      },
      "message": "MountService: Add StorageVolume as extra in storage related broadcasts.\n\nChange-Id: I8e1a21ae233ba9812e58b363b59a66b260a01cbf\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "8508485871dd22a998db98ea97403126918c5fa8",
      "tree": "7888830d02350d6703d3046ea3a068f89ef7fa7c",
      "parents": [
        "5710e72d91f16f34998ceccdd961ef9dc9e3cdb6",
        "5a6bec53e224b2db9ecbc6920faab08f4a962256"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Sat May 21 21:35:38 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat May 21 21:35:38 2011 -0700"
      },
      "message": "am 5a6bec53: resolved conflicts for merge of dec3dda8 to honeycomb-plus-aosp\n\n* commit \u00275a6bec53e224b2db9ecbc6920faab08f4a962256\u0027:\n  Simplfy getActive* calls in ConnectivityService\n"
    },
    {
      "commit": "eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3",
      "tree": "2753882abd3cd277dce4c30a1d6a59172f2c6f46",
      "parents": [
        "850ae9acda0d062f9a1836d159bdce819e0f8066"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue May 17 14:55:15 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat May 21 15:02:58 2011 -0700"
      },
      "message": "APIs to profile network usage for current UID.\n\nAdded startDataProfiling() and stopDataProfiling() to TrafficStats,\nwhich can be used by apps to measure network usage delta between two\npoints in time.  Currently takes two NetworkStats snapshots and returns\ndelta, which will eventually include tag-level granularity.  Added\ntests for NetworkStats delta subtraction.\n\nAdded NMS.getNetworkStatsUidDetail() that returns stats for specific\nUID.  Always gives stats access for the calling UID, otherwise enforces\nthat caller has permission.  Fix readSingleLongFromFile(), since\n/proc/ files don\u0027t have well-defined lengths.\n\nChange-Id: Ic5b6414d8effbd66846e275b00d4b8a82c74589d\n"
    },
    {
      "commit": "5a6bec53e224b2db9ecbc6920faab08f4a962256",
      "tree": "141aa9cdb446d7826247d0182a8d371257c5343b",
      "parents": [
        "69ed0b628e18570f3fc7909fcdadc1e06f42e944",
        "dec3dda8730c8d2bd6e45171bf2d83bf89d5d806"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri May 20 15:45:55 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri May 20 15:45:55 2011 -0700"
      },
      "message": "resolved conflicts for merge of dec3dda8 to honeycomb-plus-aosp\n\nChange-Id: If14c7fc51c4549524c2f39797a902093582bae6d\n"
    },
    {
      "commit": "599115894f6f960a879d2e3036c547bbf4136020",
      "tree": "8c877dd193628f3ed2fa2f3a4452e58215947272",
      "parents": [
        "dbfd055d51b51b7a6f412155c2391666efbb638a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri May 20 12:23:41 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri May 20 12:23:41 2011 -0700"
      },
      "message": "Simplfy getActive* calls in ConnectivityService\n\nOne had been simplified on GB, but somehow it didn\u0027t make it here.\nbug: 4463770\n\nChange-Id: Ica51e836b1a7a489526a223168910b8e06c99c2b\n"
    },
    {
      "commit": "33bdc3c9995cbef477cec756b65d767558e6b836",
      "tree": "647d850d1f2b703344661870c0a5ddd42e41e32c",
      "parents": [
        "06a8ceacb0dc2713cb0bb2c93d2a750f2a58db68",
        "d9435bcecc820c8715d8b6b920fd43042418a1e9"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri May 20 06:51:14 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 20 06:51:14 2011 -0700"
      },
      "message": "am d9435bce: am b4788fdb: Do not merge. Backport two fixes for InputMethethodFramework\n\n* commit \u0027d9435bcecc820c8715d8b6b920fd43042418a1e9\u0027:\n  Do not merge. Backport two fixes for InputMethethodFramework\n"
    },
    {
      "commit": "d9435bcecc820c8715d8b6b920fd43042418a1e9",
      "tree": "0e1727820b6a6a4cfecfb9be26547dd08b8bb1f0",
      "parents": [
        "c851ea5672f6e042c2e89b2a2ce4a2467e1fcd2a",
        "b4788fdbfdda97bd9cfd0e483276934114d9c438"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri May 20 06:41:03 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 20 06:41:03 2011 -0700"
      },
      "message": "am b4788fdb: Do not merge. Backport two fixes for InputMethethodFramework\n\n* commit \u0027b4788fdbfdda97bd9cfd0e483276934114d9c438\u0027:\n  Do not merge. Backport two fixes for InputMethethodFramework\n"
    },
    {
      "commit": "208d5634047111811de16fb63c43d0bc8b4fe6de",
      "tree": "e306112c7842ea605a3b14ee0ecff74002ac0b5e",
      "parents": [
        "4fc87d61c29886c848789208c9e32ba9ac4e5dd3"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri May 20 22:13:38 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri May 20 22:13:38 2011 +0900"
      },
      "message": "Fix a bug on SwitchToLastInputMethod\n\nChange-Id: Iab7531e7436375941ec3df4fba943af24e2f1231\n"
    },
    {
      "commit": "b4788fdbfdda97bd9cfd0e483276934114d9c438",
      "tree": "b1551de9f7c570d15e716c2c64aeebbb8f5304f9",
      "parents": [
        "69cb87576ba163b61bb0e6477a3b7c57a9b11d40"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri May 20 18:19:53 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri May 20 22:11:54 2011 +0900"
      },
      "message": "Do not merge. Backport two fixes for InputMethethodFramework\n\nBug: 3420384\n\nbackport cl1: Iaf293cf6c6fb35a994f344b0afc30e9f523032f4\nbackport cl2: I29d2555aeb7d0e51205d9f1fe0da708df0890942\n\nChange-Id: Ia71ba27957fa818dc4ef8ff05b5fdb120b9650e0\n"
    },
    {
      "commit": "4fc87d61c29886c848789208c9e32ba9ac4e5dd3",
      "tree": "edf18d5cf98365555f7a9009242279f413bb61c1",
      "parents": [
        "fef966ae4629f09158576de4cedef38e83d50b2b"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri May 20 16:13:43 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri May 20 18:03:37 2011 +0900"
      },
      "message": "Fix switchToLastInputMethod to fall back into the applicable keyboard if there is no candidate ime\n\nChange-Id: Iaf293cf6c6fb35a994f344b0afc30e9f523032f4\n"
    },
    {
      "commit": "161e67ff3ba26408eea09221734ad2e29a1eed11",
      "tree": "6e98ff836fb5f134e01a7e9ef420ec35a78ad5d2",
      "parents": [
        "9e735541beed238d3b99d4bd284af1fc953c3775",
        "06a8ceacb0dc2713cb0bb2c93d2a750f2a58db68"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 21:44:52 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 21:44:52 2011 -0700"
      },
      "message": "resolved conflicts for merge of 06a8ceac to master\n\nChange-Id: Id51574c825affddfac14ad7214c5496d6a3d6e69\n"
    },
    {
      "commit": "06a8ceacb0dc2713cb0bb2c93d2a750f2a58db68",
      "tree": "14cda7bbbdc5e6cabb492d7af1977a2f5548062b",
      "parents": [
        "90177e59e5211dd9ab33761ce800e8a86a49d1e2",
        "c851ea5672f6e042c2e89b2a2ce4a2467e1fcd2a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 19:34:21 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 19 19:34:21 2011 -0700"
      },
      "message": "am c851ea56: am 69cb8757: Add new \"-swNNNdp\" resource qualifier.\n\n* commit \u0027c851ea5672f6e042c2e89b2a2ce4a2467e1fcd2a\u0027:\n  Add new \"-swNNNdp\" resource qualifier.\n"
    },
    {
      "commit": "c851ea5672f6e042c2e89b2a2ce4a2467e1fcd2a",
      "tree": "c349206e8773ecdeb4cae8b537982b78e1c9d589",
      "parents": [
        "d40575eb983eb7a1d383acc1f30f467374acd085",
        "69cb87576ba163b61bb0e6477a3b7c57a9b11d40"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 19:30:32 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 19 19:30:32 2011 -0700"
      },
      "message": "am 69cb8757: Add new \"-swNNNdp\" resource qualifier.\n\n* commit \u002769cb87576ba163b61bb0e6477a3b7c57a9b11d40\u0027:\n  Add new \"-swNNNdp\" resource qualifier.\n"
    },
    {
      "commit": "e219b5452c20b069b25109a8bedca8d37ec3ccb6",
      "tree": "478f4895e13cd69df95e1800eb0fdc7ee756f951",
      "parents": [
        "d36263fa3eb79bf9c28b457c9656af76d676fc2c",
        "91feae3c5994bd4768cea3507c62c65746adcfa6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu May 19 18:29:45 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 19 18:29:45 2011 -0700"
      },
      "message": "Merge \"TouchExplorer - refactoring and a couple of bug fixes\""
    },
    {
      "commit": "91feae3c5994bd4768cea3507c62c65746adcfa6",
      "tree": "40b703bb6be2b0169a8023428a89d900b790d63f",
      "parents": [
        "191c1fbb7465dc6ba0cb2fa40c96b690ea73d68c"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu May 19 18:16:31 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu May 19 18:29:01 2011 -0700"
      },
      "message": "TouchExplorer - refactoring and a couple of bug fixes\n\n1. Refactored the code to avoid code duplication.\n\n2. Fixed a bug in removing unused pointers from the event.\n\n3. Fixed a bug that was crashing the explorer.\n\n4. Sending hover exit immediately at the end of touch exploration\n   gesture rather with a delay.\n\nChange-Id: Ie288cb8090d6fb5e5c715afa6ea5660b17c019e0\n"
    },
    {
      "commit": "69cb87576ba163b61bb0e6477a3b7c57a9b11d40",
      "tree": "a44be0af3d008409403be133358bdcd628741c01",
      "parents": [
        "b9537db8d9ee27efb4a98415ad2d6b50c1806e5d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 18:13:32 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 18:23:29 2011 -0700"
      },
      "message": "Add new \"-swNNNdp\" resource qualifier.\n\nChange-Id: I0101e88ca9d8d44138bdcaf571f24b0352f4f6ce\n"
    },
    {
      "commit": "71fcc865e3ac3a3b05ffa204e6a2eaa8bad48a8c",
      "tree": "723e43edd52b5a1b800961bdeb4a3871001646df",
      "parents": [
        "c23774baad014833f3e363fbad96588a39d5af18",
        "88b4f153e2be863d79f4d7f68af95e0f9375e4ec"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 19 16:16:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 19 16:16:43 2011 -0700"
      },
      "message": "Merge \"Code cleanup.\""
    },
    {
      "commit": "88b4f153e2be863d79f4d7f68af95e0f9375e4ec",
      "tree": "217f76231d83005cdb38908888b76ebc50d18564",
      "parents": [
        "51c07e717b4416dd338b0add3a3c94d1137366af"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 19 16:15:46 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 19 16:15:46 2011 -0700"
      },
      "message": "Code cleanup.\n\nChange-Id: Ia6ea04b83832db2f39e3168ef2596c24273a7ef3\n"
    },
    {
      "commit": "e526cfb490a4c855d3b6c89096c9f606b02190f8",
      "tree": "8662c5c079dd1f19a7a54f57c3b236148b7d8dba",
      "parents": [
        "ead8b50da67d2b61c4c887a7beec6d617f9e8950",
        "5b9ceebafd36db4491a49c1f00750ce50c4d4433"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu May 19 15:17:33 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 19 15:17:33 2011 -0700"
      },
      "message": "am 5b9ceeba: am a4815c0e: am 9c9088a5: Merge \"Move softap config handling to WifiConfigStore\" into honeycomb-mr2\n\n* commit \u00275b9ceebafd36db4491a49c1f00750ce50c4d4433\u0027:\n  Move softap config handling to WifiConfigStore\n"
    },
    {
      "commit": "a51b6fd6f8a53f040894ef07cf23695581595e6b",
      "tree": "b2e2b02e6a0568054fa279c54f50b7d2c80a9b18",
      "parents": [
        "3a9e712aca65ac49e7155e98e5d6b815da76f94b",
        "b2d0ee164a1cf7bab31302c5d3cdd62322574271"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 19 15:02:18 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 19 15:02:18 2011 -0700"
      },
      "message": "resolved conflicts for merge of b2d0ee16 to master\n\nChange-Id: I4483a6d0ccecfea4a1e66bb6eba80d13e8b9a3a4\n"
    },
    {
      "commit": "5b9ceebafd36db4491a49c1f00750ce50c4d4433",
      "tree": "f0c01a29cf0837009c5ba711618f8c0caf6e3015",
      "parents": [
        "7189d571e2748972e1599ead3d503a9b185fdd3c",
        "a4815c0ec06c293ea9f50b2b925d5a98d11f1143"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu May 19 15:01:48 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 19 15:01:48 2011 -0700"
      },
      "message": "am a4815c0e: am 9c9088a5: Merge \"Move softap config handling to WifiConfigStore\" into honeycomb-mr2\n\n* commit \u0027a4815c0ec06c293ea9f50b2b925d5a98d11f1143\u0027:\n  Move softap config handling to WifiConfigStore\n"
    },
    {
      "commit": "a4815c0ec06c293ea9f50b2b925d5a98d11f1143",
      "tree": "4d9fd7728d48b91cfb9c179c0d7d5ebd5e72710b",
      "parents": [
        "f0c6ddd99b6770ee4de74ce42134f9f56b8ebc5d",
        "9c9088a54f6dee7a13dcc7a12297137147b01baa"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu May 19 14:57:54 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 19 14:57:54 2011 -0700"
      },
      "message": "am 9c9088a5: Merge \"Move softap config handling to WifiConfigStore\" into honeycomb-mr2\n\n* commit \u00279c9088a54f6dee7a13dcc7a12297137147b01baa\u0027:\n  Move softap config handling to WifiConfigStore\n"
    },
    {
      "commit": "9c9088a54f6dee7a13dcc7a12297137147b01baa",
      "tree": "cf580fb197972caa21b762735904dbbe3d537dd2",
      "parents": [
        "51fb97031f62b1181fc9eb6c636d09a68987d939",
        "ffcea7ae7316ab748a49f5e8f6c6798356f35719"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu May 19 14:54:25 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 19 14:54:25 2011 -0700"
      },
      "message": "Merge \"Move softap config handling to WifiConfigStore\" into honeycomb-mr2"
    },
    {
      "commit": "e6cd0c747e76723bc51a23925c239ae10f9d3b5c",
      "tree": "6fd4fa9f3e207f5a0aaf50edf972374196390a49",
      "parents": [
        "0a36cec642fb58e295d0608026890d95d0ae3cc0",
        "2433c443bb5fe96d9a39b59e10e3c03d791e2278"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 19 12:48:14 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 19 12:48:14 2011 -0700"
      },
      "message": "resolved conflicts for merge of 2433c443 to honeycomb-plus-aosp\n\nChange-Id: I3385f57e5761679e6700bcbe3c41deb3ecd43ba1\n"
    }
  ],
  "next": "2433c443bb5fe96d9a39b59e10e3c03d791e2278"
}
