)]}'
{
  "log": [
    {
      "commit": "b5f180608db6de123b54ae94de569ff1ebca705c",
      "tree": "a6e8f452458e30c3cf86d942131185c44cdc6e19",
      "parents": [
        "89e1fec9af78b94cbafc21fe22a69213ae31a6fa"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Sep 23 18:48:34 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Sep 23 23:41:12 2013 -0700"
      },
      "message": "Multiple printer discovery session instances and other bugs.\n\n1. The fused printers provider was dropping on the floor received printers\n    if it was not active. It is in fact a loaded and if not active it should compute\n    the printers and not deliver them until activated. This fixes an issue where\n    opening the print dialog, then enabling a print service results in the printers\n    reported by the service not showing up in the print dialog.\n\n2. Printer discovery session was created twice which leads to incorrect behavior\n    as the pint system is designed around the contract that there is a single\n    printer discovery session per service at a time. This was possible due to an\n    incorrect initialization of a member variable resulting in double session creation\n    when the print service is connected.\n\n3. When a print service is enabled during discovery we did not use the correct\n    condition to start printer discovery resulting in starting it all the time even if\n    not needed. Also if some of the printers that had to be tracked are reported\n    by the service just enabled (typically historical printers) we did not ask the\n    service to start tracking them.\n\n4. Removed some logging.\n\nbug:10903343\n\nChange-Id: I46c049471a4b099fc668df3aee2aaedc8d7786ac\n"
    },
    {
      "commit": "2d4eee38295e2cc65f280bf90580dccb5ef1d266",
      "tree": "8c9c0c45d39e4ef50a464491b4e101f6eb02a1b7",
      "parents": [
        "d38904965d03e9e9b902b78cadfb8b7a799855a9",
        "6d9ef38b0603133ee1a9c7bd63f1d971ae1d62ad"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 23 22:10:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 23 22:10:09 2013 +0000"
      },
      "message": "Merge \"Implement issue #10895990: Better durations for proc stats\" into klp-dev"
    },
    {
      "commit": "6d9ef38b0603133ee1a9c7bd63f1d971ae1d62ad",
      "tree": "876ad6ccc5ce2af733369d59b6e0dd42b460509a",
      "parents": [
        "4bf0fcef9296b53114e86490d79956986f8b93a6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 23 14:39:23 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 23 14:39:23 2013 -0700"
      },
      "message": "Implement issue #10895990: Better durations for proc stats\n\nReduce the batching down to 3 hours, so that we can show shorter\ndurations in the UI.\n\nChange-Id: I46af674b0024b828595ed3cdad2b47fe47d71ed8\n"
    },
    {
      "commit": "d3fbba15799cb69cd3b524a2d1fbf6d758f287a5",
      "tree": "0170732579f58a20d46a9bc6d8745df331e9e6b8",
      "parents": [
        "ba0abd0abdaf3eedd42927eb5b51b202f0f348eb",
        "fefefbb17542a48f76aaabac42b376967bbcd3ed"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Mon Sep 23 20:07:10 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 23 20:07:10 2013 +0000"
      },
      "message": "Merge \"Upload fsck logs to the dropbox when error found\" into klp-dev"
    },
    {
      "commit": "90007f7440d3bed04de01619da7506bed40ea171",
      "tree": "b0a2f983b41161582b19a649eea4ed901f880d70",
      "parents": [
        "4bf0fcef9296b53114e86490d79956986f8b93a6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 23 13:00:23 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 23 13:01:43 2013 -0700"
      },
      "message": "Fix issue #10876433: java.lang.IllegalStateException in...\n\n...ActivityManagerService.updateLruProcessInternalLocked on bluetooth\n\nDon\u0027t try to move process records associated with dead service\nconnections.\n\nTechnically we should probably be clearing the binding/service\u0027s\napp entry so we don\u0027t get into this case, but the least intrusive\nchange for now is this check.\n\nChange-Id: I6683e692eb5a8fa4f8ec1fa31bd63ec3d7f878ef\n"
    },
    {
      "commit": "4bf0fcef9296b53114e86490d79956986f8b93a6",
      "tree": "d7a470954fe0604d2def44f3412dada8018f98c1",
      "parents": [
        "e14d0c211fb669f88c284af85c942135e834e498",
        "38ba6e9ee3e634914153c2181f050a2bb250e484"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 23 18:10:27 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 23 18:10:28 2013 +0000"
      },
      "message": "Merge \"Work on issue #10759595: preferred tag doesn\u0027t prevent...\" into klp-dev"
    },
    {
      "commit": "38ba6e9ee3e634914153c2181f050a2bb250e484",
      "tree": "73cc0da10e005b30a673583fe71e0e247ce03f60",
      "parents": [
        "3ba21e979524367631de70dfc82075693d9c616d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 23 11:08:52 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 23 11:08:52 2013 -0700"
      },
      "message": "Work on issue #10759595: preferred tag doesn\u0027t prevent...\n\n...activity chooser from being shown\n\nAdd more useful output when intent filter debugging is enabled.\n\nChange-Id: I3722b03ed625046398e81233cf7fb6aa5ded5eca\n"
    },
    {
      "commit": "e14d0c211fb669f88c284af85c942135e834e498",
      "tree": "339a34252d15fc53cfd1aaea46b016137ad79299",
      "parents": [
        "662c326e5fc02fa11226de1267b7f60485f5638a",
        "10385a17cb31de6fdf495b50d17a0afbec83e98e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Sep 23 17:46:30 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 23 17:46:30 2013 +0000"
      },
      "message": "Merge \"Ensure that activities behind keyguard are paused.\" into klp-dev"
    },
    {
      "commit": "75256476c87cc8c4f7e5124c9b944c37b2f51d3d",
      "tree": "4da8831ebda80e2369583bbb1b572574de278f9b",
      "parents": [
        "a9f97a0a58066a29391629da85ed25a8e876dd40",
        "ed37b93af8d06243cbddec20eef2e89cd9b3677e"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Mon Sep 23 17:35:16 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 23 17:35:16 2013 +0000"
      },
      "message": "Merge \"fix deadlock caused by clearAllBackoffs in SSE\" into klp-dev"
    },
    {
      "commit": "a3abca90aea1b0b6ab0be56b3ec008b91dfc090f",
      "tree": "269e3b7cd728d0ecd5961ae1cf282629ba39b386",
      "parents": [
        "f9b70ab87e8f26b57ac3d8dc3b77052e747cb888",
        "9bb0ee9131b0fa8cf2720f200575ba2ede48a65c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 23 16:36:29 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 23 16:36:29 2013 +0000"
      },
      "message": "Merge \"Issue #10461551: KLP API Review: AppOpsManager\" into klp-dev"
    },
    {
      "commit": "9bb0ee9131b0fa8cf2720f200575ba2ede48a65c",
      "tree": "98e66b59f5a84b0916aa8518999fa2f1c2e66aea",
      "parents": [
        "3ba21e979524367631de70dfc82075693d9c616d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 22 12:31:38 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 23 09:35:21 2013 -0700"
      },
      "message": "Issue #10461551: KLP API Review: AppOpsManager\n\nChanged public constants from integers to strings.  Internally\neverything is still integers, since we want that more efficient\nrepresentation for most things.\n\nChanged the Callback interface to OnOpChangedListener.  We also\nhave a private versin that again takes an int, and tricks to\nmake both work.\n\nReworked the class documentation to be appropriate to the SDK\n(as much as it can be); most of the existing documentation is\nmoved to the private implementation.  Also added documentation\nof the MODE constants.\n\nChange-Id: I4f7e73cc99fe66beff9194e960e072e2aa9458f8\n"
    },
    {
      "commit": "10385a17cb31de6fdf495b50d17a0afbec83e98e",
      "tree": "6438a116831cde656df3f2b7bd1bfe62769f0fa0",
      "parents": [
        "dbfceb7ea0f2925fa2e9cce4a5eece0b72d9c093"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun Sep 22 21:08:32 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Sep 23 09:05:15 2013 -0700"
      },
      "message": "Ensure that activities behind keyguard are paused.\n\nTLDR: Having a resumed activity behind keyguard can cause the keyguard\nnot to be dismissed.\n\nSwiping the home button to launch Google Now causes an ASSIST intent\nto be launched. The ASSIST intent starts SearchActivity which then\nlaunches GEL. If an activity is resumed behind the keyguard when this\nhappens then that activity will be paused.\n\nBecause that activity is PAUSING, ActivityStackSupervisor\nstartActivityLocked() doesn\u0027t call dismissKeyguard() immediately.\nInstead dismissKeyguard will be called later when GEL switches from\nnot-visible to visible. However, if the paused activity happens to be\nGEL then there is never a not-visible to visible transition and\ndismissKeyguard never gets called.\n\nThis fix removes an unnecessary call to resumeTopActivitiesLocked\nwhich was causing activities behind the lockscreen to be resumed.\n\nThis fixes bug 10732489 except immediately after boot. Pausing the\ninitial activity if the lockscreen is visible after boot is deferred\nfor another CL.\n\nChange-Id: I323262596ae41bc5a2700bae5942f6a4fba80936\n"
    },
    {
      "commit": "2be00933163bb2bfa6b43cf2e1ddde7c284c7c4c",
      "tree": "d1fbe0235d14427cf269c405d15d8c32099dd77b",
      "parents": [
        "3ba21e979524367631de70dfc82075693d9c616d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 22 16:46:00 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 22 16:46:00 2013 -0700"
      },
      "message": "Debug issue #10876433 java.lang.IllegalStateException...\n\n...in ActivityManagerService.updateLruProcessInternalLocked on bluetooth\n\nAdd more debug output to help track down what is going on.\n\nAlso fix a little problem where, when a service ANRs, if you ask to\nwait and it still wasn\u0027t responding, the ANR dialog wouldn\u0027t be\nshown again.\n\nChange-Id: I5be2b1705a0a39ca2992624ae683945c5f38065d\n"
    },
    {
      "commit": "0983eadff23bfc3ab7812be455d4a66edc3dcc7b",
      "tree": "43deae857670f87fa4b678df261cc19e9a9f8652",
      "parents": [
        "ca833c389b3cc2f95f27fe7782d0bebb8b36d660",
        "13820af302ead6b6a17b5f1b3991fcf8af252f93"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Sun Sep 22 15:59:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 22 15:59:01 2013 +0000"
      },
      "message": "Merge \"Fix BatchScan request coalesing\" into klp-dev"
    },
    {
      "commit": "88b6e69bc7007964f9ae4f30faf1bb59d6a702bb",
      "tree": "966557aeaeae7d7a2e0bcfc5016838b8435d3ea9",
      "parents": [
        "bb6fd7ff8cec893999b26e39dc62f1b4b4b9a8ea",
        "2610b7cb2a197a3f3f8f7c3409b6962353684159"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 21 01:52:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 21 01:52:04 2013 +0000"
      },
      "message": "Merge \"Fix issue #10863270: procstats UI is showing all green\" into klp-dev"
    },
    {
      "commit": "2610b7cb2a197a3f3f8f7c3409b6962353684159",
      "tree": "a1a8c25269eb0c8e8952570692623048d8125949",
      "parents": [
        "560d2e463ed282badd1d069d60d98b59af3b880f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 20 18:45:43 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 20 18:51:03 2013 -0700"
      },
      "message": "Fix issue #10863270: procstats UI is showing all green\n\nGah I messed up when refactoring so it would always be told\nRAM is low.\n\nAlso slightly tune the low memory parameters to go into low\nmemory states a bit more aggressively.\n\nChange-Id: I5f970349760ad349d515a85c266ab21b387ee353\n"
    },
    {
      "commit": "bb6fd7ff8cec893999b26e39dc62f1b4b4b9a8ea",
      "tree": "daebd79f8038a8bc44bd5fcc53c6b8695a8c54fb",
      "parents": [
        "90d51b1abe64442927c7e6bdbafc99f41a55f393",
        "c30d92e2241ad329ceb67e216e1e5adfbfc84d99"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 21 01:25:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 21 01:25:18 2013 +0000"
      },
      "message": "Merge \"Shut.  Up.\" into klp-dev"
    },
    {
      "commit": "c30d92e2241ad329ceb67e216e1e5adfbfc84d99",
      "tree": "e3c0e56a287fd7b6b1ce507dc674170a23dd1910",
      "parents": [
        "560d2e463ed282badd1d069d60d98b59af3b880f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 20 18:19:00 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 20 18:19:00 2013 -0700"
      },
      "message": "Shut.  Up.\n\nChange-Id: Id047ab2308903a527bebf80bdacdb01ec51de051\n"
    },
    {
      "commit": "b39ce63d2807c9d5c68d3be052dee7e9da7ec3be",
      "tree": "d3efd28d821a6a7edabfa2e91af5fa5e896ca522",
      "parents": [
        "d8a84a8609951826135a2e41a1cdd6b7cf680e27",
        "d8f391b4e0e8d876ec7216d34f86a9b3e8bab7e5"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Sat Sep 21 01:15:47 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 21 01:15:47 2013 +0000"
      },
      "message": "Merge \"Offer to enable a print service after it is installed.\" into klp-dev"
    },
    {
      "commit": "fefefbb17542a48f76aaabac42b376967bbcd3ed",
      "tree": "01c18fe1cb2c2e0d17d2b8426439015d02952b5a",
      "parents": [
        "f429247867ac524cf63bc01499ac47a90ebcaca9"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Thu Sep 12 19:34:36 2013 -0700"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Fri Sep 20 17:48:15 2013 -0700"
      },
      "message": "Upload fsck logs to the dropbox when error found\n\nIf fsck made changes to the filesystem, then upload\nthe logs to the dropbox.  We can then get them into\nAndroid Problem Reports.\n\nBug: 10021342\n\nChange-Id: I202d2b2ba4060a2f379ca78f1b3f2c7a3f5796e0\n"
    },
    {
      "commit": "d8f391b4e0e8d876ec7216d34f86a9b3e8bab7e5",
      "tree": "cdee4f705fd859ef54c1c286b2896192287f50bb",
      "parents": [
        "5006eb75e6d42ac107734fa8134a726158d768d8"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Sep 20 16:25:52 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Sep 20 17:40:25 2013 -0700"
      },
      "message": "Offer to enable a print service after it is installed.\n\nThe user has to explicitly enable a print service from the settings UI\nbefore using it. Usually, users very rarely if at all interact with print\nservices, therefore all print service management task are performed from\nthe print settings. We also have to get user consent warning that the\nuser\u0027s data is about to be given to a third-party app. We now post a\nnotification allowing the user to go directly to the settings screen to\nturn the service on.\n\nbug:10447510\n\nChange-Id: Iea56c0825f0bf38328ad94912f0ea5576e9339b3\n"
    },
    {
      "commit": "47d620ac282870f1f7142bd86ab32d14ad9ee91f",
      "tree": "1f353813b1a1ad4fe49e0545b5b2d883483681aa",
      "parents": [
        "d473ebb7c4f212cb9f74fe748bb8b95d7d126417",
        "7f02eb2c84c0a39e6357aca10a4fda1dd090a8a6"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Fri Sep 20 23:18:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 23:18:15 2013 +0000"
      },
      "message": "Merge \"Ensure access to the map of geofence callbacks is synchronized in all cases Fix Java reference leak in the JNI layer\" into klp-dev"
    },
    {
      "commit": "dfed244876d6c0ddd8d8bd2b8f3b970cd0a1ab95",
      "tree": "94086b9ed732ee995d5fe8f0cbe8d2b5c521ddff",
      "parents": [
        "543de8746e1c238f81a863f687d258ad86f5ef95",
        "2d8b4e801332e02d6aad615b85cc9dd056ef805c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Sep 20 22:56:07 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 22:56:07 2013 +0000"
      },
      "message": "Merge \"Delegate mkdirs() to vold when lacking perms.\" into klp-dev"
    },
    {
      "commit": "13820af302ead6b6a17b5f1b3991fcf8af252f93",
      "tree": "77139f764e8cc8a878cf0b8f90ff02c577519013",
      "parents": [
        "c237c20441df671a4c596138976f15e40aa95cf3"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Sep 20 15:13:08 2013 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Sep 20 15:30:17 2013 -0700"
      },
      "message": "Fix BatchScan request coalesing\n\nbug:10407896\nChange-Id: Ic22c7d8b2a80d490d208570782a12e42d4690f5c\n"
    },
    {
      "commit": "7f02eb2c84c0a39e6357aca10a4fda1dd090a8a6",
      "tree": "117da7589aad6d06f3a537a964080b4cdb429d2c",
      "parents": [
        "fbd67258e13d919f83f66f4e8a948f86aa507c26"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Fri Sep 20 13:08:41 2013 -0700"
      },
      "committer": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Fri Sep 20 15:19:00 2013 -0700"
      },
      "message": "Ensure access to the map of geofence callbacks is synchronized in all cases\nFix Java reference leak in the JNI layer\n\nBug: 10624887\nChange-Id: I656973653d82c73a7ba2b51f22989ffed144c5df\n"
    },
    {
      "commit": "2d8b4e801332e02d6aad615b85cc9dd056ef805c",
      "tree": "8100d77b8cef8d1b11ed366006b1035706640400",
      "parents": [
        "6df7d4a574ffd85c82cad402552e3854df3a3f85"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 17 17:30:33 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Sep 20 14:34:02 2013 -0700"
      },
      "message": "Delegate mkdirs() to vold when lacking perms.\n\nApps without sdcard_r or sdcard_rw are still able to write to\ntheir package-specific directory, but someone needs to first make\nthat directory on their behalf.  This change will delegate the\nmkdirs() call through to vold when an app fails to create directly.\n\nMountService validates that the path belongs to the calling user, and\nthat it\u0027s actually on external storage, before passing to vold.\n\nUpdate Environment to make app-vs-vold paths clearer.\n\nBug: 10577808\nChange-Id: I43b4a77fd6d2b9af2a0d899790da8d9d89386776\n"
    },
    {
      "commit": "04476691424811f5029194410519f49f913b672d",
      "tree": "4990e16edf0b88d5cf30de44be3ae6018f9fcb01",
      "parents": [
        "27de674c698a82c0195ee1d60ab1d629a5201297",
        "8916aadd1e0a305b1b5115e7881f551cade0f146"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Sep 20 21:28:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 21:28:14 2013 +0000"
      },
      "message": "Merge \"Remove over-aggressive stack movement.\" into klp-dev"
    },
    {
      "commit": "8916aadd1e0a305b1b5115e7881f551cade0f146",
      "tree": "9ae1e9951ea768cbf5edfce67cfdc195bd69cf46",
      "parents": [
        "bd49a1dadfbd7803642066a5bdc74305a1b2340b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Sep 20 13:42:49 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Sep 20 13:42:49 2013 -0700"
      },
      "message": "Remove over-aggressive stack movement.\n\nMoving a task to the bottom was also moving its stack to the back.\nSince chrome always finishes by calling moveTaskToBack this put\nthe home stack in front of the application stack and would cause\nbizarre window layering effects.\n\nDefinitely fixes 10764463.\nMaybe fixes 10678010.\n\nChange-Id: Ic202ae4fad44b36a8444255764d2135fccd4743d\n"
    },
    {
      "commit": "ed37b93af8d06243cbddec20eef2e89cd9b3677e",
      "tree": "ffd0efa5868b5c5c0937bbd2b343ff222bf0cbe2",
      "parents": [
        "9210bc85545f31973c957b5179e6a82d05f473c6"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu Sep 12 14:30:09 2013 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Fri Sep 20 18:24:30 2013 +0000"
      },
      "message": "fix deadlock caused by clearAllBackoffs in SSE\n\nordering of locks in SyncStorageEngine#clearAllBackoffs()\nintroduced deadlocks.\nBug: 10751759\nBug: 10680330\nChange-Id: Ief118830b6b249de0e7618b6186b4181b4f12f82\n"
    },
    {
      "commit": "540784f903c8a9e808ef88d14fe5e1227bda4561",
      "tree": "2d95b229ff17eac918b95047ca4b98577ba56df4",
      "parents": [
        "562ce888af21fc18d1610545ff6373ee2ecbbb13",
        "82f4218c0d5dbc10404db8cf31f0284140d80175"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Sep 20 17:43:29 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 17:43:30 2013 +0000"
      },
      "message": "Merge \"Cleanup the shutdown of BatchedScans.\" into klp-dev"
    },
    {
      "commit": "82f4218c0d5dbc10404db8cf31f0284140d80175",
      "tree": "d325d36dac6fee99c31ac4819c3e086a73245eda",
      "parents": [
        "8f435baca8b5285a6b4658fc9563f5fcbbdafc6e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Sep 19 17:27:43 2013 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Sep 20 16:32:47 2013 +0000"
      },
      "message": "Cleanup the shutdown of BatchedScans.\n\nFixes binder-death as well as disambiguation when an app has multiple requests in.\n\nbug:10641931\nChange-Id: Ib701d531fa51e7e2a027848cfdfcad3b47056923\n"
    },
    {
      "commit": "3301f76b2317d2ee2d72e2cdd396e29be63fd414",
      "tree": "d4683437785d06255dfec7a6c9a736d8d7184137",
      "parents": [
        "af638c4f9daa74b4c8e0905f07e11290f6845abe",
        "9ac23d0952d1d33aff0dd55a8bc78b2f77c3f602"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Sep 20 02:16:10 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 02:16:10 2013 +0000"
      },
      "message": "Merge \"Don\u0027t back up apps in the \u0027stopped\u0027 state\" into klp-dev"
    },
    {
      "commit": "12946530cfba2024fa45c06b0060fe5c91252aab",
      "tree": "117d92389d4bbcdc7e310c67faa7f7e354ed6041",
      "parents": [
        "3372cb2654e002e953e15d1b8513f090e9b6997d",
        "f51b5588d795ae6add9f625482d7d3f3ab34fb94"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Sep 20 00:51:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 00:51:20 2013 +0000"
      },
      "message": "Merge \"Only show launcher for the bottom activity in a task\" into klp-dev"
    },
    {
      "commit": "f51b5588d795ae6add9f625482d7d3f3ab34fb94",
      "tree": "6a441f5713c1915782cfa458e52f999de6c14912",
      "parents": [
        "7b3990ec81fc218f655d44624758e15ce378968e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 19 17:19:51 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 19 17:19:51 2013 -0700"
      },
      "message": "Only show launcher for the bottom activity in a task\n\nWhen transitioning from activity-over-launcher to task-over-launcher\nensureActivitiesVisibleLocked() was too aggressive in showing the\nlauncher. If there were any non-fullscreen activities in a task that\nsits over the launcher then the launcher would be shown.\n\nThis fix adds a test to make sure the launcher will only be shown if\nthe bottommost activity in such a task is non-fullscreen.\n\nFixes bug 10840919.\n\nChange-Id: I5dcd63be3fa2865ae38cbb921332937dfa4b5d47\n"
    },
    {
      "commit": "9ac23d0952d1d33aff0dd55a8bc78b2f77c3f602",
      "tree": "45402b8eef52ab66a7286939c9d341cec9494a22",
      "parents": [
        "e8a9422495d6af9fc68cf4e838a4a5f19177034b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Sep 19 17:12:27 2013 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Sep 19 17:12:27 2013 -0700"
      },
      "message": "Don\u0027t back up apps in the \u0027stopped\u0027 state\n\nE.g. right after install from the Play Store, or after a force stop.\n\nBug 10845317\n\nChange-Id: I7764ce61caa77136ca2758657f111928f9740fc0\n"
    },
    {
      "commit": "812c4d737896fbf5dffa272f5d15863fb185d956",
      "tree": "9e842aaab9ab48659eb8843767ddd79ba4b1d847",
      "parents": [
        "57989c0e042c4f4e9362d875cf3df481243c0488",
        "6e65cb47dc21b2e68313e83c88a30992405f31eb"
      ],
      "author": {
        "name": "Ed Heyl",
        "email": "edheyl@google.com",
        "time": "Thu Sep 19 23:43:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 23:43:25 2013 +0000"
      },
      "message": "Merge \"fix typo\" into klp-dev"
    },
    {
      "commit": "6e65cb47dc21b2e68313e83c88a30992405f31eb",
      "tree": "6ac982576ea0c704f1d53141b37bd0f88f66cf22",
      "parents": [
        "a84ca8a3ca2525855e705c13666bc5da2eaf3260"
      ],
      "author": {
        "name": "Ed Heyl",
        "email": "edheyl@google.com",
        "time": "Thu Sep 19 16:25:57 2013 -0700"
      },
      "committer": {
        "name": "Ed Heyl",
        "email": "edheyl@google.com",
        "time": "Thu Sep 19 16:25:57 2013 -0700"
      },
      "message": "fix typo\n\nChange-Id: I97df15ea7d349e0224e1830d7327dde87e840a51\n"
    },
    {
      "commit": "722b15e00065bebfd711a34123a64b1c4a65d8f7",
      "tree": "7fedb0007565e0161622a8d593903993dbd0e099",
      "parents": [
        "a84ca8a3ca2525855e705c13666bc5da2eaf3260",
        "ce15e157a6cf56fc73961ccb8c5ab18b1bf70280"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Sep 19 22:42:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 22:42:50 2013 +0000"
      },
      "message": "Merge \"Fix a regression in pausing activity immediately on sleep\" into klp-dev"
    },
    {
      "commit": "70817c479aa05778733d9afc809c311e8030b000",
      "tree": "ab45fff43b032a69188391eeeb814760cf91b627",
      "parents": [
        "9fa4b7af7a853f31479a2b302d618cd3d832e2f2",
        "3bc8f78d7a3d23a67c06221cc41292d04a2fd439"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 19 21:44:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 21:44:20 2013 +0000"
      },
      "message": "Merge \"Implement issue #10691475: Kill cached processes if about to...\" into klp-dev"
    },
    {
      "commit": "3bc8f78d7a3d23a67c06221cc41292d04a2fd439",
      "tree": "a7bd1bbff0142bd59c6764530bda776ce1def12b",
      "parents": [
        "e8a9422495d6af9fc68cf4e838a4a5f19177034b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 19 13:34:35 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 19 14:35:53 2013 -0700"
      },
      "message": "Implement issue #10691475: Kill cached processes if about to...\n\n...be uncached and too large\n\nWhen the device is in a low RAM state, when we go to pull a cached\nprocess out to use for some background operation, we can now kill\nthe current process if we consider its size to be too large.\n\nNote that the current implementation for killing processes is to\njust use the same killUnneededProcessLocked() method that we already\nhave for other things like too many cached processes.  This is a\nlittle wrong here, though, because in this case we are at the\npoint where the caller is actually looking for a process to use.\nThis current code is not actually removing or cleaning up the\nprocess, so we still need to return the now killed ProcessRecord\nand let things fall out from there, which typically means the caller\ntrying to make an IPC on it and failing and falling into its \"oh\nno the process died unexpectedly\" path.  All code using this\n*should* be able to handle this correctly, anyway, since processes\nreally can be killed at any time.\n\nAt some point we may to make this implementation cleaner, where it\nactually tears down the process right in the call and returns a\nnull ProcessRecord.  That is very dangerous however (we\u0027d need to\ngo through all paths into this to make sure they are going to be\nokay with process state changing on them like that), and I\u0027m not\nsure it is really worthwhile.  This intention is that killing\nprocesses like this is unusual, due to processes being too large,\nand anyway as I wrote all of our incoming code paths must already\nbe able to handle the process being killed at this point and one\ncould argue this is just another way to excercise those code paths.\nReally, the main negative to this is that we will often have spam\nin the log with exceptions about processes dying unexpectedly.\nIf that is the only issue, we could just add some conditions to\nquiet that up at in this case.\n\nWe don\u0027t want to compute the size of the process each time we try\nto evaluate it here (it takes 10s or ms to do so), so there is now\na new field associated with the process to give us the last pss\nsize we computed for it while it was in the cached state.\n\nTo be able to have better cached pss data when we now need it, the\ntiming for computing process pss has been tuned to use a much\nshorter delay for the situations when the process has first switch\ninto a new state.  This may result in us having a fair amount more\npss data overall, which is good, as long as it doesn\u0027t cause us to\nbe computing pss excessively and burning cpu.\n\nProcstats now also has new state to keep track of the number of\ntimes each process has been killed by this new system, along with\nthe min, avg, max pss of all the times it has happened.  This has\nslightly changed the checkin format to include this additional data\nat the end of pkgkills/prockills lines.\n\nOther changes here:\n\n- Fixed a problem where GPU RAM was not being seen when dumping\n  the full RAM details of a process.  This was because in that\n  case the system would ask the process to compute its own MemInfo,\n  which it returned, but the process doesn\u0027t have permission to\n  access the files containing the GPU RAM data.  So now the system\n  always computes the MemInfo and hands it to the app.\n\n- Improved broadcast delays to not apply the delay if the next receiver\n  of the broadcast is going to run in the same process as the last\n  one.  A situation I was seeing was an application that had two\n  receivers, one of which started a service; we are better off letting\n  the second receiver run while the service is running.\n\n- Changed the alarm manager\u0027s TIME_TICK broadcast to be a foreground\n  broadcast.  This really should have been anyway (it is supposed to\n  go out even minute, on the minute, very accurately, for UI elements\n  to update), and is even more important now that we are doing more\n  things to delay background broadcasts.\n\n- Reworked how we maintain the LRU process list.  It is now divided\n  into the two parts, the top always containing the processes holding\n  activities.  This better matches the semantics we want (always try\n  to keep those around modulated by the LRU order we interleave with\n  other cached processes), and we now know whether a process is being\n  moved on the LRU list because of an activity operation so we can\n  only change the order of these activity processes when user operations\n  happen.  Further, this just makes that common code path a lot simpler\n  and gets rid of all the old complexity that doesn\u0027t make sense any\n  more.\n\nChange-Id: I04933ec3931b96db70b2b6ac109c071698e124eb\n"
    },
    {
      "commit": "ce15e157a6cf56fc73961ccb8c5ab18b1bf70280",
      "tree": "6a51d76496ef1c24806bf359c09eff732a922c46",
      "parents": [
        "7301bd96c43f1a3604e88612c1a4214d57f88000"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Sep 19 12:30:32 2013 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Sep 19 14:30:47 2013 -0700"
      },
      "message": "Fix a regression in pausing activity immediately on sleep\n\nAt some point during refactoring of ActivityStack, the code to pause the current\nactivity got deleted. Added back that line of code. Activity will now pause\nas soon as the screen is turned off, rather than after 5 seconds (sleep timeout).\n\nBug: 10632898\n\nChange-Id: If3cc8708d692d29a13dbd8cfd9edda8883b38c2e\n"
    },
    {
      "commit": "7908f19015632bd593965b7a3ac9c685ab23d85f",
      "tree": "5287401abe1222d6fb38578ec07d35f6d7b49521",
      "parents": [
        "fe4643bb55afeb993714c79b132b4b40164e26ac",
        "b3370cec719ccfe09c9fc83edc2dd2f833df3945"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 19 21:08:27 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 21:08:27 2013 +0000"
      },
      "message": "Merge \"Debug for b/10689184.\" into klp-dev"
    },
    {
      "commit": "e8a9422495d6af9fc68cf4e838a4a5f19177034b",
      "tree": "c334809c981083b477e1637a0af1308f93e396f7",
      "parents": [
        "9c5cc571e5abf97a816fea2b04cd1e711e83564c",
        "c0fd8052349976fe0e9422f702e30e5030a0adde"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 19 20:03:24 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 20:03:24 2013 +0000"
      },
      "message": "Merge \"Return tasks in correct order.\" into klp-dev"
    },
    {
      "commit": "b3370cec719ccfe09c9fc83edc2dd2f833df3945",
      "tree": "1a92d40cbbc7e14390d72cb9cfd435c60fce089c",
      "parents": [
        "7b3990ec81fc218f655d44624758e15ce378968e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 19 12:02:09 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 19 12:55:19 2013 -0700"
      },
      "message": "Debug for b/10689184.\n\nChange-Id: I67b7a4bd7fb902b0d0275af0665625593dc1af00\n"
    },
    {
      "commit": "9c5cc571e5abf97a816fea2b04cd1e711e83564c",
      "tree": "a36af5ddb616b76d58470b2cdde4f001bfab2d5e",
      "parents": [
        "0286f5e2786865e35781180c88e67a0f981e942d",
        "bd413f6c05d10ecd001b80c0f30fd031145da8ae"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Sep 19 19:46:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 19:46:20 2013 +0000"
      },
      "message": "Merge \"Support for \"not the home app you\u0027re looking for\" metadata\" into klp-dev"
    },
    {
      "commit": "bd413f6c05d10ecd001b80c0f30fd031145da8ae",
      "tree": "671ee365c56a1f20add4485c6928b21261472e0f",
      "parents": [
        "dc3335429acf184cf67d022de6fe286c3672663a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Sep 18 18:31:59 2013 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Sep 19 12:31:49 2013 -0700"
      },
      "message": "Support for \"not the home app you\u0027re looking for\" metadata\n\n* Make sure that pm.getHomeActivities() returns the activity metadata\n  as well, so that the caller can trace the reference\n\n* Add a public canonical name for that metadata key\n\nBug 10749961\n\nChange-Id: Ic4d0750d61001ffe5af180398f042afa30eea1ce\n"
    },
    {
      "commit": "7301bd96c43f1a3604e88612c1a4214d57f88000",
      "tree": "9bb57428cdcd67df9230606e6a5ee9a24c60c2e5",
      "parents": [
        "18b94817a452081f6756cd30be9414c496fa1ca7",
        "450a16b33f5d58370d181a7539aa113779efa247"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Sep 19 19:17:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 19:17:51 2013 +0000"
      },
      "message": "Merge \"Use a separate thread for services that do NTP lookup\" into klp-dev"
    },
    {
      "commit": "c0fd8052349976fe0e9422f702e30e5030a0adde",
      "tree": "222be70052007d39649c13ccb6b9a3406bf4a58e",
      "parents": [
        "7b3990ec81fc218f655d44624758e15ce378968e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 19 11:20:17 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 19 11:20:17 2013 -0700"
      },
      "message": "Return tasks in correct order.\n\nFixed ActivityManager.getRunningTasks().\n\nFixes bug 10705790.\n\nChange-Id: Ia3f66e592e08a87896a1ab59f980618ec5310dfe\n"
    },
    {
      "commit": "450a16b33f5d58370d181a7539aa113779efa247",
      "tree": "8d95468a611be7b9bf55b5eb4cb7aa8b2567577d",
      "parents": [
        "6df7d4a574ffd85c82cad402552e3854df3a3f85"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Sep 18 16:28:50 2013 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Sep 19 10:57:16 2013 -0700"
      },
      "message": "Use a separate thread for services that do NTP lookup\n\nSome services do periodic network time lookups and can wedge the other operations on\nBackgroundThread and IO Thread, causing Watchdog to kill the runtime. So best to put\nthose handlers on separate threads.\n\nGoing forward, should convert NTP lookups to be async with callbacks.\n\nBug: 10646480\nChange-Id: I8c7ba6052cb3539575712c2099a706b14ff60196\n"
    },
    {
      "commit": "81d1689ceb3252d2cfa3397cd6a5b3337a3a6a75",
      "tree": "0276d8e14460bb35c58768e83d14e791370c14e1",
      "parents": [
        "a2d65108dd32a0836fe08f0c72efdd5c727dad44",
        "ec9cf65b555160de503e1a033ec0daecd2367a21"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Sep 19 14:50:41 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 14:50:41 2013 +0000"
      },
      "message": "Merge \"Remove debug logging for b/106899184.\" into klp-dev"
    },
    {
      "commit": "ec9cf65b555160de503e1a033ec0daecd2367a21",
      "tree": "b890554cd08a835fcda449869b4f85b77c62f99b",
      "parents": [
        "7b3990ec81fc218f655d44624758e15ce378968e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Sep 18 17:04:45 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Sep 18 17:04:45 2013 -0700"
      },
      "message": "Remove debug logging for b/106899184.\n\nChange-Id: I1e5f959a6d674b4bf9609553f28e66ffee367f5c\n"
    },
    {
      "commit": "f429247867ac524cf63bc01499ac47a90ebcaca9",
      "tree": "0cc1e92e3bce3215c2e9bfc0cb12ec478726045f",
      "parents": [
        "ff65c6daab5268c28b3663cd02c1b3dfa6f1c90a",
        "de1af08dd3a073f007ae4b8a114352cae3775028"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Sep 19 00:00:22 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 00:00:22 2013 +0000"
      },
      "message": "Merge \"Fix keyguard/Keystore storage issue\" into klp-dev"
    },
    {
      "commit": "ff65c6daab5268c28b3663cd02c1b3dfa6f1c90a",
      "tree": "90e721bd8a510988badbdcb451401b3e7ee13530",
      "parents": [
        "e8c01ddbe748490463f7f516df9b1b4784228913",
        "bc018d89c27cdd93d1c0222a6e27965455974b9e"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Sep 18 23:51:06 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 18 23:51:07 2013 +0000"
      },
      "message": "Merge \"Fix PacManager to not unbind when no connection\" into klp-dev"
    },
    {
      "commit": "4ef2693a243b308fad775a8a1691963c51ac925e",
      "tree": "dd074341cc9df74dcb41547c36d412d82805ab2c",
      "parents": [
        "7b3990ec81fc218f655d44624758e15ce378968e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Sep 18 15:15:52 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Sep 18 15:48:28 2013 -0700"
      },
      "message": "Revert back to a single home app in mHomeProcess\n\nThe idea of multiple processes serving as home was unfeasible.\n\n- Revert \"Allow for more than one home app.\" commit\ne428a7f662f109a5f2015008e3161df23932483e.\n- Assign ActivityManagerService.mHomeProcess to the process of the\nroot activity of the home task.\n\nAddresses bug 10342471.\n\nChange-Id: Ifb494626107d24de1306e320a18206d5b176a7c0\n"
    },
    {
      "commit": "b9466db4a56564101a26865962dda87aaeab56ff",
      "tree": "7a36c64edcba8c55988f074f799826e4a497cef9",
      "parents": [
        "bd49a1dadfbd7803642066a5bdc74305a1b2340b",
        "6285a32f74890b761579b4f67afde1b08763fd0a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 18 20:34:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 18 20:34:11 2013 +0000"
      },
      "message": "Merge \"Finish issue #10779747: Calendar Storage crash observed...\" into klp-dev"
    },
    {
      "commit": "6285a32f74890b761579b4f67afde1b08763fd0a",
      "tree": "26cef8fd8b1dc2274e684483be89bd8f06cdf0ec",
      "parents": [
        "904aa38f1a420c42467a13b8d5108d1891350c97"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 18 12:09:47 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 18 12:09:47 2013 -0700"
      },
      "message": "Finish issue #10779747: Calendar Storage crash observed...\n\n...while setting up a new user from settings.\n\nWe can now delay broadcasts when there are enough background services\ncurrently starting (still set to 1 for svelte devices, 3 for normal\ndevices).\n\nAdd new intent flag to not allow receivers to abort broadcasts, which\nI use to fix an issue with the initial BOOT_COMPLETED broadcast not\nactually requesting pss data at the right time -- it can now be sent\nas an ordered broadcast without the ability for the receivers to cancel\nit.\n\nChange-Id: I51155bbbabe23e187003f3e2abd7b754e55d3c95\n"
    },
    {
      "commit": "ae7ecab400374f083718995454ec03e5e57b7203",
      "tree": "5c08efdc213ef42d3d78a518dcbf4f2103618884",
      "parents": [
        "b84624571ba2d0431dda8fd7cd45ae995630dd17"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Sep 18 11:48:14 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Sep 18 11:48:14 2013 -0700"
      },
      "message": "Move flag for home launching from activity to task.\n\nThe variable ActivityRecord.mLaunchHomeTaskNext was used to indicate\nthat the home task should be launched when the activity completed.\nThis only mattered when it was at the end of a task. As the activity\nlaunched other activities within the same task it needed to be\nmigrated from activity to activity and task to task. This became\ntoo complicated and was at the wrong level to begin with.\n\nBy moving the flag to TaskRecord.mOnTopOfHome the logic is simpler\nand the results more predictable.\n\nFixes bug 10602256.\n\nChange-Id: If0b752522b77be9918f1dba221d0ff670fc01af8\n"
    },
    {
      "commit": "bc018d89c27cdd93d1c0222a6e27965455974b9e",
      "tree": "2e88b6acc5745f4f9a993cb605ce6a455ee9743f",
      "parents": [
        "fd111c8f61b006e66a6670cbf4e1c579000ba3e3"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Sep 17 16:37:38 2013 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Sep 18 09:28:29 2013 -0400"
      },
      "message": "Fix PacManager to not unbind when no connection\n\nPacManager previously would unbind service even when there was no\nconnection.  This means that multiple set proxies of no PAC after a PAC was\npresent would cause the framework to crash.\n\nBug: 10801296\nChange-Id: I4387b50b6510cea3ee73425c8a0a837f816b0ce1\n"
    },
    {
      "commit": "222920c46044d4782df3cd5b3c6c7e6578659903",
      "tree": "036d2cd7b8214c5e03cf4f8880fc04e6036f9914",
      "parents": [
        "24873be6eee77a89599aa2af3db0f8f2f5466978",
        "53459a7020dbcd036e2d3418e35ebb96fadc29e3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 18 00:34:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 18 00:34:02 2013 +0000"
      },
      "message": "Merge \"Maybe fix issue #10797796: IllegalStateException in ProcessState...\" into klp-dev"
    },
    {
      "commit": "53459a7020dbcd036e2d3418e35ebb96fadc29e3",
      "tree": "5ca8066fe1a00993e63632187be0ce4160e049e4",
      "parents": [
        "463850e0c658b37bbe29b9e9dec6ff7565bb883f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 17 17:14:57 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 17 17:30:34 2013 -0700"
      },
      "message": "Maybe fix issue #10797796: IllegalStateException in ProcessState...\n\n...caused runtime restart\n\nThere were some situations where the package list could be set\nwith process stats when it shouldn\u0027t.  Not sure if this is causing\nthe problem, since there is no repro.\n\nAlso some improvements to debug output -- new commands to clear\nall stats, print full details of stats, and print a one-day\nsummary (which should match what the UI shows).\n\nChange-Id: I9581db4059d7bb094f79f2fe06c1ccff3e1a4e74\n"
    },
    {
      "commit": "019f8cb8a78c5584618655f5478d9a9f3dedc3f0",
      "tree": "d80fcc26996b03de2c1f73478f06c0b9efd7741f",
      "parents": [
        "e48569a87057e46a30d3dcbb2d788a4e4da7f21c",
        "dccb770b8486520503f47cf8dacc9b0c5f836d2b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 17 23:13:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 23:13:31 2013 +0000"
      },
      "message": "Merge \"Add bounds checks before accessing ArrayList.\" into klp-dev"
    },
    {
      "commit": "dccb770b8486520503f47cf8dacc9b0c5f836d2b",
      "tree": "9ce3c4caec184ed09fe6e511a9b20d47f4ca03ef",
      "parents": [
        "c06b1db22278f00ef55b2fff00bf9d905286d6e0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 17 15:53:34 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 17 15:53:34 2013 -0700"
      },
      "message": "Add bounds checks before accessing ArrayList.\n\nAdd a test for emptiness before accessing either mTaskHistory[0] or\nTaskRecord.mActivities[0]. This will keep us from hitting\nIndexOutOfBoundsException.\n\nFixes bug 10789624.\n\nChange-Id: If726df888a2c8b393788793b6220a6bffe2df883\n"
    },
    {
      "commit": "345d491b77d70942f7a4390645fae7748b418459",
      "tree": "4f9d0fc6d78d3c43f77cd4cc772bd1393de1fd41",
      "parents": [
        "bc65c1dbccfe936856e9a2c4066c1ec9115140e2",
        "f5d831915dd11e77cdcf5669228c55fe17a21c5e"
      ],
      "author": {
        "name": "David Braun",
        "email": "dabraun@google.com",
        "time": "Tue Sep 17 22:14:54 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 22:14:54 2013 +0000"
      },
      "message": "Merge \"Implement new method for handling SMS/MMS on the platform\" into klp-dev"
    },
    {
      "commit": "bc65c1dbccfe936856e9a2c4066c1ec9115140e2",
      "tree": "354e1e0c346e1bcc4670ac0ddfec65a4eafb74ac",
      "parents": [
        "a245a4f14ed9e477ce1c68b54bf14a745d7caf47",
        "22b9a5e0aa8e6364b08e707eec916016caab7c4a"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 17 22:13:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 22:13:10 2013 +0000"
      },
      "message": "Merge \"Do not assign InputMethod to non-input windows.\" into klp-dev"
    },
    {
      "commit": "22b9a5e0aa8e6364b08e707eec916016caab7c4a",
      "tree": "26c0d054dd71fb49a9c7d35e4095bad9c4c5cbc0",
      "parents": [
        "c06b1db22278f00ef55b2fff00bf9d905286d6e0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 17 14:50:56 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 17 14:50:56 2013 -0700"
      },
      "message": "Do not assign InputMethod to non-input windows.\n\nThe InputMethod window was being assigned to the bottommost\nwindow as a fall-through situation when no window could receive\ninput. This fix changes that so that if the bottommost window\ncannot receive IME input then the InputMethod will be unassigned.\n\nIn most ANRs associated with bug 10689184 mInputMethodTarget\nwas assigned to the Wallpaper window and the InputMethod was\nplaced directly above it. When the ANR occurred the window that\nwas awaiting focused was then always placed immediately above the\nInputMethod. This fix will keep that situation from happening.\n\nChange-Id: Ic247e8132a907f2712a9f8a89e43c099142ec851\n"
    },
    {
      "commit": "16efe96cbc570ebd2fe7e823080ba4174fbb3cbe",
      "tree": "1e050b262722b6100ab5f06be9d58526c20e7545",
      "parents": [
        "463850e0c658b37bbe29b9e9dec6ff7565bb883f",
        "7504d7b24a07fef05b3447d843f212796e22302f"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 17 20:21:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 20:21:40 2013 +0000"
      },
      "message": "Merge \"Fix parenthetical error.\" into klp-dev"
    },
    {
      "commit": "463850e0c658b37bbe29b9e9dec6ff7565bb883f",
      "tree": "79f00c49c4d5b14508a48c3bbbf1352228636809",
      "parents": [
        "80645121fbba6f038feb48026d935b31028463d7",
        "e56c2c3f059b24c968a3f28f701b6b6cf5883fd9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 17 18:08:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 18:08:00 2013 +0000"
      },
      "message": "Merge \"Fix issue #10795385: System process crash reinstalling GEL -\" into klp-dev"
    },
    {
      "commit": "e56c2c3f059b24c968a3f28f701b6b6cf5883fd9",
      "tree": "8231330cf374a48535a4403a9ddcfc7c86239f95",
      "parents": [
        "8a7a93e20d8755602938a56d4a88398baf2359e4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 17 10:56:49 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 17 11:03:10 2013 -0700"
      },
      "message": "Fix issue #10795385: System process crash reinstalling GEL -\n\nNPE at com.android.server.am.ProcessRecord.resetPackageList(ProcessRecord.java:596)\n\nTake care of some more cases now that baseProcessTracker can be null.\n\nChange-Id: I394c0b7802788118c3ad6bcac5dfdd23eeda8d58\n"
    },
    {
      "commit": "7504d7b24a07fef05b3447d843f212796e22302f",
      "tree": "1eca3fc761b928f097e790c79cfa489e38706cb6",
      "parents": [
        "c06b1db22278f00ef55b2fff00bf9d905286d6e0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 17 10:50:53 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 17 10:50:53 2013 -0700"
      },
      "message": "Fix parenthetical error.\n\nMis-grouping of \u0026\u0026 and || from CL ag/360551.\n\nFixes bug 10798273.\n\nChange-Id: Idbc77e03d09f7ad5fcf1a5de98c6c14f0c63a6e4\n"
    },
    {
      "commit": "fbd67258e13d919f83f66f4e8a948f86aa507c26",
      "tree": "1059f9bcc750f09de6c27e4b8b6a53c1f79c7be6",
      "parents": [
        "6df7d4a574ffd85c82cad402552e3854df3a3f85",
        "b1885b8588db015b74ef411e70277c0f8a448c87"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 17 17:39:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 17:39:08 2013 +0000"
      },
      "message": "Merge \"More debugging for b/106899184\" into klp-dev"
    },
    {
      "commit": "b1885b8588db015b74ef411e70277c0f8a448c87",
      "tree": "f0058dc246bea6206c6618ff02473b85f406fa69",
      "parents": [
        "c06b1db22278f00ef55b2fff00bf9d905286d6e0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Sep 16 22:50:50 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Sep 17 09:35:20 2013 -0700"
      },
      "message": "More debugging for b/106899184\n\nChange-Id: I729a2c5bae087713765d782daaa7309ee6cd5b5a\n"
    },
    {
      "commit": "33caca5cd56ff41142cea121fabf5e30bebfb39f",
      "tree": "a9c9eef3cb2c14c3ce957dea8ea0a70b3d0cc827",
      "parents": [
        "fd111c8f61b006e66a6670cbf4e1c579000ba3e3",
        "44a01b742c2ad2ebc6185425be887b4bc987c4d0"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Sep 17 15:56:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 15:56:14 2013 +0000"
      },
      "message": "Merge \"Add a feature to specify if device admins are supported on the device\" into klp-dev"
    },
    {
      "commit": "be0d9317e27b600eee7deb8f328358cdb38115c6",
      "tree": "5ae416aecaeb66ad969873c6fa1b31d3a4a1be07",
      "parents": [
        "a0d53c61886b683b0cc9dccdb5b6fe581356b920",
        "2fbd2a7f070f246ddafd9de94efa9a98861e9136"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Sep 17 02:28:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 02:28:34 2013 +0000"
      },
      "message": "Merge \"App UI freezes when printing. API clean up.\" into klp-dev"
    },
    {
      "commit": "a0d53c61886b683b0cc9dccdb5b6fe581356b920",
      "tree": "216621102065080c65a258ac420cf6f25032d29e",
      "parents": [
        "ca776158b7be48d8cba862fccf7b9709856ae61a",
        "0d97cd1f6a370b8e371d8b6d88d47e9aaf2bbe32"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 17 02:12:58 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 02:12:58 2013 +0000"
      },
      "message": "Merge \"Fix issue #10779747: Calendar Storage crash observed...\" into klp-dev"
    },
    {
      "commit": "ca776158b7be48d8cba862fccf7b9709856ae61a",
      "tree": "c3093655575557d78cfa8e47d81a7db7280b339d",
      "parents": [
        "4881116047f72f4406cb88cbb2f324c06f9a292f",
        "a8de43fd8ce074e6ed1e4abf24320d988e8106e8"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Sep 17 02:10:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 02:10:40 2013 +0000"
      },
      "message": "Merge \"Don\u0027t assume that transport unbind \u003d\u003d transport invalid\" into klp-dev"
    },
    {
      "commit": "0d97cd1f6a370b8e371d8b6d88d47e9aaf2bbe32",
      "tree": "fda351159413019d42c01c1a601ca7a8a72201b2",
      "parents": [
        "8a7a93e20d8755602938a56d4a88398baf2359e4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 16 19:02:52 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 16 19:02:52 2013 -0700"
      },
      "message": "Fix issue #10779747: Calendar Storage crash observed...\n\n...while setting up a new user from settings.\n\nThe delayed service start stuff was too aggressive -- it would\nallow a process to be killed between the an onReceive() that calls\nstartService() and that service being started.  This means that\napps that set up global state that they expect to remain set up\nduring that time could be lost.\n\nThis is the first part of a fix, which tightens up when we allow\nservices to be delayed.  Now we will immediately start the service\nas long as it currently as a process running that is not in the\ncached state.  (Previously we would delay if the process was in\nthe receiver state.)\n\nThis unfortunately means that our service start delay is much\nless effective.  To address that, there will be a follow-on change\nto tie broadcast delivery into this to see if we can delay the\nfinish of a broadcast as long as there are background services\nstarting in that process.\n\nChange-Id: I2bba2295d10699ee3479375bbe87114b2cbb0826\n"
    },
    {
      "commit": "a8de43fd8ce074e6ed1e4abf24320d988e8106e8",
      "tree": "d1d8f7c11e7e60d1d8826623f822718d1f426a1f",
      "parents": [
        "dc3335429acf184cf67d022de6fe286c3672663a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Sep 16 18:12:24 2013 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Sep 16 18:14:52 2013 -0700"
      },
      "message": "Don\u0027t assume that transport unbind \u003d\u003d transport invalid\n\nWe now expect that the transport service\u0027s host process will be\nOOM-killed sometimes, but will come back automatically because we\nstill hold the binding.  So, we no longer drop it as the\nexpected-to-be-current transport when that happens.\n\nBug 10728767\n\nChange-Id: I5e756e8942e7c4c3567632f10460ee31b9618d75\n"
    },
    {
      "commit": "2fbd2a7f070f246ddafd9de94efa9a98861e9136",
      "tree": "2a918b4226106a2350277ae8fa73a9e2ce79d697",
      "parents": [
        "3fb53d8238c0ccec275237cf4f4962f2a00eab7e"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Sep 16 17:53:51 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Sep 16 17:55:14 2013 -0700"
      },
      "message": "App UI freezes when printing. API clean up.\n\n1. The UI of a printing app was freezing a little when calling the print\n   method since the print manager service was waiting for it to bind to the\n   print spooler which generated the print job id (and the initial print\n   job info really). Now the print manager service is responsible for job\n   id generation and does not not wait for the print spooler to spin. Hence,\n   the app UI is not blocked at all. Note that the print manager initiates\n   the binding to the spooler and as soon as it completes the spooler shows\n   the print UI which is hosted in its process. It is not possible to show\n   the print UI before the system is bound to the spooler since during this\n   binding the system passes a callback to the spooler so the latter can\n   talk to the system.\n\n2. Changed the print job id to be an opaque class allowing us to vary the\n   way we generate print job ids in the future.\n\n3. The queued print job state was hidden but the print job returned by the\n   print method of the print manager is in that state. Now now hidden.\n\n4. We were incorrecly removing print job infos if they are completed or\n   cancelled. Doing that is problematic since the print job returned by\n   the print method allows the app to query for the job info after the\n   job has been say completed. Hence, an app can initiate printing and\n   get a print job whose state is \"created\" and hold onto it until after\n   the job is completed, now if the app asks for the print job info it\n   will get an info in \"created\" state even though the job is \"completed\"\n   since the spooler was not retaining the completed jobs. Now the spooler\n   removes the PDF files for the completed and cancelled print jobs but\n   keeps around the infos (also persisting them to disc) so it can answer\n   questions about them. On first boot or switch to a user we purge the\n   persisted print jobs in completed/cancelled state since they\n   are obsolete - no app can have a handle to them.\n\n5. Removed the print method that takes a file since we have a public\n   PrintDocumentAdapter implementation for printing files. Once can\n   instantiate a PrintFileDocumentAdapter and pass it to the print\n   method. This class also allows overriding of the finish method to\n   know when the data is spooled and deleted the file if desired, etc.\n\n6. Replaced the wrong code to slice a large list of parcelables to\n   use ParceledListSlice class.\n\nbug:10748093\n\nChange-Id: I1ebeeb47576e88fce550851cdd3e401fcede6e2b\n"
    },
    {
      "commit": "50ef0b62f076c509d5edaef5588080d685f063e8",
      "tree": "40e6dbdd59b596208710a0f7c497ca8874468ada",
      "parents": [
        "0a6a80f43de1b64b452aff2cbb6bdbfc9915c2a9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 16 17:40:27 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 16 17:40:27 2013 -0700"
      },
      "message": "Work on issue #10771346: runtime restart\n\nHaven\u0027t found the underlying cause, but this will give us more\ninformation when we get into the bad state.\n\nChange-Id: I9aebd3a025a7c0d931f43098461b64ee3c220746\n"
    },
    {
      "commit": "44a01b742c2ad2ebc6185425be887b4bc987c4d0",
      "tree": "997f71583c0c070399de993ded83d98b292f56d4",
      "parents": [
        "1656a346d9b69470cf8336a3059e9624797c7b7d"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Sep 16 10:44:57 2013 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Sep 16 17:24:06 2013 -0700"
      },
      "message": "Add a feature to specify if device admins are supported on the device\n\nBug: 9520957\n\nDevicePolicyManagerService will play dumb if the feature is not installed.\n\nContinue to keep track of failed password attempts for keyguard\u0027s use.\n\nChange-Id: I28d258dc09a8b4976b188da6f453d8daabcc4bdd\n"
    },
    {
      "commit": "de1af08dd3a073f007ae4b8a114352cae3775028",
      "tree": "3c61a4534410508835e4a102b281cc98aea58e78",
      "parents": [
        "50e5814c337f67c74d9e249cf6f67ac86dfc832d"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Sep 11 14:58:26 2013 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Sep 16 15:34:26 2013 -0700"
      },
      "message": "Fix keyguard/Keystore storage issue\n\nKeystore stored keys broke when keyguard was moved out of the system process\ndue to Keystore enforcing the calling app to be in the system process.\n\nThe fix moves the critical code into LockSettingsService, which continues\nto live in the system process.\n\nFixes bug 10201270\n\nChange-Id: I16e2de018e85b01265634dcfbefd7f06740dafa8\n"
    },
    {
      "commit": "61158244b42df547ecf8ca145d539c814b154a4a",
      "tree": "74e7899f03c95f642657a6ad3e59345b6b10e90c",
      "parents": [
        "deec7e481a403749ec3977c946192abbc5c5501e",
        "35f72be50b8a2d11bce591dcdac5dc3fa336dac0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 16 21:33:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 16 21:33:04 2013 +0000"
      },
      "message": "Merge \"Implement issue #10691359: Kill long-running processes\" into klp-dev"
    },
    {
      "commit": "deec7e481a403749ec3977c946192abbc5c5501e",
      "tree": "20a07264f85e8782cb7ba1f5f74f661fb9490890",
      "parents": [
        "326f4505e04b24f384e84da7efcefab256777a27",
        "7dd9fdfca096f914a090c9fde91e7a4d3407d08a"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Sep 16 21:21:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 16 21:21:11 2013 +0000"
      },
      "message": "Merge \"Put next task on top of stack if top is finishing.\" into klp-dev"
    },
    {
      "commit": "35f72be50b8a2d11bce591dcdac5dc3fa336dac0",
      "tree": "d6ababee2a2ac0c48a645e923c28e2d5d0842cbd",
      "parents": [
        "af672998af7fb0bba90f7d56504584a63ff189fa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 16 10:57:39 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 16 14:05:34 2013 -0700"
      },
      "message": "Implement issue #10691359: Kill long-running processes\n\nWe now have the activity manager kill long-running processes\nduring idle maintanence.\n\nThis involved adding some more information to the activity manager\nabout the current memory state, so that it could know if it really\nshould bother killing anything.  While doing this, I also improved\nhow we determine when memory is getting low by better ignoring cases\nwhere processes are going away for other reasons (such as now idle\nmaintenance).  We now won\u0027t raise our memory state if either a process\nis going away because we wanted it gone for another reason or the\ntotal number of processes is not decreasing.\n\nThe idle maintanence killing also uses new per-process information\nabout whether the process has ever gone into the cached state since\nthe last idle maintenance, and the initial pss and current pss size\nover its run time.\n\nChange-Id: Iceaa7ffb2ad2015c33a64133a72a272b56dbad53\n"
    },
    {
      "commit": "f5d831915dd11e77cdcf5669228c55fe17a21c5e",
      "tree": "882c3ae5e428d96f156b9476d1ef5b8952e831ce",
      "parents": [
        "6b2b845948f1f43c0e407744c9400d831a2e0e0c"
      ],
      "author": {
        "name": "David Braun",
        "email": "dabraun@google.com",
        "time": "Mon Sep 16 13:43:51 2013 -0700"
      },
      "committer": {
        "name": "David Braun",
        "email": "dabraun@google.com",
        "time": "Mon Sep 16 13:43:51 2013 -0700"
      },
      "message": "Implement new method for handling SMS/MMS on the platform\n\nMulti project change:\nThe changes in this project add the new (hidden) default sms application\nsetting to Settings.Secure and updates AppOps to support the concept\nof an op defaulting to something other than allowed. OP_WRITE_SMS is set\nto default to MODE_IGNORED.\n\nBug: 10449618\nChange-Id: I37619784ac70c27cf9fbcbfcac1b263398bc4e01\n"
    },
    {
      "commit": "af672998af7fb0bba90f7d56504584a63ff189fa",
      "tree": "6670cbd52b9e239ef5c590ee64ad94a42475defd",
      "parents": [
        "7354b834fc53a9d1885553aea58f632df16a5655",
        "8c461c6fc6e060cb868e1492cc833c19fdeea0c2"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Mon Sep 16 20:36:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 16 20:36:50 2013 +0000"
      },
      "message": "Merge \"Fix Settings app crash while enabling tethering\" into klp-dev"
    },
    {
      "commit": "8c461c6fc6e060cb868e1492cc833c19fdeea0c2",
      "tree": "822c119275fb733ec2ae88bde3485f891f1d27a2",
      "parents": [
        "b693ef60ef27538402d941702ab652a57f585158"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Mon Sep 16 12:43:00 2013 -0700"
      },
      "committer": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Mon Sep 16 13:24:04 2013 -0700"
      },
      "message": "Fix Settings app crash while enabling tethering\n\nWhile enabling Portable Wifi hotspot in Settings, a null WifiConfiguration\nis provided. This null config is on purpose and meanful, and it should bypass\nthe validation test to avoid the NullPointerException.\n\nBug: 10780414\n\nChange-Id: Ic507ecae463946c925b3d5fb5a1d185b37db410f\n"
    },
    {
      "commit": "7dd9fdfca096f914a090c9fde91e7a4d3407d08a",
      "tree": "35314763725cd4928bd8c142814795b5d28523ae",
      "parents": [
        "a751d97e8611d16a2929c538f634a4b4c7b2938a"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Sep 16 13:05:41 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Sep 16 13:05:41 2013 -0700"
      },
      "message": "Put next task on top of stack if top is finishing.\n\nIn the case where the top task is finishing and another task is\nlaunching make sure that the next task will be launched once the\ntop task actually completes pausing.\n\nIn the case of b/10550460 the top task, Dialtacts, was finishing\nbut had not yet completed pausing. It was configured to return to\nthe home screen (mLaunchHomeTaskNext true) but because its finishing\nflag was set all the tests we have thought that the InCallActivity\ntask was the top task. When it finally did complete the\nmLaunchHomeTaskNext flag caused the home activity to be started\ninstead of the InCallActivity.\n\nIf the InCallActivity task had been moved above the Dialtacts task\nat the time it was judged to be the top task the home activity\nwould not have been launched when Dialtacts completed. This fix\nmoves the judged top task over the finishing top task.\n\nFixes bug 10550460.\n\nChange-Id: I14052ad2282008679b560dd7fb16b216664ec24d\n"
    },
    {
      "commit": "ffec33272721e3cc28437c3770168c4b839f30d1",
      "tree": "d1cef21a5722683e198c3ebc3342e54d5c10ad8e",
      "parents": [
        "3a6b61ffcdf2c278f26f1530a5d41b825b33ca18"
      ],
      "author": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Mon Sep 16 12:41:12 2013 -0700"
      },
      "committer": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Mon Sep 16 12:41:12 2013 -0700"
      },
      "message": "Fix an NPE in WifiService\n\nThe check to validate incoming configurations is flagging a correct\nAPI usage as well - which doesn\u0027t provide any configuration to test.\nFixing code to accommodate this.\n\nBug: 10749041\n\nChange-Id: I972f0edbdfa14aaa3edb34e4c6784b436c288383\n"
    },
    {
      "commit": "06dc8484b4bf4028eed1e289b1d441eecaa22edf",
      "tree": "3efd95583105463374b96b6d58ae00ab47a5a8f0",
      "parents": [
        "dc3335429acf184cf67d022de6fe286c3672663a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Aug 23 14:01:19 2013 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Sun Sep 15 17:51:04 2013 -0700"
      },
      "message": "Fix handling of privileged permissions on update\n\nWhen a bundled app is upgraded, only reprocess ungranted \u0027system\u0027\npermissions if the bundled apk is privileged.\n\nAlso adds the \u0027privileged\u0027 flag to the dumpsys flag summary.\n\nBug 10503183\n\nChange-Id: Ic6560fc904e5970fc871a155c898744a6607f851\n"
    },
    {
      "commit": "dc3335429acf184cf67d022de6fe286c3672663a",
      "tree": "03e11ace903245bc26116ccf443d9de6de83781b",
      "parents": [
        "4244d66a122258adc86a8d757d3fe5f9588a59f8",
        "5845812780a29f4594dbdac12e65c4e063ddb4b0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun Sep 15 21:47:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 15 21:47:52 2013 +0000"
      },
      "message": "Merge \"Add debug logging for b/10689184.\" into klp-dev"
    },
    {
      "commit": "5845812780a29f4594dbdac12e65c4e063ddb4b0",
      "tree": "2c5f0eb26d724fbd1694054cce3d8d9ba125bfa7",
      "parents": [
        "fa0556943ee386e83d190f1de86d73d81e08cc8a"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sat Sep 14 14:59:50 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun Sep 15 14:18:54 2013 -0700"
      },
      "message": "Add debug logging for b/10689184.\n\nFocus is now on focus. Remove logging when fixed.\n\nChange-Id: Ic0cd2d6bd4e65dac9dd40f4745dd12fb84f687ce\n"
    },
    {
      "commit": "4244d66a122258adc86a8d757d3fe5f9588a59f8",
      "tree": "35266fb9918a7d5eac67e32088041cdb660d18a8",
      "parents": [
        "3386b07ef1efbe091ab14719e9f8b61fa419d839",
        "de4fa2dfe2e681c79e27d84604b9c48c68184aef"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Sep 15 18:46:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 15 18:46:02 2013 +0000"
      },
      "message": "Merge changes Id0a67846,I20b57d66 into klp-dev\n\n* changes:\n  Print system may get stuck bound to a print service\n  Spooler should not crash if print service config activities are not exported.\n"
    },
    {
      "commit": "de4fa2dfe2e681c79e27d84604b9c48c68184aef",
      "tree": "2fee047354b9a8b2a8f97d87404deeecbb7fca16",
      "parents": [
        "860f8a6b663ca96d30d17da09eca8caf065aae62"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sat Sep 14 01:02:04 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Sep 15 02:58:14 2013 -0700"
      },
      "message": "Print system may get stuck bound to a print service\n\n1. If a print service dies, is restarted and at the time of the\n   restart the service has neither print jobs nor a discovery\n   serssion it gets stuck into a bound state. Now it unbinds if\n   after binding and ensuring it is in the lifecycle state right\n   before the death there are no active print jobs and no discovery\n   session.\n\n   Also when a print service dies we fail all of its print jobs\n   but did not update the service that all of its print jobs are\n   handled, i.e. it has no active print jobs.\n\n2. Fixed a null pointer exception in UserState\n\nbug:10696723\n\nChange-Id: Id0a67846093fca5d4c1e10843eaf6aa90169d942\n"
    },
    {
      "commit": "78d0cf7958dfde7951ed1a2c0317e04d6b41f4f3",
      "tree": "3eab98a9e89b72721a583e17b7381bb657bbb6e6",
      "parents": [
        "f5aba5ad1e09829a13bd0ad4912e45ff3d773176",
        "127beffb059492e5e979767b5146cce247a3dee0"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Sat Sep 14 18:19:39 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 14 18:19:39 2013 +0000"
      },
      "message": "Merge \"Tighten condition for calling checkMobileProvisioning.\" into klp-dev"
    },
    {
      "commit": "f5aba5ad1e09829a13bd0ad4912e45ff3d773176",
      "tree": "3633494467fca00503e117ff5d06ad55ec986091",
      "parents": [
        "276e6c7a89ed91dbf3e4fe9f46d19e82656d8fd9",
        "0469f41010d8001dba5e09606bb631b1d3313021"
      ],
      "author": {
        "name": "Maggie Benthall",
        "email": "mbenthall@google.com",
        "time": "Sat Sep 14 18:00:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 14 18:00:13 2013 +0000"
      },
      "message": "Merge \"CA cert monitoring: add notifications and actions for dialog\" into klp-dev"
    },
    {
      "commit": "127beffb059492e5e979767b5146cce247a3dee0",
      "tree": "cf555381a874cfd7ec07a2750f5e67bd366f3694",
      "parents": [
        "c8db445e42f1b60b9af036cb0d793ee11ae4c9c6"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Sat Sep 14 09:04:53 2013 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Sat Sep 14 09:04:53 2013 -0700"
      },
      "message": "Tighten condition for calling checkMobileProvisioning.\n\nAdd the condition that the connected network needs to be TYPE_MOBILE.\nThis eliminates checking on connecting to secondary networks like\nFOTA, MMS, SUPL ...\n\nThis reduces unnecessary attempts to bring up multiple connections at\nthe same time. Especially in the light of the trouble we\u0027re having with HFA\non Sprint, where we don\u0027t want to connect to any other network until HFA\nhas completed.\n\nBug: 10758001\nChange-Id: Id294536b70304a51de4752bc1a4ffac734f10f1a\n"
    },
    {
      "commit": "860f8a6b663ca96d30d17da09eca8caf065aae62",
      "tree": "380a1f552c7584ac4a7c7bc0713c07473b696dfb",
      "parents": [
        "c8db445e42f1b60b9af036cb0d793ee11ae4c9c6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sat Sep 14 00:59:03 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sat Sep 14 01:00:55 2013 -0700"
      },
      "message": "Spooler should not crash if print service config activities are not exported.\n\n1. If a print service does not export its activities for settings and\n   adding printers the print spooler ignores them instead of crashing.\n   Also if the service is not enabled its activities are now ignored.\n\n2. Added a dedicated permission for a print service to optionally\n   protect its settings and add printer activities such that only the\n   system can bind to them.\n\n3. Fixed a crash in the print dialog if its content is detached\n   from the window and animators are running.\n\nbug:10680224\n\nChange-Id: I20b57d6622a15f9b2352ba78d04c44e67b316a15\n"
    },
    {
      "commit": "5f68f717019433ce4fa284386ba48bd1b571073a",
      "tree": "1af5ffdd996d4e55c12ef9d77f8419fd44057acb",
      "parents": [
        "50e5814c337f67c74d9e249cf6f67ac86dfc832d",
        "6ab2284c98c08df68ed1ca8f7ac9748387ba6cb2"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Sat Sep 14 01:02:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 14 01:02:40 2013 +0000"
      },
      "message": "Merge \"Strip names out of externally supplied WorkSources to WifiManager (b/10710007).\" into klp-dev"
    },
    {
      "commit": "6ab2284c98c08df68ed1ca8f7ac9748387ba6cb2",
      "tree": "6922d693c987c0a09126cc0e62ccec5ad89102f5",
      "parents": [
        "3157e73fb0ea392b8dd2a6bbf6b74d8dfa54cc52"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Fri Sep 13 17:11:53 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Fri Sep 13 17:34:40 2013 -0700"
      },
      "message": "Strip names out of externally supplied WorkSources to WifiManager (b/10710007).\n\nChange-Id: I69bd7ce9e942c2f9327415b2821d805e1b50a1a4\n"
    }
  ],
  "next": "0f8ec44b13487f5726cab77eb79cac016e090b25"
}
