)]}'
{
  "log": [
    {
      "commit": "7f15b03d1636fefd6e02a3c89aa98e42483acdab",
      "tree": "8e584726a513149a15cba48599ca71d97fa66ecb",
      "parents": [
        "073ff1a6634b36727af4d00db1a3aef3c8a62568",
        "5dea7d554a6c9655ad2b578f900fe8840c86934b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 03 19:04:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 03 19:04:56 2013 +0000"
      },
      "message": "Merge \"Skip packages with missing metadata.\" into klp-dev"
    },
    {
      "commit": "5dea7d554a6c9655ad2b578f900fe8840c86934b",
      "tree": "388b4c982f6d78845247881cb3ac798117fb029c",
      "parents": [
        "118cb0353f6dabce1a1d6b550f7fc9eb78c7de87"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 03 12:01:20 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 03 12:01:20 2013 -0700"
      },
      "message": "Skip packages with missing metadata.\n\nOtherwise this would result in NPE, and packages.list would never\nbe updated.\n\nBug: 10577538\nChange-Id: I35a4407dbc283ab20a4c45a2ea1a14b04044c98c\n"
    },
    {
      "commit": "ad0ec16fbe27e69e22b90ad9f1b9e322d8c20e8d",
      "tree": "a3b2194050062741184305f55ad14752995a8c51",
      "parents": [
        "e1de4b3216055d53e21ace27c0281359847332a2",
        "9186d0cb2bd325d9b52da15dbd513937c1e42caa"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Sep 03 18:02:57 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 03 18:02:58 2013 +0000"
      },
      "message": "Merge \"Bug fixes in the printer dialog activity and fused printer loader.\" into klp-dev"
    },
    {
      "commit": "e1de4b3216055d53e21ace27c0281359847332a2",
      "tree": "bdd5f50b67622dab68d1f8aa50551482eea3bfa1",
      "parents": [
        "90a5df1ee8c89ca17df93d9ecf95652b2ae619f4",
        "38c992841b5f6bc80359dbf60d31aa7b994160fc"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Sep 03 18:02:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 03 18:02:15 2013 +0000"
      },
      "message": "Merge \"Crashes in TouchExplorer on two finger swipe.\" into klp-dev"
    },
    {
      "commit": "38c992841b5f6bc80359dbf60d31aa7b994160fc",
      "tree": "c75a25f2e676140d0485d0249f70b0682e816292",
      "parents": [
        "61dda198598e95971ca224e3bcb7393f30e45657"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Sep 03 09:24:48 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Sep 03 09:24:52 2013 -0700"
      },
      "message": "Crashes in TouchExplorer on two finger swipe.\n\n1. The logic for finding the active pointer was incorrect. The code was\n   iterating over all pointer ids and taking the minimum, i.e. the pointer\n   that first went down. The problem was that the down time for pointers\n   that are not down was also considered (set to zero), thus sometimes we\n   would consider the first pointer that went down to be a pointer that\n   is not down at all. Now we are iterating only over the pointers that\n   are down.\n\n2. The batched events while waiting to see if the user is exploring or\n   gesturing were added even if we were in touch exploration state at which\n   point we do not have to batch. As a result we ended up having lefovers\n   from a previous gesture when handling the delayed events and crash.\n\nbug:10312546\n\nChange-Id: I4728541ac12e4da4577d22e4314101dd169a52fb\n"
    },
    {
      "commit": "9186d0cb2bd325d9b52da15dbd513937c1e42caa",
      "tree": "8237bc1c648c916b670935d3f9bc0cd6c9d56965",
      "parents": [
        "6bd20bc46c762860cac852888df5adf718f2be24"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Sep 03 00:11:58 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Sep 03 08:42:17 2013 -0700"
      },
      "message": "Bug fixes in the printer dialog activity and fused printer loader.\n\n1. Fused printers loader was not using the discovered printers to update the\n    historical ones. Now if a historical printer is discovered we update its state\n    with the discovered, i.e. most recent, information.\n\n2. Fixed a bug in the destination adapter of the print job config dialog that\n    was leading to a crash if all printers item is selected when there are no\n    discovered printers.\n\n3.  Updated the add printers asset in the all printers screen.\n\n4. Historical printers were not persisted by the print dialog activity.\n\n5. Reduced the number of printers we send per transation to avoid the binder\n   transaction size limit. Added sending of printers in chunks in a place\n   this was missing.\n\nChange-Id: I88b54888360bc0e53b06bd260c2b832d0d6454b6\n"
    },
    {
      "commit": "6bd20bc46c762860cac852888df5adf718f2be24",
      "tree": "1185a078324bb0180003c326a6aed1a0742b8307",
      "parents": [
        "61dda198598e95971ca224e3bcb7393f30e45657"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Sep 02 15:24:45 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Sep 02 15:35:06 2013 -0700"
      },
      "message": "System print service enabled after every system reboot\n\nThe system was overriding the user on every boot by turing of all system\nprint services, i.e. service that are on the system image. Now the system\nprint service are enabled by default only once per user, the user can later\ndisable them and the system does not override that. We now have a system\nsetting with the services we enabled once by default so we never do\ndefault enabling again (unless device is wiped).\n\nbug:10594775\n\nChange-Id: Id3129ccfba95bf57375ea9fec0b5ca0e51bda199\n"
    },
    {
      "commit": "9d7c4d4a6e4683862931b3a11c974715073514ab",
      "tree": "57fc0848cb8ebe52310652413d881b6e5d5755c0",
      "parents": [
        "083199efed839274619eb7a003a7d7c9229e5ffc",
        "6222288bfbae46550b4914ef1eb12c69dc1f716c"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Fri Aug 30 21:39:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 30 21:39:15 2013 +0000"
      },
      "message": "Merge \"DO NOT MERGE. Remove service component for KLP.\" into klp-dev"
    },
    {
      "commit": "6222288bfbae46550b4914ef1eb12c69dc1f716c",
      "tree": "aaba6a3c0cf4ad8fee6b6e19522520dcf8b01ae6",
      "parents": [
        "4b2993123bf9a1c56d0a16b032612834dd418520"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Tue Aug 20 15:32:20 2013 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Fri Aug 30 21:28:53 2013 +0000"
      },
      "message": "DO NOT MERGE. Remove service component for KLP.\n\n1) As discussed, lack of internal clients -\u003e remove SyncService\ncomponent from KLP. This CL reverts that addition.\n2) Also includes javadoc cleanup of existing API.\n3) Fix naming of allowMetered() -\u003e disallowMetered() in API\n4) Removed one-off sync in the future, as it doesn\u0027t make sense\nfor sync adapters.\n\nChange-Id: I1b17094e6edafb2955cdfb99f39b44274fbe86f9\n"
    },
    {
      "commit": "ef9778ba39d73f67970f674893d56e48407823fd",
      "tree": "9c40a15d17cb0c88a352dc76eddf48e1840be21a",
      "parents": [
        "e3d64640f1083797cb188f08ff55a7d435f93eb9",
        "d535ead295abf3b74afb6450c83bd197f69c5a26"
      ],
      "author": {
        "name": "Zhentao Sun",
        "email": "robinvane@google.com",
        "time": "Fri Aug 30 19:11:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 30 19:11:29 2013 +0000"
      },
      "message": "Merge \"Fixed b/10512887.\" into klp-dev"
    },
    {
      "commit": "fda4698c255075d7f0209834b364dfe344e3ee75",
      "tree": "5f6c6a08a03d111b01a8a9e1d653798cc69d934a",
      "parents": [
        "c2b582c0b63df855a7492db3fb00dd194bf86fe3",
        "28b1fc64221ebd47454829a8d029af0a7a35c6fd"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Fri Aug 30 00:24:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 30 00:24:11 2013 +0000"
      },
      "message": "Merge \"Turn off debugging in SyncManager\" into klp-dev"
    },
    {
      "commit": "d535ead295abf3b74afb6450c83bd197f69c5a26",
      "tree": "bdde0556fc8b716a034a17f2e40add90806aea32",
      "parents": [
        "7be3a138d57713bbe6d624998620081807e65b71"
      ],
      "author": {
        "name": "Zhentao Sun",
        "email": "robinvane@google.com",
        "time": "Thu Aug 29 14:43:35 2013 -0700"
      },
      "committer": {
        "name": "Zhentao Sun",
        "email": "robinvane@google.com",
        "time": "Thu Aug 29 16:56:19 2013 -0700"
      },
      "message": "Fixed b/10512887.\n\nThis is an issue caused by multi-threading. If geofence provider service\nis connected and disconnected immediately, the ServiceWatcher can return a\nnull service handle to the private thread used by GeofenceProxy, and\nthis can cause NPE and system crash.\nThis CL also fixed a hidden race conditions bug where mGeofenceHardware\nis not synchronized between two threads.\n\nChange-Id: I824642cd638fbb1e6799a5a1220b047ebc2556a1\n"
    },
    {
      "commit": "86d2db9750657401deadea6766c94300c3bfc7cd",
      "tree": "075dc4f64a741b3d52be3b09fb49f1494b15c9d7",
      "parents": [
        "27439903438abfb24f5c36151386e723f2e57ebc",
        "d26d4898fcc9b78f4b66118895c375384098205e"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 29 22:59:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 29 22:59:08 2013 +0000"
      },
      "message": "Merge \"Print spooler security and some new print service facing APIs.\" into klp-dev"
    },
    {
      "commit": "d26d4898fcc9b78f4b66118895c375384098205e",
      "tree": "2cd9d5b5403013eaf0ea998960c6ae1c9b37bc53",
      "parents": [
        "7be3a138d57713bbe6d624998620081807e65b71"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 28 14:37:54 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 29 15:39:44 2013 -0700"
      },
      "message": "Print spooler security and some new print service facing APIs.\n\n1. Updated the security mode of the print spooler. Now the spooler\n   is not signed with the system key, it is not a privileged app so if\n   it gets compromised (PDF rendering is a potential attack vector)\n   it cannot access dangerous permissions. Also only the system\n   can bind to the spooler.\n\n2. Added APIs for asking a print service to start and stop tracking\n   a given printer. This is need for the case when the user selects\n   the printer and the print service should do a best effort to keep\n   the system updated for the current state of the printer.\n\n3. Added APIs for putting a print job in a blocked state. A print\n   service would report the print job as blocked if for some reason\n   the printer cannot proceed, e.g. 99 pages are printed but there\n   is no paper for the last one. The user has to add more paper\n   and the print service can resume the job.\n\n4. Changed the read/write APIs to use ParcelFileDescriptor instead\n   of FileDescriptor since the latter does not have a clean API for\n   detaching the wrapped Linux file descriptor when one wants to\n   push it to native.\n\n5. Added API for getting the size of the printed document so the\n   print service can avoid handling big filed over cellular network\n   or ask the user if needed.\n\n6. Now the print services that are preinstalled on the system image\n   are automatically enabled.\n\nChange-Id: Ia06c311d3d21cabb9e1368f13928e11cd0030918\n"
    },
    {
      "commit": "28b1fc64221ebd47454829a8d029af0a7a35c6fd",
      "tree": "c037aabb1cd4b1eee4721d662b2e77f944d28555",
      "parents": [
        "c9c5d57e4e900573b8f8b65af4215cb45b48ce93"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu Aug 29 13:41:15 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 29 22:30:43 2013 +0000"
      },
      "message": "Turn off debugging in SyncManager\n\nBug: 10549076\nChange-Id: I63ad8af5fbe8736eb7ca8307a4beef5310a1c10c\n"
    },
    {
      "commit": "35bd30b184b321754697b992aa5c581e204d530a",
      "tree": "4ed543ffe1f0dafadc291eb300fa7aed05dfb250",
      "parents": [
        "79a45c6f1837d5921e512213904c96660b1a80b1",
        "7788c61af5927a0fac612ea94d5205eeec2f507f"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Aug 29 22:10:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 29 22:10:52 2013 +0000"
      },
      "message": "Merge \"Merge commit \u0027270226b0\u0027 into manualmerge\" into klp-dev"
    },
    {
      "commit": "7788c61af5927a0fac612ea94d5205eeec2f507f",
      "tree": "f2e7664071b52151a9ebf043d08448f36f4698cc",
      "parents": [
        "4b2993123bf9a1c56d0a16b032612834dd418520",
        "270226b0dddcf3ccb9a4c13cd3dd0427ebc7a4aa"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Aug 29 14:57:08 2013 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Aug 29 14:57:08 2013 -0700"
      },
      "message": "Merge commit \u0027270226b0\u0027 into manualmerge\n\n* commit \u0027270226b0\u0027:\n  Add support for handling mobile provisioning networks.\n\nConflicts:\n\tcore/java/android/net/CaptivePortalTracker.java\n\tcore/java/android/net/ConnectivityManager.java\n\tcore/java/android/net/IConnectivityManager.aidl\n\tcore/java/android/net/MobileDataStateTracker.java\n\tcore/res/AndroidManifest.xml\n\tservices/java/com/android/server/ConnectivityService.java\n\nChange-Id: I3925004011bb1243793c4c1b963d923dc2b00cb5\n"
    },
    {
      "commit": "79a45c6f1837d5921e512213904c96660b1a80b1",
      "tree": "e72ec54699aa6a9a0649c241617932c74b60767e",
      "parents": [
        "6b115980483ec20cc3f7817c76dfea18c49a48f3",
        "e9ecc8b49992840249bfb9d5d52b8824dd5de39b"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Aug 29 21:45:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 29 21:45:04 2013 +0000"
      },
      "message": "Merge \"Improve Intent disambig dialog behavior\" into klp-dev"
    },
    {
      "commit": "a78d9a24d97818a6c9c071483d7854b560ecf228",
      "tree": "3fd85e254fb62eff334c628e488f7ac9c2eec218",
      "parents": [
        "a6dcf1a2d634bd8c26b6a5744fc38874bcac6dd9",
        "e12a4a68101725eaecefef7d7bd9236991e3f508"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 29 21:14:30 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 29 21:14:31 2013 +0000"
      },
      "message": "Merge \"Reset activity\u0027s \"return to home\" flag on relaunch\" into klp-dev"
    },
    {
      "commit": "e12a4a68101725eaecefef7d7bd9236991e3f508",
      "tree": "2101f17e3f6c3af4d46b5d1f4def591ab7147fcb",
      "parents": [
        "572ec4e88c943e0ec717b773406aca43a5eafcb9"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 29 12:24:56 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 29 12:24:56 2013 -0700"
      },
      "message": "Reset activity\u0027s \"return to home\" flag on relaunch\n\nWhen relaunching an activity re-evaluate the flag that determines\nwhether to return to the next activity on the stack or to the home\nactivity upon return.\n\nFixes bug 10545580.\n\nChange-Id: I5868ce1b494afffcc5afc22abe3b65aa339827bb\n"
    },
    {
      "commit": "270226b0dddcf3ccb9a4c13cd3dd0427ebc7a4aa",
      "tree": "3bf0d860579246972213b7efcf2c231c4734f685",
      "parents": [
        "d4702f3c67473045d92eb4c3ea001d671f2f5f56",
        "8cb2f42eea2ef3b249528aa7913fc7a6dfc6b741"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Aug 29 10:26:06 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 29 10:26:06 2013 -0700"
      },
      "message": "am 8cb2f42e: am 948282b0: Add support for handling mobile provisioning networks.\n\n* commit \u00278cb2f42eea2ef3b249528aa7913fc7a6dfc6b741\u0027:\n  Add support for handling mobile provisioning networks.\n"
    },
    {
      "commit": "15b8b2c0684e2f850da58e38c717532f35acd11d",
      "tree": "dee6890234bfc4d3fe1fa8244108e39193c71bad",
      "parents": [
        "1f809c7761a52102621b22fe8ec8c9f91ec1fe54"
      ],
      "author": {
        "name": "Geoffrey Borggaard",
        "email": "geoffreyb@google.com",
        "time": "Wed Aug 28 22:11:10 2013 -0400"
      },
      "committer": {
        "name": "Geoffrey Borggaard",
        "email": "geoffreyb@google.com",
        "time": "Thu Aug 29 13:07:49 2013 -0400"
      },
      "message": "UserManagerService upgrades users on first restart.\n\nThis causes all restriction pins to be reset.\n\nBug: 10535070\nChange-Id: Ia2abf904505514d7e555b420c2b032a0094e0643\n"
    },
    {
      "commit": "948282b0e6cf5310f09db97a4ae939db7c1cef72",
      "tree": "8d24b04f379e58a6fa40751106ff2452a6c54e62",
      "parents": [
        "dce52cdbf1eab8bd979bf4676973699c39f7b32e"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Aug 29 08:55:16 2013 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Aug 29 08:55:16 2013 -0700"
      },
      "message": "Add support for handling mobile provisioning networks.\n\nWhen a sim is new or it has expired it needs to be provisioned\nwith the carrier. Basically provisioning is associating a sim with\na user account. When a sim isn\u0027t provisioned then operators will\nrestrict access to the network and only allow certain addresses\nor services to be used.\n\nThis set of changes allows two types of provisioning networks to be\nrecognized. The first is a network that causes all DNS lookups to be\nredirected to a different address than was intended. This is exemplified\nby how T-Mobile works.\n\nThe second technique uses a special apn for provisioning. An example is\nAT\u0026T where lwaactivate is the provisioning apn and broadband is the\nnormal apn. We first try broadband and if we are unable to connect we\ntry lwaactivate. When we see the activate we identify it as special and\nthe ApnContext.isProvisioningApn will return true.\n\nIn the future our plan is to create a new network type that can be added\nto the apn list, but for now it identified by name.\n\nHere is a list of significant changes:\n\n - CaptivePortalTracker now only test WiFi networks instead of all networks\n - checkMobileProvisioning checks for provisioning networks and doesn\u0027t\n   try to ping.\n - IConnectivityManager.aidl changes:\n   * getProvisioningOrActiveNetworkInfo was added to and used by Manage\n     mobile plan in WirelessSettings so even when there is no active\n     network it will still allow provisioning. Otherwise it would report\n     no internet connection.\n   * setSignInErrorNotificationVisible is used by both\n     CaptiviePortalTracker and checkMobileProvisioning so they use the\n     same code for the notifications.\n   * checkMobileProvisioning was simplified to have only a timeout as\n     returning the result is now harder as we abort simultaneous call\n     otherwise we\u0027d could get into loops because we now check every time\n     we connect to mobile.\n - Enhanced MDST to handle the provisioning network.\n - Added CONNECTED_TO_PROVISIONING_NETWORK to NetworkInfo to make a new\n   state so we don\u0027t announce to the world we\u0027re connected.\n - TelephonyIntents.ACTION_DATA_CONNECTION_CONNECTED_TO_PROVISIONING_APN\n   is sent by the low level data connection code to notify Connectivity\n   Service that a provisioning apn has connected. This allows CS to\n   handle the connection differently than a normal connection.\n\nBug: 10328264\nChange-Id: I3925004011bb1243793c4c1b963d923dc2b00cb5\n"
    },
    {
      "commit": "1f809c7761a52102621b22fe8ec8c9f91ec1fe54",
      "tree": "9d255ce9cbdbc0c2f52f72c5af10f560885f3234",
      "parents": [
        "d20aeab028bae53b46a707119e57a50c073337c2",
        "a8220a73c5cb1a65ca7a457f66c97e4e4c32ee4b"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Aug 28 14:41:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 28 14:41:15 2013 +0000"
      },
      "message": "Merge \"Don\u0027t clear Global Proxy on boot.\" into klp-dev"
    },
    {
      "commit": "e9ecc8b49992840249bfb9d5d52b8824dd5de39b",
      "tree": "7ce45d08a7e4f87db9c3388415f55b20614cde47",
      "parents": [
        "bbbc8660cdbfb033291f1911742a942a42c85af0"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Aug 22 11:16:27 2013 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 27 18:05:00 2013 -0700"
      },
      "message": "Improve Intent disambig dialog behavior\n\nKeep track of last chosen activity for a particular intent, similar\nto how it is tracked for \"Always\" choices.\nPre-select the last chosen activity if previously the user picked\n\"Just once\".\nDowngrade \"Always\" to \"Last chosen\" if there\u0027s a new kid on the block,\ninstead of removing it entirely.\nAdd methods to set and get last chosen entry.\n\nUI - switch from Grid to List.\n\nBug: 9958096\n\nChange-Id: Ied57147739a3ade1d36c3a7ec1e8ce77e5c5bb16\n"
    },
    {
      "commit": "61f0f9ada51a6718075acfe7fafbb9954f38e980",
      "tree": "23e0eed12d7fa7f20b145482461a663c66ae0922",
      "parents": [
        "ac738a25f8d0a9fcd5e30ad1a7b98683726c49f3",
        "018be3da7b2154499f644f72145f72454fa9fe15"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Aug 27 21:20:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 27 21:20:52 2013 +0000"
      },
      "message": "Merge \"When adding a window evaluate all tasks.\" into klp-dev"
    },
    {
      "commit": "018be3da7b2154499f644f72145f72454fa9fe15",
      "tree": "0dc534febab7537d07b717d6eb7b79c51cab4a79",
      "parents": [
        "74596aaa75ee648ca6593e98e94e76aa5a34ba4a"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Aug 27 13:25:17 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Aug 27 13:25:17 2013 -0700"
      },
      "message": "When adding a window evaluate all tasks.\n\nPreviously the code was adding a window based only on the tasks on\nthe stack belonging to the window being added. But if a window from\nanother stack was on top the window would be added out of order.\n\nIn particular when there was a dialog over the launcher app and the\ndevice was rotated, the launcher window was being added over the\ndialog. This caused the launcher icons to obscure the dialog and for\nthe dialog buttons to be untouchable.\n\nFixes bug 9984067.\n\nChange-Id: I9a57eb641d118f4a90e98af8ca77127ab5364e79\n"
    },
    {
      "commit": "ef4adae5de5fd02f4b98ea7528f5888b6397dd8e",
      "tree": "a74357b94d74faa43e7535667ef1632d2bbeece7",
      "parents": [
        "ec566dd06f780c1a368d9472235e5d1fe3c3bda9"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Aug 26 17:58:58 2013 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Aug 27 12:56:41 2013 -0400"
      },
      "message": "Allow wallpaper to extend into the entire screen.\n\nPreviously it was constrained to displayInfo.appWidth/appHeight\nwhich comes from PWM.getNonDecorDisplayWidth/Height, which includes\nthe nav bar.\n\nAlso adjust window layout to entire screen.\n\nThis allows wallpaper to extend into the navigation bar region,\nimportant if the nav bar is hidden or transparent.\n\nBug:10505328\nChange-Id: Ia6057b9c57b476a48f3b2d8b6368fd631e944a3e\n"
    },
    {
      "commit": "a8220a73c5cb1a65ca7a457f66c97e4e4c32ee4b",
      "tree": "c43e71e7d24063eee3771a61eacdfa55200558e8",
      "parents": [
        "94366313331a789440a3c077173aafcb85cabe78"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Aug 27 10:51:24 2013 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Aug 27 10:51:24 2013 -0400"
      },
      "message": "Don\u0027t clear Global Proxy on boot.\n\nDoesn\u0027t clear the global proxy when a deprecated one is not found because\nthere still may be a non-deprecated global proxy present.\n\nBug: 10457179\nChange-Id: I68e6d5aee7b4940f9315484060c7d82cb8ccfa70\n"
    },
    {
      "commit": "703187f76559de7dc98dbd1d24b3558a7ac177eb",
      "tree": "25ef28a279704016b130c5683a276dd1f1ce76da",
      "parents": [
        "4e22b851be121ef221c31c5c4fe12b770eb3e812",
        "7421a01f18f34d554ca7a9fd987c4f96da2bdf2f"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Aug 27 04:08:54 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 27 04:08:54 2013 +0000"
      },
      "message": "Merge \"Add a simple test for NetworkManagementService.\" into klp-dev"
    },
    {
      "commit": "59adfca65dc35274684831577ec41046b418a688",
      "tree": "c76249475a0e99441870a7cb2d7c19fcefd025d8",
      "parents": [
        "4e6e1749eda5a2c84538b0064fdc219aab3605e1",
        "33283a9726a29b5a79d7885fe194d52c0ebe7450"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Aug 26 11:50:10 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 26 11:50:10 2013 -0700"
      },
      "message": "am 33283a97: am dce52cdb: DO NOT MERGE: MDST is not ready until connected to DcTracker.\n\n* commit \u002733283a9726a29b5a79d7885fe194d52c0ebe7450\u0027:\n  DO NOT MERGE: MDST is not ready until connected to DcTracker.\n"
    },
    {
      "commit": "4e6e1749eda5a2c84538b0064fdc219aab3605e1",
      "tree": "58c40a71f9951b8b567dbf16f14ef18b780b6eff",
      "parents": [
        "f1fea52744eeaeed37a674c3fc94b7e1dbcda341",
        "b42beeafcf8117fb4ac41dd91fc9e6113c0d6aae"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Aug 26 11:43:25 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 26 11:43:25 2013 -0700"
      },
      "message": "am b42beeaf: am e63411f2: In isMobileOk don\\\u0027t execute finally if mobile data is not supported.\n\n* commit \u0027b42beeafcf8117fb4ac41dd91fc9e6113c0d6aae\u0027:\n  In isMobileOk don\u0027t execute finally if mobile data is not supported.\n"
    },
    {
      "commit": "14cabdabac1eb87026e4bbd71a18530031b1dd34",
      "tree": "5d7d7b974d47740629a738b446e603c1889a1519",
      "parents": [
        "61d806c76ad1158f5cfbf3daef87dac81e51fc94",
        "f45bb403884f30ecb383698ef1bcb1c7dc1964b8"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Sat Aug 24 01:28:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 24 01:28:28 2013 +0000"
      },
      "message": "Merge \"Add setting to disable keyguard widgets\" into klp-dev"
    },
    {
      "commit": "f45bb403884f30ecb383698ef1bcb1c7dc1964b8",
      "tree": "c38b8ea700eab25a7e9639585213511a452af181",
      "parents": [
        "570cd0f4c06a6e3de2af348040415ff2fcff57a1"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Aug 20 18:58:32 2013 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Aug 23 17:36:30 2013 -0700"
      },
      "message": "Add setting to disable keyguard widgets\n\nThis allows disabling keyguard widgets through Settings.\nOn new devices, the setting is turned off by default.  If the\nuser currently has widgets in keyguard, then we keep them\nand re-enable the setting.\n\nChange-Id: I7258921231d439925ac8627105710efa99309094\n"
    },
    {
      "commit": "5de1faca166e2241cf9ad1981007caa947a1fc1b",
      "tree": "fb5116ed908f62a44219486fc5711deb75dfc698",
      "parents": [
        "365768fd3533343d6631875d7d46882907f7ab09",
        "1f3ecaae6303d5ee6c5ca8499262c9962f036365"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Aug 23 23:18:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 23 23:18:52 2013 +0000"
      },
      "message": "Merge \"wifi-display: add certification options\" into klp-dev"
    },
    {
      "commit": "98d6212327d1c483894b642d5e24c3aac9fca9cf",
      "tree": "94c82b0f8f8fa9cd8d622ebb45d5fdaa20dafc08",
      "parents": [
        "570cd0f4c06a6e3de2af348040415ff2fcff57a1",
        "bd3b902567b09379e1b62c60b3319ad82102efad"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 23 23:17:47 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 23 23:17:47 2013 +0000"
      },
      "message": "Merge \"Add CancellationSignal support to file operations.\" into klp-dev"
    },
    {
      "commit": "1f3ecaae6303d5ee6c5ca8499262c9962f036365",
      "tree": "610f36b3c049710713e921c1aa10938fa250f1d2",
      "parents": [
        "570cd0f4c06a6e3de2af348040415ff2fcff57a1"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri May 03 15:55:36 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Aug 23 16:02:09 2013 -0700"
      },
      "message": "wifi-display: add certification options\n\nWhen certification mode is enabled:\n\n- Pass wfd session info to wifi display settings\n\n- Allow sink to connect to source\n\n- Add interface in display manager for pausing/resuming session\n\n- Add interface in WifiP2pManager for setting lc, oc and starting\n  autonomous GO\n\nNote that we\u0027re compliant regardless of certification mode, but\nsome confusing options (eg. allowing incoming connection from\nsink) we want to hide when not being tested.\n\nBug: 9371882\nChange-Id: Icc7dcae4e046453796cfa03f5f197055fabf234b\n"
    },
    {
      "commit": "44720af55a8fdf991929983dad5d53c02851dd1e",
      "tree": "a8d00a35c432ab3f5fc19afe21e4492d28578645",
      "parents": [
        "4359d56420b114f433ba4187c2d1f341bb35c938"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 20 16:32:53 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Aug 23 18:36:33 2013 +0000"
      },
      "message": "Print UI bug fixing and printer discovery refactoring.\n\n1. Added support for selecting a printer from the all printers activity\n   that is not in the initial printer selection drop down. The user\n   initially sees a sub set of the printers in the drop down and the\n   last option is to see all printers in a separate activity. Some\n   of the printers in the all printers activity are not shown in the\n   initial drop down.\n\n2. Refactored printer discovery by adding (private for now) printer\n   discovery app facing APIs. These APIs are needed to support multiple\n   printer selection activities (print dialog and all printers activities)\n   and also the settings for showing all printers for a service.\n\n   Now multiple apps can request observing for printers and there is\n   a centralized mediator that ensures the same printer discovery\n   session is used. The mediator dispatches printer discovery specific\n   requests to print services. It also aggregates discovered printers\n   and delivers them to the interested apps. The mediator minimizes\n   printer discovery session creation and starting and stopping discovery\n   by sharing the same discovery session and discovery window with\n   multiple apps. Lastly, the mediator takes care of print services\n   enabled during discovery by bringing them up to the current\n   discovery state (create discovery session and start discovery if\n   needed). The mediator also reports disappearing of the printers\n   of a service removed during discovery and notifies a newly\n   registered observers for the currnet printers if the observers are\n   added during an active printer discovery session.\n\n3. Fixed bugs in the print UI and implemented some UX tweaks.\n\nChange-Id: I4d0b0c5a6c6f1809b2ba5dbc8e9d63ab3d48f1ef\n"
    },
    {
      "commit": "bd3b902567b09379e1b62c60b3319ad82102efad",
      "tree": "c179f95abfe89e2029e099c1dba50dcefc6dfe7b",
      "parents": [
        "b4f6a01d51612b9e50dffd95905e9c9add79b5d8"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 20 15:20:04 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 23 11:27:25 2013 -0700"
      },
      "message": "Add CancellationSignal support to file operations.\n\nSince ContentProvider file operations can end up doing substantial\nnetwork I/O before returning the file, allow clients to cancel their\nfile requests with CancellationSignal.\n\nIdeally this would only be needed for openFile(), but ContentResolver\nheavily relies on openAssetFile() and openTypedAssetFile() for common\ncases.\n\nAlso improve documentation to mention reliable ParcelFileDescriptors\nand encourage developers to move away from \"rw\" combination modes,\nsince they restrict provider flexibility.  Mention more about places\nwhere pipes or socket pairs could be returned.\n\nImprove DocumentsContract documentation.\n\nBug: 10329944\nChange-Id: I49b2825ea433eb051624c4da3b77612fe3ffc99c\n"
    },
    {
      "commit": "4359d56420b114f433ba4187c2d1f341bb35c938",
      "tree": "d42a09da861ca750980a0fa323e87c22e01a515b",
      "parents": [
        "b8d3a3de675a42b0eed6117eca509c42903d7ee3",
        "da205a749fadb3a87357d9bd607f094c7717764a"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Aug 23 17:53:33 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 23 17:53:33 2013 +0000"
      },
      "message": "Merge \"System binds PAC Local Proxy instead of self start\" into klp-dev"
    },
    {
      "commit": "d866f5002aef29de5cde0e3b5e84ed3992214916",
      "tree": "ce261ff2bd8faff156eb8bf86e1829f95a0cece9",
      "parents": [
        "5bc1ea4e4ae0133d4d5eaa4ac98cf4719effd032",
        "2b10b52f6c08eb79f48f7388e2f1c69f58a9c96d"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Fri Aug 23 09:31:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 23 09:31:51 2013 +0000"
      },
      "message": "Merge \"Add new API shouldOfferSwitchingToNextInputMethod\" into klp-dev"
    },
    {
      "commit": "7421a01f18f34d554ca7a9fd987c4f96da2bdf2f",
      "tree": "0a7bc83740354382f5ddeef47f170bb7cfe79b54",
      "parents": [
        "5bc1ea4e4ae0133d4d5eaa4ac98cf4719effd032"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Aug 20 22:51:24 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Aug 23 18:30:19 2013 +0900"
      },
      "message": "Add a simple test for NetworkManagementService.\n\nFor now, this only tests network observers. It works by starting\nNetworkManagementService with a fake netd socket, feeding it\ninputs, and seeing if the appropriate observer methods are\ncalled.\n\nBug: 10232006\nChange-Id: I827681575642a4ee13ae48b81272521544b676bd\n"
    },
    {
      "commit": "0b31d812abe152cee3208f59be45bc94d9b299d5",
      "tree": "3a7f45cce134243bc31ce6e9b728223fad1117c1",
      "parents": [
        "7e458235ac2f2522bea07aa24423b39d1729d2e3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 22 19:41:29 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 22 20:07:08 2013 -0700"
      },
      "message": "Drop touch events when no window was touched.\n\nPrevent spurious ANRs in the case where an input event is simply\nundeliverable because there is no window at the touched location.\nPreviously, we would assume that we were just waiting for an\napplication to start and become available to handle the event but\nthis assumption is no longer valid.\n\nMonkeys in particular have a tendency to inject events outside\nof the boundaries of the display which results in spurious ANRs.\nSo we should just reject them.\n\nBug: 9774124\nChange-Id: I5c40ce4c942f0557593a229dc5253a0e0bdb8466\n"
    },
    {
      "commit": "8f91c33d8d5cd393107d5fb38e4682a5486e4b50",
      "tree": "91489a037cc3df388c20fae887839fc8bdcc4d22",
      "parents": [
        "8e3a41738fba4883f9951406f334567f621db102",
        "bb9682e12009aaad696f0b162085efc4b94f5048"
      ],
      "author": {
        "name": "Jose Lima",
        "email": "joselima@google.com",
        "time": "Thu Aug 22 21:28:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 22 21:28:14 2013 +0000"
      },
      "message": "Merge \"Allow replacing ResolverActivity via config value\" into klp-dev"
    },
    {
      "commit": "da205a749fadb3a87357d9bd607f094c7717764a",
      "tree": "659b1785d4fb97c342b72cd54f1a602107c56b2a",
      "parents": [
        "6b223c6a5be788ca28d5d911ab10650be673684b"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Aug 21 15:57:30 2013 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Aug 22 16:33:26 2013 -0400"
      },
      "message": "System binds PAC Local Proxy instead of self start\n\nThe PAC Local Proxy priviously caught proxy broadcasts and started itself\nwhen needed.  Now it is bound by the system the same way the pac processing\nservice is started.\n\nBug: 10425091\nChange-Id: I746daa21645a11aa18ef464f00c8cb5536d8c86f\n"
    },
    {
      "commit": "fecd6d49e07504f2dd950b701167110d1adf9d4b",
      "tree": "ac202058d0a7f5b4a3e33114526b4a16be5513aa",
      "parents": [
        "96d1b01d2dbd8db34f4abdd6c06ce29cb5775dc9",
        "e55c9686a180cc81e8aac1eeadad12271d8e41ca"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 22 17:55:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 22 17:55:26 2013 +0000"
      },
      "message": "Merge \"Ensure WorkSource for location blaming has names (b/10378815)\" into klp-dev"
    },
    {
      "commit": "e55c9686a180cc81e8aac1eeadad12271d8e41ca",
      "tree": "6fd0d63b16d174dd4526c88bc142c78f568aa0a7",
      "parents": [
        "435e7dfd922510bbc081800d0c6092ea52ed9cd1"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 22 10:10:34 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 22 10:10:34 2013 -0700"
      },
      "message": "Ensure WorkSource for location blaming has names (b/10378815)\n\nChange-Id: Ic201f7112dd9c746fe71995fcc1a533ff4a582f2\n"
    },
    {
      "commit": "e2a6d3df1257c1c04b1a14777bb7ee65f634bdc3",
      "tree": "51e6962892a320d2ec6533d1ab057774663d9429",
      "parents": [
        "6d15a364f26bd61122bfdd127eee225ca65206f5",
        "1f12cb52a494a3eaefc62d03a8d2fdf47a5535e9"
      ],
      "author": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Thu Aug 22 16:16:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 22 16:16:45 2013 +0000"
      },
      "message": "Merge \"Introduce network link quality statistics\" into klp-dev"
    },
    {
      "commit": "2b10b52f6c08eb79f48f7388e2f1c69f58a9c96d",
      "tree": "dff00863b80e12e1819e467962d802b705b5fd04",
      "parents": [
        "243a026b89bfe0b7b549665882d053c40ab0785f"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Wed Aug 21 20:39:12 2013 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Aug 22 15:51:13 2013 +0900"
      },
      "message": "Add new API shouldOfferSwitchingToNextInputMethod\n\nBug: 8364845\nChange-Id: I6767f5640a07aa515a930645b0cf0b36fbe94831\n"
    },
    {
      "commit": "1f12cb52a494a3eaefc62d03a8d2fdf47a5535e9",
      "tree": "bcb2aaae049ed47fd49863289d582698ca87282f",
      "parents": [
        "2241d45c68739e5bdf187ba3325ee237ef143e21"
      ],
      "author": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Wed Aug 21 13:09:01 2013 -0700"
      },
      "committer": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Wed Aug 21 13:09:01 2013 -0700"
      },
      "message": "Introduce network link quality statistics\n\nThis change starts tracking traffic quality data for WiFi and mobile\nnetworks. The quality is tracked based on incidental traffic, and not\non specific measurements. Theoretical bandwidths are hard-coded, as\nwell as sampling interval; although sampling interval can be changed\nby setting a system policy.\n\nBugs filed to remove shortcomings of this change -\n\n10342372 Change LinkInfo name to something better\n10342318 Move hardcoded values of MobileLinkInfo to resources\n         so they can be updated without changing code\n\nBug: 10006249\n\nChange-Id: I83d8c7594da20fe53abbd5e1f909b1f606b035bb\n"
    },
    {
      "commit": "fd589c1d946ca7633da43ae8e1b4989cb0a73043",
      "tree": "44ab684904a0e9afcc312c01a090d1b3cc04f9f1",
      "parents": [
        "906da6bfe4092fda1daff63e00e9f2ce1daac00b",
        "5c7daac2e3d9020185699ba554d763b825ab1778"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Aug 21 17:47:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 21 17:47:13 2013 +0000"
      },
      "message": "Merge \"Notify IP address changes to interface observers.\" into klp-dev"
    },
    {
      "commit": "10fa8c0626dbc0a875fe2543bf3c14d617dee9fb",
      "tree": "2bb90d86336c7c7e1ec0608fdc6c85ee85eba3ca",
      "parents": [
        "4d3d5f1f9e2ccf680660086338f7b9b02c2eb648",
        "df86a9f2e92d077386b146fe483b2cf14850737d"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Aug 21 17:20:39 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 21 17:20:40 2013 +0000"
      },
      "message": "Merge \"Make BaseNetworkObserver available to core code\" into klp-dev"
    },
    {
      "commit": "4d3d5f1f9e2ccf680660086338f7b9b02c2eb648",
      "tree": "e6dba06c4e288642fd34a537767dba2987fb12fb",
      "parents": [
        "6a99a8145c52749d794864c87ca073c7429850a5",
        "4faa027df03c241c92a12a437f20767ab4d6ee64"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Aug 21 17:13:49 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 21 17:13:50 2013 +0000"
      },
      "message": "Merge \"Modify LinkProperties address update methods.\" into klp-dev"
    },
    {
      "commit": "ff796e5a24481febd8c07b1a6a3c3eda0e3fd88b",
      "tree": "2ee074ef02867deb1bcfc2ac0762f7c49e939ed6",
      "parents": [
        "59bbba7c37f2ce7b7fd00aef87b49d681b4a3a79",
        "9ced3cd9d6ea414523051ec872fffc68f5fdbf08"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Aug 20 23:35:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 20 23:35:26 2013 +0000"
      },
      "message": "Merge \"Change PacProcessor to Android Service\" into klp-dev"
    },
    {
      "commit": "9ced3cd9d6ea414523051ec872fffc68f5fdbf08",
      "tree": "22d49c8bde1a17da9c9ff1588a3af3e176d0173a",
      "parents": [
        "58514937628dfcf3b2949e4cbc45d5526ecb8019"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Mon Aug 12 16:42:38 2013 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Aug 20 17:36:39 2013 -0400"
      },
      "message": "Change PacProcessor to Android Service\n\nThis switches the PacProcessor over to an Android Service.  The service\nis bound and unbound by the PacManager, which also adds it to the\nServiceManager, allowing for Context-Free access by the PacProxySelector\nin all DVMs.\n\nbug:10182711\nChange-Id: Id1ff7660be56e8976cdcccd76e041feb47a17a61\n"
    },
    {
      "commit": "d30921672ca3022107ce63f750b0f35ab224af4b",
      "tree": "ea943a3b1250c9b3b075ea7c6096efd90baa9650",
      "parents": [
        "2365745855ac4725949ebe9bae72fdc0613bb94f",
        "269403b032f965ff3847eb982c2f697229dc5a92"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 20 20:42:05 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 20 20:42:05 2013 +0000"
      },
      "message": "Merge \"Implemented advanced printer selection and API refactoring.\" into klp-dev"
    },
    {
      "commit": "1cd230a552bcc4196b546321b670e084e643c8d5",
      "tree": "1bb3bf257066288dec0d0790c1ae017014b14739",
      "parents": [
        "cf8e6778c28319b6c5357a43831ebf1a41b56e96",
        "da51e68e582ffa017543982297c831680d201a91"
      ],
      "author": {
        "name": "Maggie Benthall",
        "email": "mbenthall@google.com",
        "time": "Tue Aug 20 18:35:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 20 18:35:08 2013 +0000"
      },
      "message": "Merge \"Add methods for managing CAs to DevicePolicyManager(Service)\" into klp-dev"
    },
    {
      "commit": "da51e68e582ffa017543982297c831680d201a91",
      "tree": "569121a5f1c7d504a6f499f6249de09e016b7d8e",
      "parents": [
        "0a94b9ce277ef2ec79902e3c576a50ab438dca97"
      ],
      "author": {
        "name": "Maggie Benthall",
        "email": "mbenthall@google.com",
        "time": "Thu Aug 08 22:35:44 2013 -0400"
      },
      "committer": {
        "name": "Maggie Benthall",
        "email": "mbenthall@google.com",
        "time": "Tue Aug 20 14:30:36 2013 -0400"
      },
      "message": "Add methods for managing CAs to DevicePolicyManager(Service)\n\nGuard install/uninstall by enforcing that the caller have the new system-only permission MANAGE_CA_CERTIFICATES.\nAlso include API methods for asking whether there are any User CA certs\ninstalled, or if one by a particular name is installed in the keystore.\n\nCA certs will be installed via KeyChain into the TrustedCertificateStore.\n\nBug: 8232670\n\nChange-Id: I17b47a452e72eb4fe556dc6db823a46c6e854be8\n"
    },
    {
      "commit": "bb9682e12009aaad696f0b162085efc4b94f5048",
      "tree": "2c351ad12b5dbdf0725870553981bfdda77f55a4",
      "parents": [
        "74596aaa75ee648ca6593e98e94e76aa5a34ba4a"
      ],
      "author": {
        "name": "Jose Lima",
        "email": "joselima@google.com",
        "time": "Fri Aug 16 16:14:32 2013 -0700"
      },
      "committer": {
        "name": "Jose Lima",
        "email": "joselima@google.com",
        "time": "Tue Aug 20 10:46:14 2013 -0700"
      },
      "message": "Allow replacing ResolverActivity via config value\n\nChanged PackageManager to read a config value that indicates if\nthe default ResolverActivity should be replaced by a custom version.\nThis config value can be replaced via an overlay.\n\nBug: 10081151\nChange-Id: I6f1c59d053b89fabf52bcda620eb5d4026406701\n"
    },
    {
      "commit": "5c7daac2e3d9020185699ba554d763b825ab1778",
      "tree": "25f84073a4d0617256871b0ad1edae8d98705898",
      "parents": [
        "df86a9f2e92d077386b146fe483b2cf14850737d"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Aug 05 10:39:37 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Aug 20 21:29:05 2013 +0900"
      },
      "message": "Notify IP address changes to interface observers.\n\n1. Add addressUpdated and addressRemoved methods to\n   INetworkManagementEventObserver. (The -Updated method is not\n   called -Added because it gets called for both adds and\n   changes.) Update all its callers in the tree.\n2. Make NetworkManagementService parse IP address notifications\n   from NetlinkHandler and call the address{Removed,Updated} on\n   its observers.\n\nBug: 10232006\nChange-Id: Ieb185dbba052bdbff03caafc0cf5397a7f04dc6d\n"
    },
    {
      "commit": "df86a9f2e92d077386b146fe483b2cf14850737d",
      "tree": "df4dcb498febafde2bf79ff2b0b1aeee35f572dc",
      "parents": [
        "4faa027df03c241c92a12a437f20767ab4d6ee64"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Aug 20 19:51:30 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Aug 20 21:16:38 2013 +0900"
      },
      "message": "Make BaseNetworkObserver available to core code\n\nCurrently BaseNetworkObserver is in frameworks/base/services, but\nthere is code in frameworks/base/core that could use it. This\ncode typically extends INetworkManagementEventObserver.stub\nbecause BaseNetworkObserver is not available.\n\nMove BaseNetworkObserver to frameworks/base/core without changing\nits package name, and use it to simplify two callers. The third\ncaller, Tethering, is much larger, and I\u0027m not sure it\u0027s\nappropriate to change it.\n\nBug: 10232006\nChange-Id: Ifc0f2e619e3424e27e35730c048a1cc523df345e\n"
    },
    {
      "commit": "4faa027df03c241c92a12a437f20767ab4d6ee64",
      "tree": "c7bafb0baeb24613daf879c19013464349dd4820",
      "parents": [
        "6eb8a62a26f35ed1c2938945bb86a65f486a8052"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Aug 08 11:00:12 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Aug 20 21:16:37 2013 +0900"
      },
      "message": "Modify LinkProperties address update methods.\n\n1. Make addLinkAddress a no-op if the address already exists.\n2. Make addLinkAddress, addStackedLink and removeStackedLink\n   return a boolean indicating whether something changed.\n3. Add a removeLinkAddress method (currently there is no way of\n   removing an address).\n3. Move hasIPv6Address from ConnectivityService to\n   LinkProperties, where it belongs.\n\nBug: 9625448\nBug: 10232006\nChange-Id: If641d0198432a7a505e358c059171f25bc9f13d5\n"
    },
    {
      "commit": "194c140c34d9f4874c64839c2e20ef61f41cbb97",
      "tree": "4a66ba26f7b977c081e1d754841e70304eb4230e",
      "parents": [
        "974e5975d3bc16fd5b0db535ec825c045995d0fc",
        "64dfb604e70b70b7c346768114e05ddfadc09add"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 19 23:57:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 19 23:57:11 2013 +0000"
      },
      "message": "Merge changes Id3815fe8,I90a85921 into klp-dev\n\n* changes:\n  Define AudioSource.REMOTE_SUBMIX.\n  Remove setRemoteSubmixOn method.\n"
    },
    {
      "commit": "007751276c210c39bd405ae9fa69854e67e80951",
      "tree": "e3dc7267ee3cb3679626d764e485d2368165881d",
      "parents": [
        "b6c38e9de1a2824ce599d7074fa4a226926177c1",
        "bc57cd1b248bf23e443581f9fe44167c94699ce8"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 19 23:11:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 19 23:13:47 2013 +0000"
      },
      "message": "Merge \"Notify ViewRootImpl when it\u0027s safe to modify Canvas.\" into klp-dev"
    },
    {
      "commit": "bc57cd1b248bf23e443581f9fe44167c94699ce8",
      "tree": "2ed171ce5d188291539249e23389184091d48de4",
      "parents": [
        "80f7ec06d0e45a8724122d5b4451ee12e37f9aac"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 19 15:47:42 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 19 15:47:42 2013 -0700"
      },
      "message": "Notify ViewRootImpl when it\u0027s safe to modify Canvas.\n\nWhen Activity.convert{To|From}Translucent() is called the\nViewRootImpl is now notified when it is safe to convert the Canvas\nfrom translucent to opaque and back to translucent. This will make\nit possible to save resources when compositing opaque layers.\n\nFixes bug 10349536.\n\nChange-Id: I7282aee1d54601fb00611d20be204bf164d873f6\n"
    },
    {
      "commit": "269403b032f965ff3847eb982c2f697229dc5a92",
      "tree": "96ef6d8d99f7cbd56d78c63bf5e4da78a42831c1",
      "parents": [
        "b93489270d41bbaf513f0018164ab8b6d6ca9519"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 14 17:31:04 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Aug 19 13:24:11 2013 -0700"
      },
      "message": "Implemented advanced printer selection and API refactoring.\n\n1. Added past printer history tracking and merging favorite printers\n   with discovered printers.\n\n2. Added save as PDF support.\n\n3. Added all printers activity with search capability and optional\n   add printers chooser (if any print service provides add printers\n   activity)\n\n4. Refactored the printer discovery session APIs. Now one session\n   can have multiple window discovery windows and the session stores\n   the printers found during past discovery periods.\n\n5. Merged the print spooler and the print spooler service - much\n   simpler and easier to maintain.\n\nChange-Id: I4830b0eb6367e1c748b768a5ea9ea11baf36cfad\n"
    },
    {
      "commit": "2a994b343f6d92910c3c9fba2641aa04bf5eb1fd",
      "tree": "7385373ea5d52ee5893861841a7426c794d9cbf9",
      "parents": [
        "e79ba1545323f067bbd22d1e89ed329f7ec1d011",
        "e428a7f662f109a5f2015008e3161df23932483e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 19 16:01:56 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 19 16:01:56 2013 +0000"
      },
      "message": "Merge \"Allow for more than one home app.\" into klp-dev"
    },
    {
      "commit": "e428a7f662f109a5f2015008e3161df23932483e",
      "tree": "d871496dfdbab2ab22f98f95d9e2d9d6f3c57bec",
      "parents": [
        "80f7ec06d0e45a8724122d5b4451ee12e37f9aac"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sat Aug 17 17:04:56 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sat Aug 17 17:04:56 2013 -0700"
      },
      "message": "Allow for more than one home app.\n\nHaving a single mHomeProcess in ActivityManagerService ignores the\npossibility of multiple processes serving as home. Particularly when\nwe have a home activity that only serves to launch the true home\nactivity.\n\nFixes bug b10296766\n\nChange-Id: I9e5c9c955c64f4b3df856b6bc66d6a0d93f85aab\n"
    },
    {
      "commit": "f15ef4b02cf2e4298a6eca9709693f1e720c18c6",
      "tree": "d830de7fe0eebd0a2d36399e96459e414c583f67",
      "parents": [
        "77b2a86144365ce3dee557b5c444075c0e0a4033"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 09 17:30:57 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 16 20:21:09 2013 -0700"
      },
      "message": "Remove setRemoteSubmixOn method.\n\nThe submix will be controlled automatically from now on based on\nwhether there is an active audio recorder.\n\nBug: 10265163\nChange-Id: I90a8592136c6507680e70f054243df70cc82efad\n"
    },
    {
      "commit": "dce52cdbf1eab8bd979bf4676973699c39f7b32e",
      "tree": "69d49b7aae589d8ed0b26ef952d482170dbfc272",
      "parents": [
        "e63411f28b81a0c9f7fee1d0b3a0765606c9a6f2"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Aug 16 17:17:28 2013 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Aug 16 17:17:28 2013 -0700"
      },
      "message": "DO NOT MERGE: MDST is not ready until connected to DcTracker.\n\nWhen the system becomes loaded the PhoneApp can be delayed\nsignificantly and a call to setEnableFailFastMobileData may not\noccur because the channel between the MobileDataStateTracker (MDST)\nand DcTracker (DCT) is not connected.\n\nSolution: Add a isReady to MDST and isMobileDataStateTrackerReady to\nConnectivityService and call it from isMobileOk.\n\nBug: 10351868\nChange-Id: I92f9d58121b88186b636cd71c2fd2ef9a28f7cf6\n"
    },
    {
      "commit": "0c5b96b1cd6c0d7523e0653682a146dfbc9ad659",
      "tree": "33e10cdfaea5f692b1db839d9de0e012b09ec8d8",
      "parents": [
        "df717aaa258e88c1af40b61e42aab86dabec8f61",
        "ba35271e91648c9cde2bb606aaf2001282231b07"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Fri Aug 16 23:10:57 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 23:10:57 2013 +0000"
      },
      "message": "Merge \"Use pending.xml to persist sync ops.\" into klp-dev"
    },
    {
      "commit": "ba35271e91648c9cde2bb606aaf2001282231b07",
      "tree": "833f8ec64cd9f1c853414580f3fadd7a41a9c3d1",
      "parents": [
        "2241d45c68739e5bdf187ba3325ee237ef143e21"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Tue Aug 13 15:53:31 2013 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Fri Aug 16 12:01:22 2013 -0700"
      },
      "message": "Use pending.xml to persist sync ops.\n\nSupport pending ops by producing badly formed xml.\nfixed bug that stopped alarm manager from updating if the\nnext alarm time is in the past.\nUse new AlarmManager API for old AM behaviour - to set\nexact alarms.\n\nChange-Id: I57090f9c7155996298be7ec968a88f17ac1938a7\n"
    },
    {
      "commit": "d3135451b1091022264f15a17e0ac85ec8f0bf30",
      "tree": "5129f62e54c2cc7e97db3c3615586345c907070c",
      "parents": [
        "7f2f60debea72f428cda03774e497e63aff08b09",
        "8e628dadc321bf49e93e482540df87431d014b01"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Aug 16 18:17:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 18:17:51 2013 +0000"
      },
      "message": "Merge \"Modify wifi BatchedScan.\" into klp-dev"
    },
    {
      "commit": "e63411f28b81a0c9f7fee1d0b3a0765606c9a6f2",
      "tree": "17f1cd00743c4eeafdd7c12a78a3ac85c7f8938c",
      "parents": [
        "1c2cb6533bfebf8b930850215e24327420e34a4b"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Aug 13 12:41:06 2013 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Aug 15 21:14:30 2013 -0700"
      },
      "message": "In isMobileOk don\u0027t execute finally if mobile data is not supported.\n\nMove the early return outside the try {} finally so we don\u0027t call\nsetEnableFailFastMobileData(DctContants.DISABLED). Otherwise\nreferencing counting is wrong and an exception is thrown in DcTrackerBase.\n\nBug: 10304904\nChange-Id: I5ba5121e473bada9f3daa8d6f3d3577cec8212fc\n"
    },
    {
      "commit": "8e628dadc321bf49e93e482540df87431d014b01",
      "tree": "0112a424d8eccfa22b2153226270968bad859edf",
      "parents": [
        "7a8d9d6fecb31124ad1ec349944659a2f5672776"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Aug 14 16:07:44 2013 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Aug 15 08:39:13 2013 -0700"
      },
      "message": "Modify wifi BatchedScan.\n\nAdd pollBatchedScan API to allow forced retrieval.\nModified driver API, adding MSCAN, removing nextCount and making\nthe results look more like normal manual scan results.\n\nbug:9301872\nChange-Id: I58bce0624c36e2ad8d3c3f5defcb4d4e155dc8f9\n"
    },
    {
      "commit": "7d56ef2d808289a148085b9bff1448d331f4643e",
      "tree": "8f844d3f3d4482f77f90ebfdea8876fb7d7af2f0",
      "parents": [
        "80f7ec06d0e45a8724122d5b4451ee12e37f9aac",
        "02e4d16ed9a0499ad72f2ff427e8bf0e85d7ae06"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 14 20:08:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 20:08:36 2013 +0000"
      },
      "message": "Merge \"Add GIDs to packages.list, update SD card perms.\" into klp-dev"
    },
    {
      "commit": "da5b6f2dc4ba23b6b70209f9b34fb39c93a51fc4",
      "tree": "f84ee769a365f4b646613ba7ac7f90b61b2b50c2",
      "parents": [
        "a5c81e8636c4b7bc68713f1b2988026b275ae329"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Aug 14 09:46:52 2013 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Aug 14 09:49:02 2013 -0400"
      },
      "message": "Normalize dream service dump check with other services.\n\nBug:10310128\nChange-Id: Ieeeccc01832b569cf7fb3d1633d7dde60fceb7b2\n"
    },
    {
      "commit": "59703c7186ea49669e7dd326a1e2e704385cbaff",
      "tree": "9e83f12db6224b33db3799e459ce10444645a003",
      "parents": [
        "3dfa5eb9d9eeb12d761194cb06dc1ba63ed61e95",
        "66160bb881470a691005c8ad4e9c31c41fd5f810"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 14 07:09:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 07:09:25 2013 +0000"
      },
      "message": "Merge \"Partial implementation for the favorite and available printer tracking.\" into klp-dev"
    },
    {
      "commit": "66160bb881470a691005c8ad4e9c31c41fd5f810",
      "tree": "f6d08dcb111ec41626cf8ce4c9ccda7c61ae57db",
      "parents": [
        "18d9c3cc6c7d69f7c5b36dafc4b66f0722b98a89"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Aug 12 22:36:50 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 14 00:06:53 2013 -0700"
      },
      "message": "Partial implementation for the favorite and available printer tracking.\n\n1. Added a dedicated class that keeps track of the user\u0027s favorite printers\n   based on past usage. We keep the last 50 uses and assign a decreasing weight\n   to older historical use records. The printer whose records\u0027 sum is the\n   largest is considered the favorite for the user and so on.\n\n2. Factored out the printer discovery logic from the print job config activity\n   into a separate available printers provider class. It encapsulates all the\n   logic to communicated with the remote print services to discover printers,\n   keep track of added, updated, and removed printers.\n\n3. Preliminary scetch of the printer chooser acitivty that will show all the\n   printers.\n\nChange-Id: I5524665f2a9a565f186db85214d5e41a44f4812e\n"
    },
    {
      "commit": "b5eaf2662c174a7f5844bc62eba4f09dd64877f7",
      "tree": "f52b9f0f9a3f73f68da27ec4c6afbdfd164a855c",
      "parents": [
        "5c7e64609c4de93cd70c2cbe238a5fc3ff3c6078",
        "15b3191f913091e686e9e1f3708b7f8240a07e8b"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Wed Aug 14 00:07:58 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 00:07:58 2013 +0000"
      },
      "message": "Merge \"Update location AppOp monitoring to respect settings. If a provider is disabled, we don\u0027t mark an app as actively using location just because it\u0027s requested that provider.  Also updates the concept of high power to support third party custom providers (doesn\u0027t hard code gps but looks at the provider\u0027s actual stated power requirement).\" into klp-dev"
    },
    {
      "commit": "5c7e64609c4de93cd70c2cbe238a5fc3ff3c6078",
      "tree": "5601c7e6ce5320f7bd197ef1bcb9833ee8a632e4",
      "parents": [
        "7a8d9d6fecb31124ad1ec349944659a2f5672776",
        "0682809ad08db284d7110aab44108d5e9c310e6b"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Tue Aug 13 23:56:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 23:56:31 2013 +0000"
      },
      "message": "Merge \"Add support in the platform for Flp Geofencing.\" into klp-dev"
    },
    {
      "commit": "7a8d9d6fecb31124ad1ec349944659a2f5672776",
      "tree": "7c11702e6c0b7fa30a63e80bca9d463dfae3e579",
      "parents": [
        "ba5e533eda951a7e97b4471db2be1954f6c21276",
        "0451d59ba2d768e7653752028910f00a6c96e64e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Aug 13 23:22:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 23:22:52 2013 +0000"
      },
      "message": "Merge \"Add support for batched wifi scans.\" into klp-dev"
    },
    {
      "commit": "15b3191f913091e686e9e1f3708b7f8240a07e8b",
      "tree": "68c1b217e09e53d9a427fc2ab51f096f85a9751a",
      "parents": [
        "87fefc449bffabebf98020f40d21d28500b1c1bb"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Tue Aug 13 15:54:32 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Tue Aug 13 16:01:36 2013 -0700"
      },
      "message": "Update location AppOp monitoring to respect settings.\nIf a provider is disabled, we don\u0027t mark an app as\nactively using location just because it\u0027s requested\nthat provider.  Also updates the concept of high\npower to support third party custom providers\n(doesn\u0027t hard code gps but looks at the provider\u0027s\nactual stated power requirement).\n\nChange-Id: Ie01243bf04d7301962ea9cdb25fb7d8d97566e02\n"
    },
    {
      "commit": "0682809ad08db284d7110aab44108d5e9c310e6b",
      "tree": "2aa38602adac05aa16f829f995b21d239ba2494c",
      "parents": [
        "f464511a7be2e381f508b5b2b937f19c98d800c2"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Mon Aug 12 18:50:30 2013 -0700"
      },
      "committer": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Tue Aug 13 16:00:04 2013 -0700"
      },
      "message": "Add support in the platform for Flp Geofencing.\n\nChange-Id: I0fb0e276d3a06322697bb5d46323779aca1f78c5\n"
    },
    {
      "commit": "ba5e533eda951a7e97b4471db2be1954f6c21276",
      "tree": "6c2d8506d63deda8da3eef9ea75b4f1a03227885",
      "parents": [
        "f464511a7be2e381f508b5b2b937f19c98d800c2",
        "afe58b07dbf9feb8d7396e26f271bf4e2a9447fa"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Aug 13 22:57:54 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 22:57:54 2013 +0000"
      },
      "message": "Merge \"In isMobileOk don\u0027t execute finally if mobile data is not supported.\" into klp-dev"
    },
    {
      "commit": "0451d59ba2d768e7653752028910f00a6c96e64e",
      "tree": "e9ca4d4d77074b6223ddf07d761fcd679bc1fa6c",
      "parents": [
        "7a605df3137ee571dec855761c0cb15b28513d26"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Aug 01 18:24:13 2013 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Aug 13 14:37:37 2013 -0700"
      },
      "message": "Add support for batched wifi scans.\n\nbug:9301872\n\nChange-Id: I5a7edfdbd2b78a65119d11acad491eae350c0870\n"
    },
    {
      "commit": "164c2edccd7e27ff9d34fb81f5019088a31d2b56",
      "tree": "292f59686743e03eaf22d790ab870a05a1c3eef7",
      "parents": [
        "63113994034e2e71bac40d2de076fa9b1b406960"
      ],
      "author": {
        "name": "Adam Skory",
        "email": "skory@google.com",
        "time": "Tue Aug 13 13:32:31 2013 -0700"
      },
      "committer": {
        "name": "Adam Skory",
        "email": "skory@google.com",
        "time": "Tue Aug 13 14:24:34 2013 -0700"
      },
      "message": "Fix NPE in ActivityManagerService\n\nBug: 10294281\nChange-Id: Iaf608ae099b90fac8ad726285652b5c3e74e1632\n"
    },
    {
      "commit": "afe58b07dbf9feb8d7396e26f271bf4e2a9447fa",
      "tree": "e59b576e43d2f76ba29751cafa5dd7bd8e728f7c",
      "parents": [
        "d1f6b6245c546f95a44d0252544ea9e2028a33b4"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Aug 13 12:41:06 2013 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Aug 13 12:41:06 2013 -0700"
      },
      "message": "In isMobileOk don\u0027t execute finally if mobile data is not supported.\n\nMove the early return outside the try {} finally so we don\u0027t call\nsetEnableFailFastMobileData(DctContants.DISABLED). Otherwise\nreferencing counting is wrong and an exception is thrown in DcTrackerBase.\n\nBug: 10304904\nChange-Id: I5ba5121e473bada9f3daa8d6f3d3577cec8212fc\n"
    },
    {
      "commit": "02e4d16ed9a0499ad72f2ff427e8bf0e85d7ae06",
      "tree": "d5b963d7f270c9432f82e0f78bdd88b6961ee958",
      "parents": [
        "998cfa2c63c54a73d0c51d062408d370ed0b3107"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 12 20:31:36 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 12 20:31:36 2013 -0700"
      },
      "message": "Add GIDs to packages.list, update SD card perms.\n\nWrite supplementary GIDs to packages.list for lower-level system\ncomponents to parse.\n\nWRITE_EXTERNAL_STORAGE also implies sdcard_r GID. Switch to always\nenforce READ_EXTERNAL_STORAGE permission. Update permission docs to\nmention new behavior.\n\nChange-Id: I316ba4b21beebb387ac05c80980ae9b38235b37d\n"
    },
    {
      "commit": "ddbfdfa530a02e75402ff9c570c4420b94811b8e",
      "tree": "d6f68f98c91f68531ef7bb854961c07ab218f712",
      "parents": [
        "51b4a40ef505962becb450f9f1b3170b11082dcb",
        "1eb0637f2a17362476a8876b4437f8a0c0783b86"
      ],
      "author": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Tue Aug 13 00:07:22 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 00:08:15 2013 +0000"
      },
      "message": "Merge \"fix race condition when a new display is added\" into klp-dev"
    },
    {
      "commit": "1eb0637f2a17362476a8876b4437f8a0c0783b86",
      "tree": "78830474db77ffd6e87e5e6c21a01d644d6c5325",
      "parents": [
        "1232c51eed998bec13787d75204303502f9e195f"
      ],
      "author": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Fri Aug 09 14:32:36 2013 -0700"
      },
      "committer": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Mon Aug 12 16:21:14 2013 -0700"
      },
      "message": "fix race condition when a new display is added\n\n- When a new display is added, display add event triggers handleDisplayAddedLocked in\n  WindowManagerService asynchronously.\n- After creating virtual display, application can move on and call addWindow before\n  handleDisplayAddedLock is called.\n- Application\u0027s addWindow leads into creating a new DisplayContent, and a window will be added there.\n- But when handleDisplayAddedLocked is called later, it will create a new DisplayContent for the\n  display, and the window added by the application will be lost.\n- This CL tries to fix the issue by checking the presence of DisplayContent before creating a new\n  one.\n\nbug: 9975297\n\nChange-Id: I9fac7ffb57c3e1effa8f0e950539cfae73e7e1c6\n"
    },
    {
      "commit": "b6da9115eee23eef8cbe278dff886fef53e20e62",
      "tree": "1b90eab06ae3cae3b38e2f0f37aacc21672b76ee",
      "parents": [
        "076d378760a2575a6836dc12642c52b79048b638",
        "61574705d34a31a60b53f7dd7231f1dcb1e31608"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 12 19:43:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 12 19:43:25 2013 +0000"
      },
      "message": "Merge \"Remove incorrect warning.\" into klp-dev"
    },
    {
      "commit": "61574705d34a31a60b53f7dd7231f1dcb1e31608",
      "tree": "2fd07a82656e28b0de1611b9bf53c883b525ca8c",
      "parents": [
        "7a605df3137ee571dec855761c0cb15b28513d26"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 12 12:29:40 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 12 12:29:40 2013 -0700"
      },
      "message": "Remove incorrect warning.\n\nThe warning about an ActivityRecord not being assigned a task was\nincorrect in the location modified by this fix. In this case an\nexisting ActivityRecord is relaunched so it is not necessary to\nassign the task to the passed ActivityRecord.\n\nAddresses the warning associated with bug 10181389.\n\nChange-Id: I76d5066c320bf9da2663bc34bcaca801ad4953bc\n"
    },
    {
      "commit": "998cfa2c63c54a73d0c51d062408d370ed0b3107",
      "tree": "96744ed8f740850b5933ac043855b4b7da533520",
      "parents": [
        "c2f8da8756553bb682e0e202779063965a89dced",
        "08da7a1143b0c9cfb703971d882e0886bbd7d9de"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 12 03:59:58 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 12 03:59:58 2013 +0000"
      },
      "message": "Merge \"API to discover granted Uri permissions.\" into klp-dev"
    },
    {
      "commit": "08da7a1143b0c9cfb703971d882e0886bbd7d9de",
      "tree": "c4af63f07435ec1153a5e7194385a642409905aa",
      "parents": [
        "b9be11c370712cfc4d54aef9202e61092b96960d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 20:53:18 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 20:56:15 2013 -0700"
      },
      "message": "API to discover granted Uri permissions.\n\nNow that granted Uri permissions can be persisted across reboots,\noffer APIs to discover them. Returns incoming or outgoing grants\nmatching the requested flags and mask. Add helper method to discover\n\"open\" documents using this new API and filtering for non-documents.\n\nRequire that callers own at least of the filtering packages to avoid\nexposing all grants. Switch internal grant tracking to use ArrayMap.\n\nChange-Id: I0a755f221d0d160b411f8d3cfc48279b64345733\n"
    },
    {
      "commit": "6e14b22cfe2ac923825d4b085e4e48b1fbd98f09",
      "tree": "3b210bc9ac195e1ce7369fc9d1ba7296092264a1",
      "parents": [
        "b8160401a6ebfb6287513400ff9834656e5cb6e7",
        "1abdb7123025e52512b2ed7a518f8c754c35f50a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 12 00:13:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 12 00:13:35 2013 +0000"
      },
      "message": "Merge \"APIs for multiple external storage devices.\" into klp-dev"
    },
    {
      "commit": "1abdb7123025e52512b2ed7a518f8c754c35f50a",
      "tree": "c6ee8a4b4b4f8cf7b865d2d537823d6a59dca441",
      "parents": [
        "09335703572db7d6a9b43f3aba32074e473d6a0f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 16:28:14 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 17:07:44 2013 -0700"
      },
      "message": "APIs for multiple external storage devices.\n\nProvide developer APIs to discover application-specific paths on\nsecondary external storage devices.  Covers files, cache, and OBB\ndirectories.  Apps will not have write access outside their package-\nspecific directories on secondary devices, so only primary storage is\nexposed through Environment.\n\nCreation of .nomedia files will be handled by FUSE daemon in future\nchange.\n\nChange-Id: Ifcce6201a686d80269d7285adb597c008cf8fa7c\n"
    },
    {
      "commit": "c7c4d6dd4df2b177d0b6e382fdcde9bf2032baea",
      "tree": "16844d8d5e02286f09932469c69aaec9bbd4bb9e",
      "parents": [
        "0dd303cfdbd95e4aa0d4221cf547fdcdbc7c3756",
        "798bed6cc7d273e72b0253288605db9cd2b57740"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Aug 11 21:42:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 11 21:42:54 2013 +0000"
      },
      "message": "Merge \"Refinement of the print service APIs.\" into klp-dev"
    },
    {
      "commit": "798bed6cc7d273e72b0253288605db9cd2b57740",
      "tree": "b4278847c40cf910b69773c6205395ada02543ed",
      "parents": [
        "5893a97cbf398ca3e1bff5444454343d94e25a4c"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Aug 11 12:29:39 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Aug 11 14:40:05 2013 -0700"
      },
      "message": "Refinement of the print service APIs.\n\n1. Factored out the printer discovery APIs of a print service in a\n   dedicated session object that is created by the print service on\n   demand. This ensures that added/removed/updated printers from\n   one session do not interfere with another session.\n\n2. Updated the app facing APIs to pass in a document info along\n   with a printed file. Also exposed the print file adapter so\n   apps that create a temporary file for printing can intercept\n   when it is read by the system so the file can be deleted.\n\n3. Updated the print service documentation.\n\nChange-Id: I3473d586c26d8bda1cf7e2bdacb441aa9df982ed\n"
    },
    {
      "commit": "0dd303cfdbd95e4aa0d4221cf547fdcdbc7c3756",
      "tree": "603d88dfe8aae7fb96cfa9a95de0d61ec49c0f97",
      "parents": [
        "a48ad8bd858d6ffe77838a282dbf71e01967957c",
        "6201c2ac418424424573343d61b2b5bda3de77e2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sat Aug 10 18:52:39 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 10 18:52:39 2013 +0000"
      },
      "message": "Merge \"Put animation background behind visible wallpaper\" into klp-dev"
    }
  ],
  "next": "6201c2ac418424424573343d61b2b5bda3de77e2"
}
