)]}'
{
  "log": [
    {
      "commit": "a5d5d608ccd885d8328879dde782a8cc93b7cf4f",
      "tree": "fa07d3db774f101e8f55210c47bf7d1b8232e63b",
      "parents": [
        "33da458dd832996d8b0ae945d6ab2896faff4afa",
        "37a37f445cbcd64376af153dd79ea2a123d9405d"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Mon Aug 20 16:57:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 20 16:57:14 2012 -0700"
      },
      "message": "Merge \"add wireless charger support\" into jb-mr1-dev"
    },
    {
      "commit": "ca7a9ef0e52216e88d302feacf8edb766d813f5f",
      "tree": "b1ad13bc138245925d9c28b6f5537cd2b94d0dd9",
      "parents": [
        "3fee5c6bd8e13f8ef7e1ba1df3a8bf56ebb36221",
        "5f47ba4db739d0db6feb8ce899764dbf87855901"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 20 15:09:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 20 15:09:41 2012 -0700"
      },
      "message": "Merge \"Adjust auto-brightness time constants.\" into jb-mr1-dev"
    },
    {
      "commit": "3fee5c6bd8e13f8ef7e1ba1df3a8bf56ebb36221",
      "tree": "51fb57d4a63458ea99f3a03696712894e37aeda6",
      "parents": [
        "8756bd1d6b43e1724996897cf4593d5ea5b00213",
        "6307a150d374cec7b20f80a68800bbf69f495839"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 20 14:59:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 20 14:59:18 2012 -0700"
      },
      "message": "Merge \"Fix some proximity sensor bugs.\" into jb-mr1-dev"
    },
    {
      "commit": "7b7feee80331deed883602d5861074ca66293e9c",
      "tree": "e8201ecc9af6ee04b9132d4fc22a91db22856e2c",
      "parents": [
        "a811e0848dc28f73e31a3f84d8ceca3b1f504b52",
        "4e68bd420b6cfdbeadb5e69aa6448665b2da762b"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Mon Aug 20 14:48:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 20 14:48:11 2012 -0700"
      },
      "message": "Merge \"Add UsbDebuggingManager and UsbDebuggingActivity\" into jb-mr1-dev"
    },
    {
      "commit": "a811e0848dc28f73e31a3f84d8ceca3b1f504b52",
      "tree": "5c854667a4a7da5073bd819b35069402665bc276",
      "parents": [
        "672cfdc5b6194a416eae93f5ebe82cb624e2add6",
        "706e8ba26bf0de19ad5f736516dae40c4c88c2d7"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Mon Aug 20 14:24:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 20 14:24:49 2012 -0700"
      },
      "message": "Merge \"Pass URLs to package verifiers\" into jb-mr1-dev"
    },
    {
      "commit": "5f47ba4db739d0db6feb8ce899764dbf87855901",
      "tree": "3f772ae1d57fd67d60290038f098ecd6c1d36adf",
      "parents": [
        "6307a150d374cec7b20f80a68800bbf69f495839"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 20 14:02:12 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 20 14:02:12 2012 -0700"
      },
      "message": "Adjust auto-brightness time constants.\n\nSpecifically, dim a little more slowly.\n\nChange-Id: I10d66a83ddc3a63f8c93d740a0cb116e6c974d10\n"
    },
    {
      "commit": "4e68bd420b6cfdbeadb5e69aa6448665b2da762b",
      "tree": "4c76067723f8a24d5d1b9f366d939a949da97419",
      "parents": [
        "bf5740e75efd87ae0213486e78e029403804c6f0"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Wed Apr 25 18:06:00 2012 -0700"
      },
      "committer": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Mon Aug 20 13:44:34 2012 -0700"
      },
      "message": "Add UsbDebuggingManager and UsbDebuggingActivity\n\nThe UsbDebuggingManager listens to adbd requests and displays a dialog\nwhen the public key authentification fails, for the user to confirm if it\nwants to allow USB debugging from the attached host. If the user chooses\nto always allow USB debugging, the UsbDebuggingManager writes the public\nkey to adbd\u0027s config file so that the public key authenfication succeeds\nnext time.\n\nChange-Id: I115c828331d8e326c380844ee33915d5dff22260\n"
    },
    {
      "commit": "6307a150d374cec7b20f80a68800bbf69f495839",
      "tree": "b0aaa1b475518fdef8541c684925f524e882b449",
      "parents": [
        "bf5740e75efd87ae0213486e78e029403804c6f0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 20 13:24:23 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 20 13:25:08 2012 -0700"
      },
      "message": "Fix some proximity sensor bugs.\n\nForgot to clear waiting for proximity negative flag.\nWaiting for proximity negative also shouldn\u0027t turn the screen off\nif it is currently on.\n\nChange-Id: I9885b2f54b185beb961acda44176bc5f11a9f58b\n"
    },
    {
      "commit": "706e8ba26bf0de19ad5f736516dae40c4c88c2d7",
      "tree": "2c45b61e1420f9a7442de8517b1eca6802d507c0",
      "parents": [
        "99de2459e200e0c86d55d5eee7ea000fd030990f"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Mon Aug 20 13:20:14 2012 -0700"
      },
      "committer": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Mon Aug 20 13:20:14 2012 -0700"
      },
      "message": "Pass URLs to package verifiers\n\nThis change passes the originating URL and accompanied referrer to\npackage verifiers, when available.\n\nBug: 6544677\nChange-Id: I9ebc71bc13f549bd88267e444816151a99bda000\n"
    },
    {
      "commit": "d14e17627266ff8cf804d1f8241a0a4bde7a0ab4",
      "tree": "b022a42d0553f21fc5a1aa02a3b49b8db2058631",
      "parents": [
        "99de2459e200e0c86d55d5eee7ea000fd030990f"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Aug 20 11:15:39 2012 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Aug 20 12:28:51 2012 -0700"
      },
      "message": "Update TCP buffer size when switching network type\n\nImport of non-merging change 41612 from AOSP\n\nWhen PDP connects in GSM network, the TCP buffer window size is\nset to max 8760. If the phone swicthes to UMTS, the TCP buffer\nsize is not updated to UMTS, i.e. GPRS buffer size is still\nused with limited data transfer spead as a result.\nThis fix makes sure the TCP buffer size is updated when\nswitching network type.\n\nChange-Id: Ic44a557677ffe629e83ce1f522a9f058bee6e7b2\n"
    },
    {
      "commit": "2d78fa2d2558dc8c6d6400232c742da7936c6204",
      "tree": "4e1087358cf584548d0658f862e7c9009012c69d",
      "parents": [
        "ec42c3c35fd4c16e1823cfd0e5b589ed2d205aa7",
        "ff7735b0ee8c3347d0f3cb1866e454be0e9534e2"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Aug 20 10:47:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 20 10:47:41 2012 -0700"
      },
      "message": "am ff7735b0: am a3db5297: Merge \"ProviderMap: remove hashmap when entire user specific entries are removed\"\n\n* commit \u0027ff7735b0ee8c3347d0f3cb1866e454be0e9534e2\u0027:\n  ProviderMap: remove hashmap when entire user specific entries are removed\n"
    },
    {
      "commit": "ff7735b0ee8c3347d0f3cb1866e454be0e9534e2",
      "tree": "e571e445edf93de74fc0827cfc26e88b43264a68",
      "parents": [
        "c48ee60426a741d0a8e7df7df8af2a9ac24cee85",
        "a3db5297cda370ce41db99b6839cd9528c31ef7c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Aug 20 10:45:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 20 10:45:12 2012 -0700"
      },
      "message": "am a3db5297: Merge \"ProviderMap: remove hashmap when entire user specific entries are removed\"\n\n* commit \u0027a3db5297cda370ce41db99b6839cd9528c31ef7c\u0027:\n  ProviderMap: remove hashmap when entire user specific entries are removed\n"
    },
    {
      "commit": "ec42c3c35fd4c16e1823cfd0e5b589ed2d205aa7",
      "tree": "359fd81e27bb482d4616395915c3a4c047f69001",
      "parents": [
        "091d56cab8f6f6a3460fbb596f99b1a262948e96",
        "bea12bdc2e6d2b1158c1faa58a8197d5e971a817"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 20 10:30:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 20 10:30:00 2012 -0700"
      },
      "message": "Merge \"Ensure that mAllAppWinAnimators is not null.\" into jb-mr1-dev"
    },
    {
      "commit": "bea12bdc2e6d2b1158c1faa58a8197d5e971a817",
      "tree": "7002d8ebf67196290f4b5bbfbfa4c13dfab10c65",
      "parents": [
        "82d53ce283b7c275624d66e9bf20cfe2614af5c4"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 20 10:18:34 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Aug 20 10:23:18 2012 -0700"
      },
      "message": "Ensure that mAllAppWinAnimators is not null.\n\nThe method showAllWindowsLocked can be called from the layout\nside of the WindowManagerService. Previously the AppWindowAnimator\nmember mAllAppWinAnimators was created on the animation side. If\nshowAllWindowsLocked was called before the first animation of the\nactivity an NPE would occur. This fix creates mAllAppWinAnimators\nwhen the AppWindowAnimator is created and also updates it with\ncurrent values before calling showAllWindowsLocked.\n\nFixes bug 6917136.\n\nChange-Id: If3ace22022b65c6888bbb9d0575efe9a45d86475\n"
    },
    {
      "commit": "a3db5297cda370ce41db99b6839cd9528c31ef7c",
      "tree": "0d2f1d5736851dd3baf5d7a054989eac3100b36c",
      "parents": [
        "6626398a72ae592e3a9184c9b0868df0fc1f1724",
        "8809004bc5125d48a1bbfc292509514374cc4fce"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Aug 20 10:16:36 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 20 10:16:36 2012 -0700"
      },
      "message": "Merge \"ProviderMap: remove hashmap when entire user specific entries are removed\""
    },
    {
      "commit": "37a37f445cbcd64376af153dd79ea2a123d9405d",
      "tree": "7b2ae5f75d4c6bff056472da64752473e1d211f9",
      "parents": [
        "82d53ce283b7c275624d66e9bf20cfe2614af5c4"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Tue Aug 14 15:21:02 2012 -0700"
      },
      "committer": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Mon Aug 20 10:04:12 2012 -0700"
      },
      "message": "add wireless charger support\n\nbug: 6879638\n\n- add new enum value BATTERY_PLUGGED_WIRELESS\n- check for sys online file with contents \"Wireless\"\n\nChange-Id: I22dc3c40f50573c98643e7b5cbcb237d0216530d\n"
    },
    {
      "commit": "bf5740e75efd87ae0213486e78e029403804c6f0",
      "tree": "1eea736eec1c89dd4f8efd1bdebf881ad9aa46b4",
      "parents": [
        "98365d7663cbd82979a5700faf0050220b01084d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Aug 19 23:20:02 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Aug 19 23:20:02 2012 -0700"
      },
      "message": "Improve display manager debugging.\n\nChange-Id: Iae794fe99a7cf9809f64eafb216091126a2f7e39\n"
    },
    {
      "commit": "98365d7663cbd82979a5700faf0050220b01084d",
      "tree": "8a4ff3e0a8afd814ed29609b26aa1c6ade2367f6",
      "parents": [
        "848c2dc93b6795e171f3dd6f64ea0be65e2762ca"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Aug 19 20:30:52 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Aug 19 22:42:08 2012 -0700"
      },
      "message": "Refactor for multi-display support.\n\nSplit WindowManagerImpl into two parts, the WindowManager\ninterface implementation remains where it is but the global\ncommunications with the window manager are now handled by\nthe WindowManagerGlobal class.  This change greatly simplifies\nthe challenge of having separate WindowManager instances\nfor each Context.\n\nRemoved WindowManagerImpl.getDefault().  This represents the\nbulk of this change.  Most of the usages of this method were\neither to perform global functions (now handled by WindowManagerGlobal)\nor to obtain the default display (now handled by DisplayManager).\n\nExplicitly associate each new window with a display and make\nthe Display object available to the View hierarchy.\n\nAdd stubs for some new display manager API features.\n\nStart to split apart the concepts of display id and layer stack.\nsince they operate at different layers of abstraction.\nWhile it\u0027s true that each logical display uniquely corresponds to a\nsurface flinger layer stack, it is not necessarily the case that\nthey must use the same ids.  Added Display.getLayerStack()\nand started using it in places where it was relatively easy to do.\n\nChange-Id: I29ed909114dec86807c4d3a5059c3fa0358bea61\n"
    },
    {
      "commit": "848c2dc93b6795e171f3dd6f64ea0be65e2762ca",
      "tree": "a775562a70274c54b893cabf4e72b6228dc302ff",
      "parents": [
        "82d53ce283b7c275624d66e9bf20cfe2614af5c4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Aug 19 20:18:08 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Aug 19 21:21:37 2012 -0700"
      },
      "message": "Stub out display manager service implementation.\n\nReverting to the previous stub as the display adapter registration\nand the logical to physical mapping is not at all what we are going\nto need moving forward.\n\nFixed up the service initialization order so that the display manager\nservice has a context from the start.\n\nChange-Id: I717f2f1099c7a77180ef207c371ec8329258850a\n"
    },
    {
      "commit": "ce777171fce4911f383e838d9019d84520426456",
      "tree": "c1ee7c19877743f18c34b8731f1b2ef2456ba289",
      "parents": [
        "f337a89b4d6f6fd0a49b6edd7f895f06cb96d28b"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat Aug 18 22:13:07 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat Aug 18 22:13:07 2012 -0700"
      },
      "message": "Fixed static wallpaper for multi-user\n\nEarlier assumption that systemui was running in the system process\ndoes not hold true, so running static wallpaper in its own user\nsandbox.\n\nBug: 7008230\nChange-Id: I32a128e6bbd8efa7006286330e970bafcf37f05a\n"
    },
    {
      "commit": "fc6e0ca07e599de5229582efe29c4f78eabaa3b8",
      "tree": "4e400dc105a8f28a7bba9a09b4ead350e4b2733b",
      "parents": [
        "998ca2301c695c02966cc169ce2e407054dc7c5c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 17 17:07:14 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 17 17:07:14 2012 -0700"
      },
      "message": "Fix build part 2\n\nChange-Id: I3b4ed430f214468a22d3b3aaf3605e570cfd0ed1\n"
    },
    {
      "commit": "7fdaa3976d6082bd7e96329240bda478c08b751e",
      "tree": "d9b3d459a3d19883dbfba71c9bc70e447251a3c5",
      "parents": [
        "029675e5ad8737a8a097c17d216afb3f11f0b12c",
        "a3f133afe885f9e005dfc0584cb7b3b90f75f665"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 17 16:19:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 17 16:19:19 2012 -0700"
      },
      "message": "Merge \"Save preferred activity info with user id.\" into jb-mr1-dev"
    },
    {
      "commit": "029675e5ad8737a8a097c17d216afb3f11f0b12c",
      "tree": "1a0332de73ad4bd4737c137e80339d083a0626bb",
      "parents": [
        "2b7a0d00426218523629e4e8dd2e9197d445c09b",
        "7300dbeba06a85948d63e480da36258d78840b30"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 17 15:54:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 17 15:54:18 2012 -0700"
      },
      "message": "Merge \"Fix launching activity from a pending intent\" into jb-mr1-dev"
    },
    {
      "commit": "2b7a0d00426218523629e4e8dd2e9197d445c09b",
      "tree": "337da69dba57f48b5c6e96fb6c382f658cf765ad",
      "parents": [
        "4035f5a7c191a68bc9a5912ce44c43c82e9e5dbf"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 17 15:09:44 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 17 15:25:21 2012 -0700"
      },
      "message": "Fix addGeofence() and addProximityAlert().\n\nNeed to clear the callers identity before calling into geofence manager\nbecause it in turn calls fused location API\u0027s.\n\nChange-Id: I7993b0b8b2a947ff93c37a7c9d29ca0e7c95f9a8\n"
    },
    {
      "commit": "4035f5a7c191a68bc9a5912ce44c43c82e9e5dbf",
      "tree": "df96aa5f4a8a2d60d872a17024d89944ece40d60",
      "parents": [
        "81c304b99d920e8d66ac16332489d78ff7162e12"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 17 14:43:49 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 17 15:25:16 2012 -0700"
      },
      "message": "Port location blacklist code to MR1.\n\nI had to re-do this change for MR1 because LocationManagerService changed\nso much. Here is the original change description:\n\nAdd package-name-prefix blacklist for location updates.\n\nThe Settings.Secure value locationPackagePrefixBlacklist and\nlocationPackagePrefixWhitelist contains comma seperated package-name\nprefixes.\n\nLocation \u0026 geo-fence updates are silently dropped if the receiving\npackage name has a prefix on the blacklist. Status updates are\nnot affected. All other API\u0027s work as before.\n\nA content observer is used so run-time updates to the blacklist\napply immediately. There is both a blacklist and a whitelist.\nThe blacklist applies first, and then exemptions are allowed\nfrom the whitelist. In other words, if your package name prefix\nmatches both the black AND white list, then it is allowed.\n\nBug: 6986553\nChange-Id: I1e151e08bd7143e47db005bc3fe9795076398df7\n"
    },
    {
      "commit": "7300dbeba06a85948d63e480da36258d78840b30",
      "tree": "0b236adce2e1ed2679a56e098990ccf66e6eac29",
      "parents": [
        "81c304b99d920e8d66ac16332489d78ff7162e12"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 17 14:17:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 17 14:19:57 2012 -0700"
      },
      "message": "Fix launching activity from a pending intent\n\nThe creator of the pending intent is the user on which the activity\nshould be launched.\n\nChange-Id: I733326ed8a5784985ac93a84ce91de4dda17c730\n"
    },
    {
      "commit": "81c304b99d920e8d66ac16332489d78ff7162e12",
      "tree": "cc73962e5561ac1a15b7a51936996fd9f13b452d",
      "parents": [
        "5d683a013114f38f503e6f7194400f60f35bfa5a",
        "1ab36c1d83969bab7ef782af11fa1673993b76fa"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 17 13:58:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 17 13:58:17 2012 -0700"
      },
      "message": "Merge \"Send USER_SWITCHED with the correct permission\" into jb-mr1-dev"
    },
    {
      "commit": "1ab36c1d83969bab7ef782af11fa1673993b76fa",
      "tree": "f386b9e2c95fa5c9edabdf304ff706ee47d215df",
      "parents": [
        "9c38d6e52bb71671c6f034a10b6751a1569c9ee0"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 17 13:55:02 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 17 13:55:02 2012 -0700"
      },
      "message": "Send USER_SWITCHED with the correct permission\n\nForgot to change this from MANAGE_ACCOUNTS to MANAGE_USERS.\n\nChange-Id: Ib07d2ac84c19cef278a0e564676b6200e0f97dd1\n"
    },
    {
      "commit": "a3f133afe885f9e005dfc0584cb7b3b90f75f665",
      "tree": "3807ce789848ee176459f2acec9f2dfbad3d4b86",
      "parents": [
        "9c38d6e52bb71671c6f034a10b6751a1569c9ee0"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Aug 09 17:11:28 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 17 13:32:02 2012 -0700"
      },
      "message": "Save preferred activity info with user id.\n\nSo each user can have their own set of intent resolution preferences.\n\nResolverActivity now launches the activity on the correct user, and\npersists the preference for the correct user.\n\nBug: 6961905\nChange-Id: I6d3a8a9af89bc649277d4fc8d0f367ee123f8392\n"
    },
    {
      "commit": "c48ee60426a741d0a8e7df7df8af2a9ac24cee85",
      "tree": "fd356ea73785811dc8f5ae3901a5e9048169f979",
      "parents": [
        "21bf465764938c5f8c82dbf6061c89e138eb73ca",
        "6626398a72ae592e3a9184c9b0868df0fc1f1724"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Aug 17 13:28:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 17 13:28:25 2012 -0700"
      },
      "message": "am 6626398a: Merge \"Fix for updating TCP buffer size when switching network type\"\n\n* commit \u00276626398a72ae592e3a9184c9b0868df0fc1f1724\u0027:\n  Fix for updating TCP buffer size when switching network type\n"
    },
    {
      "commit": "d2ae85d41ec1651dd1bf4c33fe31833ba5c5cff5",
      "tree": "a13ab2da158404c627977d9316501332cd863dd8",
      "parents": [
        "aeca6898041437a7e2ba68c1421b9be90669154d",
        "832cb229cd748505c90f74ae8154fc3557d61a73"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Aug 17 13:03:15 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 17 13:03:15 2012 -0700"
      },
      "message": "Merge \"Adding a thumbnail scale down animation\" into jb-mr1-dev"
    },
    {
      "commit": "6626398a72ae592e3a9184c9b0868df0fc1f1724",
      "tree": "5ac713ac4766bf5c66c8d005d2d23a899ed255d4",
      "parents": [
        "a688af9c6707c9c2f07cc195b072b6c14be03b63",
        "1968256926a13e8d809256f652073b0532199fd1"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Aug 17 13:01:49 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 17 13:01:49 2012 -0700"
      },
      "message": "Merge \"Fix for updating TCP buffer size when switching network type\""
    },
    {
      "commit": "aeca6898041437a7e2ba68c1421b9be90669154d",
      "tree": "60fe7de113a79ffddfdaeaac1e3e72b95188e620",
      "parents": [
        "79af1dd54c16cde063152922b42c96d72ae9eca8",
        "f2033e473aea4bfd0152feee51129fc4748e6f79"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 17 11:57:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 17 11:57:52 2012 -0700"
      },
      "message": "Merge \"Fix regression from location changes: GPS battery tracking.\" into jb-mr1-dev"
    },
    {
      "commit": "f2033e473aea4bfd0152feee51129fc4748e6f79",
      "tree": "15fa6161d7889dc4c69dba4f04c8dc86a0f96012",
      "parents": [
        "2ff0c048446c47f9cb995def2a6d8cc5177533a2"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 17 11:55:10 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 17 11:56:39 2012 -0700"
      },
      "message": "Fix regression from location changes: GPS battery tracking.\n\nThe client UID list wasn\u0027t being saved, so we never removed\nclient UID\u0027s. As a result apps get blamed for GPS even when\nthey are no longer using it.\n\nBug: 7007314\nChange-Id: Idff3b7c8c0ee87b99c9bdd7bd20d8391d0b1ac0f\n"
    },
    {
      "commit": "79af1dd54c16cde063152922b42c96d72ae9eca8",
      "tree": "142abf0037d20841712e88d65febcbbd92dd5561",
      "parents": [
        "f1b995f9d049cb5c7225b3b17f09369237a83ca2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 16 16:42:52 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 17 10:36:08 2012 -0700"
      },
      "message": "Switch public APIs to use new UserHandle class for identifying users.\n\nGets rid of \"yet another integer\" confusion.\n\nChange-Id: Id07ea7307aea7c62f0087c6663a1f1c08e2e5dee\n"
    },
    {
      "commit": "2a00329c6d55c6cd9166e01963d7410e95d80d21",
      "tree": "a33ab8060e095dd7b9a79962f7c3bf506d6008b7",
      "parents": [
        "76b858e3794f652c4af2323504787aebbbb7e89a"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 14 18:25:45 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 17 09:06:10 2012 -0700"
      },
      "message": "UserHandle to UserSerialNo mapping\n\nUse AtomicFile for usermanager files.\n\nAdded a MANAGE_USERS permission that apps (signature permission) can use\nto create/query/modify/remove users.\n\nChange-Id: I5cf232232d0539e7508df8ec9b216e29c2351cd9\n"
    },
    {
      "commit": "1968256926a13e8d809256f652073b0532199fd1",
      "tree": "dd6c4dfb7e397d88f5eb332fab62a1a2a1aa754d",
      "parents": [
        "2c932143ffe865d49c741e466b425bdbabbd1f2f"
      ],
      "author": {
        "name": "Magnus Strandberg",
        "email": "magnus.strandberg@sonymobile.com",
        "time": "Fri Aug 17 11:36:55 2012 +0200"
      },
      "committer": {
        "name": "Zoran Jovanovic",
        "email": "zoran.jovanovic@sonymobile.com",
        "time": "Fri Aug 17 11:38:44 2012 +0200"
      },
      "message": "Fix for updating TCP buffer size when switching network type\n\nWhen PDP connects in GSM network, the TCP buffer window size is\nset to max 8760. If the phone swicthes to UMTS, the TCP buffer\nsize is not updated to UMTS, i.e. GPRS buffer size is still\nused with limited data transfer spead as a result.\nThis fix makes sure the TCP buffer size is updated when\nswitching network type.\n\nChange-Id: Iaa527c84f56cae108f4c7276bbed10552faaff6c\n"
    },
    {
      "commit": "1f3f128ad1744dfbe4108857f322a805b1dc5eb7",
      "tree": "69ddf22ac5711d9e47664e66723253deed4a0fc1",
      "parents": [
        "2ff0c048446c47f9cb995def2a6d8cc5177533a2",
        "4e31c4fffbc42b4c2b5dca6431cfeef9e078f5b4"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Aug 16 18:05:31 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 18:05:32 2012 -0700"
      },
      "message": "Merge \"Add javadoc for new location API\u0027s.\" into jb-mr1-dev"
    },
    {
      "commit": "4e31c4fffbc42b4c2b5dca6431cfeef9e078f5b4",
      "tree": "e1e5a1df577872de6f947623cdccfe50062cb521",
      "parents": [
        "74fa7eabda3d0c1a85e0b568e3fc4230ed4fe7a4"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Aug 13 19:35:39 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Aug 16 17:59:34 2012 -0700"
      },
      "message": "Add javadoc for new location API\u0027s.\n\nChange-Id: If15024ee88421c07ba3a174747774fc451fd002e\n"
    },
    {
      "commit": "9a994b5350731b8169a9b25463f57266ee2988fb",
      "tree": "670fdf9ade80e54995c73f7a80a023ff9836fa79",
      "parents": [
        "13c589b66c47aa4d988eecce9a12c39d580939c9",
        "050c87f87e2a48c7bc90f5b15fb6e4e37e667286"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 16 16:43:20 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 16 16:43:20 2012 -0700"
      },
      "message": "am 050c87f8: am a950daf5: Merge changes Ieb566a2a,I953057cd\n\n* commit \u0027050c87f87e2a48c7bc90f5b15fb6e4e37e667286\u0027:\n  Use Libcore\u0027s stat instead of FileUtils#getFileStatus\n  Use Libcore.os.stat instead of FileUtils\n"
    },
    {
      "commit": "050c87f87e2a48c7bc90f5b15fb6e4e37e667286",
      "tree": "814988aae175fa4081aa6d53a91161608cc3646f",
      "parents": [
        "b18bcf13fd47102a2527e599cde0b1d59ab7c51e",
        "a950daf5c14a0009c2c62e9c3e0e8d51eb0cf7d9"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 16 16:33:40 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 16 16:33:40 2012 -0700"
      },
      "message": "am a950daf5: Merge changes Ieb566a2a,I953057cd\n\n* commit \u0027a950daf5c14a0009c2c62e9c3e0e8d51eb0cf7d9\u0027:\n  Use Libcore\u0027s stat instead of FileUtils#getFileStatus\n  Use Libcore.os.stat instead of FileUtils\n"
    },
    {
      "commit": "13c589b66c47aa4d988eecce9a12c39d580939c9",
      "tree": "62da402e6e794134566c3635fdbe0c1a144ba998",
      "parents": [
        "cc48c144bb0c15e003d1b9469c87a2c132ea6308"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 16 16:20:54 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 16 16:26:54 2012 -0700"
      },
      "message": "Animate brightness with electron beam.\n\nAlso added an internal flag to control whether the electron beam\non animation is used.  It\u0027s on for now but we might want to\nturn if off if we can\u0027t get the HAL to provide the\nnecessary screen on synchronization on all devices.\n\nChange-Id: Iaa3cfa0fd61de10174e68351e4db890eff2d2918\n"
    },
    {
      "commit": "520ee7bcadafdc5768fa8fc8890199ebe29886da",
      "tree": "6ed0a3d41ecdeaa926bbe8bcc77c24dba2fdfa7d",
      "parents": [
        "3931f6b3ffd30b53b742bbb127ba8438bef44fa0",
        "a2e8365cc883de0d3e56e9f4af350ecfe1b8fc4c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Thu Aug 16 15:32:52 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 16 15:32:52 2012 -0700"
      },
      "message": "am a2e8365c: am 9b0da58e: Merge \"Introduce a restorecon JNI binding.\"\n\n* commit \u0027a2e8365cc883de0d3e56e9f4af350ecfe1b8fc4c\u0027:\n  Introduce a restorecon JNI binding.\n"
    },
    {
      "commit": "a2e8365cc883de0d3e56e9f4af350ecfe1b8fc4c",
      "tree": "402949d2d3cce35eceaf665ca547deb6a106d745",
      "parents": [
        "617ccc081f18f563aa953556c22ace10a1998f34",
        "9b0da58e3a30b760de37138cdd51d20f269c383e"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Thu Aug 16 15:29:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 16 15:29:41 2012 -0700"
      },
      "message": "am 9b0da58e: Merge \"Introduce a restorecon JNI binding.\"\n\n* commit \u00279b0da58e3a30b760de37138cdd51d20f269c383e\u0027:\n  Introduce a restorecon JNI binding.\n"
    },
    {
      "commit": "786cbcacd2efbd94476eb05a4d5b77211f20d434",
      "tree": "503b514a488b8e5cdb91e198fea752972eb06f25",
      "parents": [
        "d2fb6e99bda1ae607b5dfbb68905030f2133f8e8"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 16 11:10:58 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 16 15:27:55 2012 -0700"
      },
      "message": "Use Libcore.os.stat instead of FileUtils\n\nPackageManagerService just needed to know the owner for this file, so\njust use stat instead so we can remove the old JNI code.\n\nThis is the last user of FileUtils#getPermissions so just remove the\nFileUtils method as well.\n\nChange-Id: I953057cd6b9de4410f33b6f22e4bddff02fe2988\n"
    },
    {
      "commit": "60020e2fa3dd31280ccec91029113f88ee5338c8",
      "tree": "2c968e040ec8c341db043ef3c41239c3a707904d",
      "parents": [
        "242143904800e0fe145977cd8880974545a166a5",
        "74fa7eabda3d0c1a85e0b568e3fc4230ed4fe7a4"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Aug 16 15:23:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 15:23:11 2012 -0700"
      },
      "message": "Merge \"Improve coarse locations.\" into jb-mr1-dev"
    },
    {
      "commit": "74fa7eabda3d0c1a85e0b568e3fc4230ed4fe7a4",
      "tree": "aaf46ec024fa88f5172c39cfb46a0f8bf8c4a877",
      "parents": [
        "08ca1046fe4f1890f91241f8d082a024ef6cfd93"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Aug 13 19:36:38 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Aug 16 15:22:24 2012 -0700"
      },
      "message": "Improve coarse locations.\n\nFix a couple of bugs, and modify the behavior of the random offset.\n\nThe random offset now slowly changes over time, to mitigate against\napplications averaging out the offset over time while at a\ngrid boundary.\n\nChange-Id: Iecffff29145b8c2b30d1eca1662cf9d3e8cff756\n"
    },
    {
      "commit": "9b0da58e3a30b760de37138cdd51d20f269c383e",
      "tree": "a13dce4b8868e06d94996e0a895487fcf065e156",
      "parents": [
        "1090f7023abefc448a492e143f76f9e0925fd6ee",
        "554cb0c290406f5bba34908489db5382a69d0a9a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Thu Aug 16 14:38:30 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 16 14:38:30 2012 -0700"
      },
      "message": "Merge \"Introduce a restorecon JNI binding.\""
    },
    {
      "commit": "c584b65b2093396c9a0c9303dab6ff6cb81ac315",
      "tree": "1cb29ffba0fa43c4fcb9ebe6603c5891853a36f2",
      "parents": [
        "a579f7926af72597f1c11c5df0486253d5d2c435",
        "5b1ada2562c17921adf6a62ea62bcb445160983c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 16 14:32:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 14:32:39 2012 -0700"
      },
      "message": "Merge \"Multi-user external storage support.\" into jb-mr1-dev"
    },
    {
      "commit": "ee98610f1af9c12fcb89522cf1795470bec60938",
      "tree": "da0101f23364bf5e3d450e3c2a25114b169546be",
      "parents": [
        "c40771a90d348b59ce0ffb8654f2d0cde39d7384",
        "122415f5c813408fe2c7b81e33144f2beff9c3d5"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Aug 16 13:43:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 13:43:14 2012 -0700"
      },
      "message": "Merge \"Set the brightness to zero on screen-off\" into jb-mr1-dev"
    },
    {
      "commit": "122415f5c813408fe2c7b81e33144f2beff9c3d5",
      "tree": "c2a0d1efabdbc596140498093bbdcb6ca0e7e8d6",
      "parents": [
        "ca34bcf6746454c561b0c07ca5c6e42bd4a73e9e"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Aug 16 12:47:21 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Aug 16 12:48:28 2012 -0700"
      },
      "message": "Set the brightness to zero on screen-off\n\nFixes b/6996990\n\nIdeally, the HWC HAL should turn off the backlight when the display is turned\noff.  This patch enforces this at the PowerManager, which can guard against\nerrant HWC implementations.\n\nChange-Id: Ibb826a02871c983f8a68034d010e68abe9c5c1d5\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8",
      "tree": "893430514916fc74f4fd008dbcb457c2dd317989",
      "parents": [
        "ca34bcf6746454c561b0c07ca5c6e42bd4a73e9e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 16 10:48:27 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 16 12:46:38 2012 -0700"
      },
      "message": "Rename UserId to UserHandle.\n\nThis is the start of turning this into a formal public API.\n\nChange-Id: I5786d2c320f1de41a06ed5d0f65adb68967287a0\n"
    },
    {
      "commit": "7c964e78993ab1bc93c079e4f75b22ce1ebdec98",
      "tree": "223bd71373576e787509ffb07df12c5078d916d9",
      "parents": [
        "e663975055eb1dc0a0da5efffc3c92312b15498e",
        "1a30b55036c2279d72ba69cb1107ec5f6f40d5e9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 16 02:06:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 02:07:27 2012 -0700"
      },
      "message": "Merge changes I39804ee6,I6a5a7ea2 into jb-mr1-dev\n\n* changes:\n  Use spline interpolation for auto-brightness.\n  Add FloatMath.hypot.\n"
    },
    {
      "commit": "e663975055eb1dc0a0da5efffc3c92312b15498e",
      "tree": "b184d5bff25f7a8aecb765593576a5881adf3f74",
      "parents": [
        "228916713db16dd536a8f3d7256b5726a2eaeb2b",
        "06565b64de1953fc9534f789b2e8b8fd70758979"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 16 02:06:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 02:06:18 2012 -0700"
      },
      "message": "Merge \"Improve auto-brightness debounce.\" into jb-mr1-dev"
    },
    {
      "commit": "1a30b55036c2279d72ba69cb1107ec5f6f40d5e9",
      "tree": "32fd9c82689d3d41703da8eb01880fcbe2aa6f34",
      "parents": [
        "270e3381e7053c3b15aa8f508c9df9d98032cd62"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 16 01:31:11 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 16 01:45:10 2012 -0700"
      },
      "message": "Use spline interpolation for auto-brightness.\n\nStrictly speaking, this is a change in behavior for all products.\nInstead of using discrete zones, they will all now use spline\ninterpolation.  We could make this behavior configurable\nbut there seems to be little point to it.  The range of brightness\nvalues used will be more or less the same as before, it\u0027s just\nthat what used to be the brightness value for all levels within\na particular zone now becomes the brightness value for the\nhighest level in that zone and lower values are used for lower\nlevels within the zone.\n\nChange-Id: I39804ee630ba55f018e1e53c0576b28e7bd27931\n"
    },
    {
      "commit": "832cb229cd748505c90f74ae8154fc3557d61a73",
      "tree": "ff2c3b98b5bd2c91c195f39d320b14d56062a8f1",
      "parents": [
        "32e7bd9fe1343e365dc40c8d215b0d98df99a2de"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Apr 13 09:32:47 2012 -0700"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu Aug 16 00:14:03 2012 -0700"
      },
      "message": "Adding a thumbnail scale down animation\n\nRecents animation will temporarily look a bit\nwrong, but a subsequent change will fix this."
    },
    {
      "commit": "8809004bc5125d48a1bbfc292509514374cc4fce",
      "tree": "82f84e9650498c7b016e28044d31ea485abca69c",
      "parents": [
        "98853623bcb27155e9b030301a0cb2a987cfc612"
      ],
      "author": {
        "name": "Vairavan Srinivasan",
        "email": "vairav@codeaurora.org",
        "time": "Wed Aug 15 23:37:45 2012 -0700"
      },
      "committer": {
        "name": "Vairavan Srinivasan",
        "email": "vairav@codeaurora.org",
        "time": "Wed Aug 15 23:37:45 2012 -0700"
      },
      "message": "ProviderMap: remove hashmap when entire user specific entries are removed\n\nUser specific entries in  mProvidersByNamePerUser and mProvidersByClassPerUser\nisn\u0027t cleared when entire user specific providers are removed. Fix is to remove\nthe user specific hashmap in such cases.\n\nChange-Id: I6edf211ced873e59f3b89ffceb9eceec13ea8f3f\n"
    },
    {
      "commit": "06565b64de1953fc9534f789b2e8b8fd70758979",
      "tree": "646c45d5cf99b572573bb4ac8b4cc84fc98b7dc6",
      "parents": [
        "978f853d189c1857190b4a2e200c7a283e31ca14"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 15 21:10:32 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 15 21:10:32 2012 -0700"
      },
      "message": "Improve auto-brightness debounce.\n\nChange-Id: I045e2a14cb31ff987a22872733c442fc92ebadbf\n"
    },
    {
      "commit": "5b1ada2562c17921adf6a62ea62bcb445160983c",
      "tree": "de45aa88e185f4ce052df43acf486e77778adcfb",
      "parents": [
        "4d1988699b11a9409015ef38a825d0de841a1d0f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 14 18:47:09 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 15 19:45:53 2012 -0700"
      },
      "message": "Multi-user external storage support.\n\nEmulated external storage always has multi-user support using paths\nlike \"/data/media/\u003cuser_id\u003e\".  Creates and destroys these paths along\nwith user data.  Uses new ensure_dir() to create directories while\nalways ensuring permissions.\n\nAdd external storage mount mode to zygote, supporting both single-\nand multi-user devices.  For example, devices with physical SD cards\nare treated as single-user.  Begin migrating to mount mode instead\nof relying on sdcard_r GID to enforce READ_EXTERNAL_STORAGE.\n\nBug: 6925012\nChange-Id: I9b872ded992cd078e2c013567d59f9f0032ec02b\n"
    },
    {
      "commit": "a1a1a1d6caddc25c4e249e5b5030d6a3ed861dd9",
      "tree": "721b2ba84b83c2eaef5b7e2730409cb51f90c71c",
      "parents": [
        "6d00c724330702c6bfd2bba2b7b2501fa3ab62ff",
        "5a052a4d19556700a21286029f37e1cc37f217b1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 15 18:53:33 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 15 18:53:34 2012 -0700"
      },
      "message": "Merge \"Fix issue #6955586: No navigation bar in landscape on tablets\" into jb-mr1-dev"
    },
    {
      "commit": "5a052a4d19556700a21286029f37e1cc37f217b1",
      "tree": "eb5dcf941af6e8dfca094329340f56126ebc5611",
      "parents": [
        "abac0cd16105c60fdd6c5ce37116c972dc7431bb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 15 18:49:23 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 15 18:49:23 2012 -0700"
      },
      "message": "Fix issue #6955586: No navigation bar in landscape on tablets\n\nThe window manager was telling the activity manager to evaluate\nthe new configuration when first initializing the display, before\nactually setting mDisplay, so it failed creating that first config.\n\nChange-Id: I6e94fcf55b0587ccf15a5fd7ecbe2c9a0c201b96\n"
    },
    {
      "commit": "f6307820c88e694e102824225b9d8caa6de75a30",
      "tree": "6ce6183a3fe1ecc748312d7a101150028f456cdf",
      "parents": [
        "7ef6c20dbcdfaa9b74278546a45fb25950ff22a3"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue Aug 14 14:21:25 2012 -0700"
      },
      "committer": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Wed Aug 15 15:22:37 2012 -0700"
      },
      "message": "CTS test for WiFi watchdog - framework support.\n\nThe new WiFi watchdog requires kernel/driver to export some packet loss\ncounters. This CTS tests whether those counters are correctly exported.\n\nChange-Id: I41999676f8488e86f35f1f8214ce668f1a2b5638\n"
    },
    {
      "commit": "9630704ed3b265f008a8f64ec60a33cf9dcd3345",
      "tree": "0c905e55ac062b625bf7a9ced250f05213d7873f",
      "parents": [
        "ff7e6ef4f18ff94a9836492ff3ccd1ba7f6804f3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 27 15:51:34 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 15 03:06:24 2012 -0700"
      },
      "message": "Power manager rewrite.\n\nThe major goal of this rewrite is to make it easier to implement\npower management policies correctly.  According, the new\nimplementation primarily uses state-based rather than event-based\ntriggers for applying changes to the current power state.\n\nFor example, when an application requests that the proximity\nsensor be used to manage the screen state (by way of a wake lock),\nthe power manager makes note of the fact that the set of\nwake locks changed.  Then it executes a common update function\nthat recalculates the entire state, first looking at wake locks,\nthen considering user activity, and eventually determining whether\nthe screen should be turned on or off.  At this point it may\nmake a request to a component called the DisplayPowerController\nto asynchronously update the display\u0027s powe state.  Likewise,\nDisplayPowerController makes note of the updated power request\nand schedules its own update function to figure out what needs\nto be changed.\n\nThe big benefit of this approach is that it\u0027s easy to mutate\nmultiple properties of the power state simultaneously then\napply their joint effects together all at once.  Transitions\nbetween states are detected and resolved by the update in\na consistent manner.\n\nThe new power manager service has is implemented as a set of\nloosely coupled components.  For the most part, information\nonly flows one way through these components (by issuing a\nrequest to that component) although some components support\nsending a message back to indicate when the work has been\ncompleted.  For example, the DisplayPowerController posts\na callback runnable asynchronously to tell the PowerManagerService\nwhen the display is ready.  An important feature of this\napproach is that each component neatly encapsulates its\nstate and maintains its own invariants.  Moreover, we do\nnot need to worry about deadlocks or awkward mutual exclusion\nsemantics because most of the requests are asynchronous.\n\nThe benefits of this design are especially apparent in\nthe implementation of the screen on / off and brightness\ncontrol animations which are able to take advantage of\nframework features like properties, ObjectAnimator\nand Choreographer.\n\nThe screen on / off animation is now the responsibility\nof the power manager (instead of surface flinger).  This change\nmakes it much easier to ensure that the animation is properly\ncoordinated with other power state changes and eliminates\nthe cause of race conditions in the older implementation.\n\nThe because of the userActivity() function has been changed\nso that it never wakes the device from sleep.  This change\nremoves ambiguity around forcing or disabling user activity\nfor various purposes.  To wake the device, use wakeUp().\nTo put it to sleep, use goToSleep().  Simple.\n\nThe power manager service interface and API has been significantly\nsimplified and consolidated.  Also fixed some inconsistencies\nrelated to how the minimum and maximum screen brightness setting\nwas presented in brightness control widgets and enforced behind\nthe scenes.\n\nAt present the following features are implemented:\n\n- Wake locks.\n- User activity.\n- Wake up / go to sleep.\n- Power state broadcasts.\n- Battery stats and event log notifications.\n- Dreams.\n- Proximity screen off.\n- Animated screen on / off transitions.\n- Auto-dimming.\n- Auto-brightness control for the screen backlight with\n  different timeouts for ramping up versus ramping down.\n- Auto-on when plugged or unplugged.\n- Stay on when plugged.\n- Device administration maximum user activity timeout.\n- Application controlled brightness via window manager.\n\nThe following features are not yet implemented:\n\n- Reduced user activity timeout for the key guard.\n- Reduced user activity timeout for the phone application.\n- Coordinating screen on barriers with the window manager.\n- Preventing auto-rotation during power state changes.\n- Auto-brightness adjustment setting (feature was disabled\n  in previous version of the power manager service pending\n  an improved UI design so leaving it out for now).\n- Interpolated brightness control (a proposed new scheme\n  for more compactly specifying auto-brightness levels\n  in config.xml).\n- Button / keyboard backlight control.\n- Change window manager to associated WorkSource with\n  KEEP_SCREEN_ON_FLAG wake lock instead of talking\n  directly to the battery stats service.\n- Optionally support animating screen brightness when\n  turning on/off instead of playing electron beam animation\n  (config_animateScreenLights).\n\nChange-Id: I1d7a52e98f0449f76d70bf421f6a7f245957d1d7\n"
    },
    {
      "commit": "ff7e6ef4f18ff94a9836492ff3ccd1ba7f6804f3",
      "tree": "53bfb8f41e2fd99b0419e336fa36254f9df9f8f3",
      "parents": [
        "109025d778c12d78f8585920447320aaf0f1d2f8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 15 02:05:18 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 15 02:09:05 2012 -0700"
      },
      "message": "Apply ValueAnimator scale factor immediately in WM.\n\nNormally the ValueAnimator scale factor is applied the first\ntime a ViewRootImpl window session is created but that may\nbe too late for animators created by system services that\nstart early in the boot process.  So set the scale factor\nimmediately whenever the setting changes.\n\nAlso make ValueAnimator.getDurationScale() accessible (but @hide)\nfor custom animators that want to apply the same scale to\ntheir animations.\n\nChange-Id: I0f5a750ab5b014f63848445435d8dca86f2a7ada\n"
    },
    {
      "commit": "58de1427c313e0debf2a929931e8c4065d4d46c5",
      "tree": "9e9682873930c27344a86089f8ce468b38d2c969",
      "parents": [
        "caaeda955bd80df9d9ab310e7ab504865a2e32e9",
        "fffa86ba834d37684238c83c0dd081133324984d"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Tue Aug 14 00:37:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 14 00:37:01 2012 -0700"
      },
      "message": "Merge \"Implement enableNoAutoconnect()\" into jb-mr1-dev"
    },
    {
      "commit": "fffa86ba834d37684238c83c0dd081133324984d",
      "tree": "50e8de04a2b1294a29a3467871a231ff39901bec",
      "parents": [
        "06439fd29f9bbf7031f58f5b06aa6c022ac9897a"
      ],
      "author": {
        "name": "Ganesh Ganapathi Batta",
        "email": "ganeshg@broadcom.com",
        "time": "Wed Aug 08 15:35:49 2012 -0700"
      },
      "committer": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Tue Aug 14 00:18:07 2012 -0700"
      },
      "message": "Implement enableNoAutoconnect()\n\nAdding enableNoAutoconnect() API support in Bluetooth service\n to let BT enable in quiet mode\n\nChange-Id: I546f3ceb298082a9c9a698f406379470e3cc0d4f\n"
    },
    {
      "commit": "510cff946874b8408664c86f9935d6a38f770e82",
      "tree": "09052993b0264f2faa55a7bbaaa49969a9425c47",
      "parents": [
        "863b19bc8fcfa436011781b67a237fcce3cb703a",
        "f02354e208ec7b7e0dee68e12c0b5cde86a0f20a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Aug 13 20:45:04 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 20:45:04 2012 -0700"
      },
      "message": "am f02354e2: am 9064a483: Merge \"Added missing USB_DEVICE_ATTACHED broadcast to running Activity\"\n\n* commit \u0027f02354e208ec7b7e0dee68e12c0b5cde86a0f20a\u0027:\n  Added missing USB_DEVICE_ATTACHED broadcast to running Activity\n"
    },
    {
      "commit": "f02354e208ec7b7e0dee68e12c0b5cde86a0f20a",
      "tree": "457a7c9c5bb43510ae709f9ef87ce50d2f27a79e",
      "parents": [
        "55ed7e34b981e9725f664587c6ca1f43d78c3f6e",
        "9064a48365c131ef5f64b26ab33dd40a7d1246a7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Aug 13 20:42:42 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 20:42:42 2012 -0700"
      },
      "message": "am 9064a483: Merge \"Added missing USB_DEVICE_ATTACHED broadcast to running Activity\"\n\n* commit \u00279064a48365c131ef5f64b26ab33dd40a7d1246a7\u0027:\n  Added missing USB_DEVICE_ATTACHED broadcast to running Activity\n"
    },
    {
      "commit": "9064a48365c131ef5f64b26ab33dd40a7d1246a7",
      "tree": "0ca0f025a3b0e94703d5be84892367e69d1a123d",
      "parents": [
        "b17a583a3acc57db845993599e4de56e91d5e75a",
        "82991054575130b2f065d9ab8d6aee270cd07239"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Aug 13 19:59:38 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 13 19:59:38 2012 -0700"
      },
      "message": "Merge \"Added missing USB_DEVICE_ATTACHED broadcast to running Activity\""
    },
    {
      "commit": "bf7d222011bcb417a2d6ab0f086b25e1608445cb",
      "tree": "f92f75219ad3b12fb22ef6d507d9629daaf9ae9d",
      "parents": [
        "ae5ac108b03214e02781a92592f7913ada8ef2d4",
        "aac71ff465399251fa8e830407f2917b986988d9"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 13 17:58:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 13 17:58:40 2012 -0700"
      },
      "message": "Merge \"Don\u0027t back up / restore non-primary users\u0027 data\" into jb-mr1-dev"
    },
    {
      "commit": "aac71ff465399251fa8e830407f2917b986988d9",
      "tree": "12178251368dfef76d9d23ed8a493358e7ab514c",
      "parents": [
        "38cc2a5a3ad076fbbb0824a91f49730a4297549b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 13 17:36:14 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 13 17:36:14 2012 -0700"
      },
      "message": "Don\u0027t back up / restore non-primary users\u0027 data\n\nFor now only the device owner \"user\" gets cloud backups.  Also, only the\ndevice owner account has access to local backup/restore.\n\nBug 6956438\n\nChange-Id: I87d7ba5969e606c23f4214469f9bf2fd47a6c61b\n"
    },
    {
      "commit": "1866f68dfe35da46995e5f2321f33e8fee44bcf8",
      "tree": "4b26f014c9b0fdbc5f58628d15944367e06ad1d1",
      "parents": [
        "87c42b9978bde888c3fd2d94e9d52256e56c3187",
        "ee7621c0f5de6eca2cfb9fb2b6117fb61e13cc41"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 13 17:15:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 13 17:15:04 2012 -0700"
      },
      "message": "Merge \"Modify how the background process LRU list is handled.\" into jb-mr1-dev"
    },
    {
      "commit": "f88dd0b32ea2042eb2011170be465259a21d2563",
      "tree": "0be85df1f64f04e99783d109dbab35029b07f9b0",
      "parents": [
        "ee8655c6739cdfb35f192b05d8d4d84402e0d956"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 08 17:20:32 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 13 17:11:47 2012 -0700"
      },
      "message": "Small service cleanup.\n\nGet rid of duplication between find/retrieve service funcs; when\na service in a persistent process crashes, restart it immediately\nsince the persistent process is going to be immediately restarted\nanyway; when a new process is attaching, immediately restart any\nservices associated with it that are waiting to restart, since\nit is weird to not let them run if the process comes back for some\nother reason.\n\nChange-Id: Id087fe04ebf2b6a4bd00732796c8326364765ea7\n"
    },
    {
      "commit": "ee7621c0f5de6eca2cfb9fb2b6117fb61e13cc41",
      "tree": "78ea6a9d60816abd589ee523433a3564af81fd6f",
      "parents": [
        "ee8655c6739cdfb35f192b05d8d4d84402e0d956"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 13 16:42:18 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 13 17:09:19 2012 -0700"
      },
      "message": "Modify how the background process LRU list is handled.\n\nA long time ago, we had a concept of an \"empty\" process -- this was\na process that didn\u0027t have any interesting components in it, which\nwould be placed below everything else in the LRU list.\n\nEmpty processes didn\u0027t work out well, because you could get into\nbad situations where you have filled your LRU list with things that\nhave hidden activities, pushing empty processes to the bottom and\nbeing immediately killed as soon as they go into the list.  So this\nwas removed.\n\nThis change brings the concept back, but in a slightly different\nform, to address a more specific problem: for people who are switching\nbetween N different applications, we would like to try to keep those\nactivities available in RAM in a consistent manner.  Currently the\nprevious activities would be killed often quickly and suprisingly,\neven on devices with lots of RAM.  This is for two reasons:\n\n(1) As you sit in one application, other things going on in the\nbackground will go to the top of the LRU list, pushing down the\nprevious apps you have visited, even though you aren\u0027t aware at all\nof these other things executing.\n(2) There is a hard limit on the number of background processes\n(currently 16) after which they are killed regardless of the amount\nof available RAM.  This is desireable because if there is lots of\nRAM we can end up with tons and tons of processes sitting around,\nnot really serving any purpose, but using up resources.\n\nTo improve the situation, we have again a concept of \"empty\" processes\nbut now it means one with no activities.  Processes that aren\u0027t empty\nbut in the background list are called hidden.  We maintain these as\ntwo parallel lists, each getting half of the process limit: so with\na 16 process limit, you can have at most 8 empty and 8 hidden processes.\n\nThis allows us to consistently keep up to 8 recent applications around\nfor fast app switching; we will also keep around 8 other processes to\nmake it more efficient for background work to execute again if it needs\nto.\n\nChange-Id: Iee06e45efc20787da6a1e50020e5421c28204bd7\n"
    },
    {
      "commit": "7be1a3d67c32d73b20e30e85084f07c609617762",
      "tree": "6d11eee5bcd64ad3738aed954337f370468193f0",
      "parents": [
        "38cc2a5a3ad076fbbb0824a91f49730a4297549b"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Aug 13 16:45:12 2012 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Aug 13 16:45:12 2012 -0400"
      },
      "message": "Stop screensaver on incoming phone call.\n\nUse notification manager as an indicator of when to stop the screensaver\ndue to immediately-needed user interaction.\n\nAny notification with a fullScreenIntent will now exit the screensaver.\n\nBug: 6976796\nChange-Id: Id91cd4c32f3fad018b56f4dfe24b37110bab32d8\n"
    },
    {
      "commit": "38cc2a5a3ad076fbbb0824a91f49730a4297549b",
      "tree": "0442cdf8c2ca24a1259043e1defa2af4fc37406d",
      "parents": [
        "4d1988699b11a9409015ef38a825d0de841a1d0f",
        "3221bf27ff6b8eebf360ed2496ad5c56b95fd689"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 13 11:42:20 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 11:42:20 2012 -0700"
      },
      "message": "am 3221bf27: am 438a0efc: Do not eject internal ASECs when storage unmounted\n\n* commit \u00273221bf27ff6b8eebf360ed2496ad5c56b95fd689\u0027:\n  Do not eject internal ASECs when storage unmounted\n"
    },
    {
      "commit": "3221bf27ff6b8eebf360ed2496ad5c56b95fd689",
      "tree": "a288fa2b522adea646206c8a20854755c0a4313a",
      "parents": [
        "82c2ff554682d4d3e99adb8ad4de664bb8a5bce9",
        "438a0efcfbee5dc953e8e5bbdf4cb3dbe94b3f80"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 13 11:40:10 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 11:40:10 2012 -0700"
      },
      "message": "am 438a0efc: Do not eject internal ASECs when storage unmounted\n\n* commit \u0027438a0efcfbee5dc953e8e5bbdf4cb3dbe94b3f80\u0027:\n  Do not eject internal ASECs when storage unmounted\n"
    },
    {
      "commit": "438a0efcfbee5dc953e8e5bbdf4cb3dbe94b3f80",
      "tree": "d3490b8f71bf399772fd94cd87719625fd447b50",
      "parents": [
        "ea31b47a72a6fed1269e2ba3c29c438212322bf0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 09 13:36:16 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 13 10:51:09 2012 -0700"
      },
      "message": "Do not eject internal ASECs when storage unmounted\n\nIf the incoming request is to notify of storage unmounted, don\u0027t mess\nwith apps that are in internal ASECs.\n\nBug: 6948035\nChange-Id: I63ffb895c4d994ee03a5a9bd6bb23f69c88e2a87\n"
    },
    {
      "commit": "258848d2ae04f447ff1c18023fa76b139fcc0862",
      "tree": "8736421f4007d81206d0f0ea8b32a2013508976a",
      "parents": [
        "75f0fac91bd7fa67fa76cfdd4e163b9f35be0432"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 10 17:06:33 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat Aug 11 18:24:07 2012 -0700"
      },
      "message": "User Manager service to manage users and query user details\n\nMoved a bunch of methods from PackageManager to UserManager.\n\nFix launching of activities from recents to correct user.\n\nGuest creation APIs\n\nChange-Id: I0733405e6eb2829675665e225c759d6baa2b708f\n"
    },
    {
      "commit": "75f0fac91bd7fa67fa76cfdd4e163b9f35be0432",
      "tree": "6dc191c40d77915fff757b7770d16060f32f1f74",
      "parents": [
        "0e545e24f0818b0577d0e6284ba1b49356f84be7",
        "08ca1046fe4f1890f91241f8d082a024ef6cfd93"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 10 17:19:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 10 17:19:09 2012 -0700"
      },
      "message": "Merge \"Fix a couple of bugs from the location overhaul.\" into jb-mr1-dev"
    },
    {
      "commit": "08ca1046fe4f1890f91241f8d082a024ef6cfd93",
      "tree": "da4e378d5fb57beac9ab8bca3f28e0f6da335456",
      "parents": [
        "3914e4b7d12b014f73085cd6e34b6fd69ea26226"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 10 15:47:53 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 10 17:17:32 2012 -0700"
      },
      "message": "Fix a couple of bugs from the location overhaul.\n\nMarshall LocationRequest array correctly.\n\nObserve reportLocation from FusionEngine.\n\nActually deliver the setRequest message to fusion engine.\n\nChange-Id: Iff64596fdd42f9fb06e563591dda9fbe0241533a\n"
    },
    {
      "commit": "77b257967de44e031c313858a45fccdd6e89732f",
      "tree": "c55367092b00153f6e0a7e8079da5bdba8b90e91",
      "parents": [
        "6cc7a9276bdad8b230e35141204c949291350f0b",
        "0412423f06ec633203b96f68b51f0720c33a2473"
      ],
      "author": {
        "name": "Ashish Sharma",
        "email": "ashishsharma@google.com",
        "time": "Fri Aug 10 16:04:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 10 16:04:07 2012 -0700"
      },
      "message": "Merge \"Setup idletimer for network interface.\" into jb-mr1-dev"
    },
    {
      "commit": "0412423f06ec633203b96f68b51f0720c33a2473",
      "tree": "9098a9e777823d17100edc8da46e73e7bce4a2cf",
      "parents": [
        "c47f80f1ae96e3c8b6a750d68cc12dfbbca97254"
      ],
      "author": {
        "name": "Haoyu Bai",
        "email": "bhy@google.com",
        "time": "Thu Jun 28 15:26:19 2012 -0700"
      },
      "committer": {
        "name": "Haoyu Bai",
        "email": "bhy@google.com",
        "time": "Fri Aug 10 15:58:34 2012 -0700"
      },
      "message": "Setup idletimer for network interface.\n\nCherry-picked from commit f71ca8a5728e425de61ba794c9653dd0b04f16e3 in\nmaster. DO NOT MERGE\n\nChange-Id: I6101c7ae041b4cc1237ce7a9983753dbdfa301d3\n"
    },
    {
      "commit": "6fa9ad4afcd762aea519ff61811386c23d18ddb2",
      "tree": "5b027550205ada4b972f5cc3d8073819c07d9c75",
      "parents": [
        "c47f80f1ae96e3c8b6a750d68cc12dfbbca97254"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Jul 16 12:18:23 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Aug 10 14:57:09 2012 -0700"
      },
      "message": "Location overhaul, major commit.\n\nThemes: Fused Location, Geofencing, LocationRequest.\n\nAPI changes\no Fused location is always returned when asking for location by Criteria.\no Fused location is never returned as a LocationProvider object, nor returned\n  as a provider String. This wouldn\u0027t make sense because the current API\n  design assumes that LocationProvider\u0027s have fixed properties (accuracy, power\n  etc).\no The fused location engine will tune itself based on the criteria passed\n  by applications.\no Deprecate LocationProvider. Apps should use fused location (via Criteria\n  class), instead of enumerating through LocationProvider objects. It is\n  also over-engineered: designed for a world with a plethora of location\n  providers that never materialized.\no The Criteria class is also over-engineered, with many methods that aren\u0027t\n  currently used, but for now we won\u0027t deprecate them since they may have\n  value in the future. It is now used to tune the fused location engine.\no Deprecate getBestProvider() and getProvider().\no Add getLastKnownLocation(Criteria), so we can return last known\n  fused locations.\no Apps with only ACCESS_COARSE_LOCATION _can_ now use the GPS, but the location\n  they receive will be fudged to a 1km radius. They can also use NETWORK\n  and fused locatoins, which are fudged in the same way if necessary.\no Totally deprecate Criteria, in favor of LocationRequest.\n  Criteria was designed to map QOS to a location provider. What we\n  really need is to map QOS to _locations_.\n  The death knell was the conflicting ACCURACY_ constants on\n  Criteria, with values 1, 2, 3, 1, 2. Yes not a typo.\no Totally deprecate LocationProvider.\no Deprecate test/mock provider support. They require a named provider,\n  which is a concept we are moving away from. We do not yet have a\n  replacement, but I think its ok to deprecate since you also\n  need to have \u0027allow mock locations\u0027 checked in developer settings.\n  They will continue to work.\no Deprecate event codes associated with provider status. The fused\n  provider is _always_ available.\no Introduce Geofence data object to provide an easier path fowards\n  for polygons etc.\n\nImplementation changes\no Fused implementation: incoming (GPS and NLP) location fixes are given\n  a weight, that exponentially decays with respect to age and accuracy.\n  The half-life of age is ~60 seconds, and the half-life of accuracy is\n  ~20 meters. The fixes are weighted and combined to output a fused\n  location.\no Move Fused Location impl into\n  frameworks/base/packages/FusedLocation\no Refactor Fused Location behind the IProvider AIDL interface. This allow us\n  to distribute newer versions of Fused Location in a new APK, at run-time.\no Introduce ServiceWatcher.java, to refactor code used for run-time upgrades of\n  Fused Location, and the NLP.\no Fused Location is by default run in the system server (but can be moved to\n  any process or pacakge, even at run-time).\no Plumb the Criteria requirements through to the Fused Location provider via\n  ILocation.sendExtraCommand(). I re-used this interface to avoid modifying the\n  ILocation interface, which would have broken run-time upgradability of the\n  NLP.\no Switch the geofence manager to using fused location.\no Clean up \u0027adb shell dumpsys location\u0027 output.\no Introduce config_locationProviderPackageNames and\n  config_overlay_locationProviderPackageNames to configure the default\n  and overlay package names for Geocoder, NLP and FLP.\no Lots of misc cleanup.\no Improve location fudging. Apply random vector then quantize.\no Hide internal POJO\u0027s from clients of com.android.location.provider.jar\n  (NLP and FLP). Introduce wrappers ProviderRequestUnbundled and\n  ProviderPropertiesUnbundled.\no Introduce ProviderProperties to collapse all the provider accuracy/\n  bearing/altitude/power plumbing (that is deprecated anyway).\no DELETE lots of code: DummyLocationProvider,\no Rename the (internal) LocationProvider to LocationProviderBase.\no Plumb pid, uid and packageName throughout\n  LocationManagerService#Receiver to support future features.\n\nTODO: The FLP and Geofencer have a lot of room to be more intelligent\nTODO: Documentation\nTODO: test test test\n\nChange-Id: Iacefd2f176ed40ce1e23b090a164792aa8819c55\n"
    },
    {
      "commit": "14262d79c42072b01d8beccc3a0d688938da4214",
      "tree": "99be5cc1bdfd5aebae7c8f785db024a2b0c547f5",
      "parents": [
        "f6e802283cea8d682d05ee15fe0d500cff118533",
        "1715cb36d9231f08f244ec6c0a373f1a46d66cc7"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Thu Aug 09 18:46:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 09 18:46:10 2012 -0700"
      },
      "message": "Merge \"Control GPS logging with property\" into jb-mr1-dev"
    },
    {
      "commit": "1715cb36d9231f08f244ec6c0a373f1a46d66cc7",
      "tree": "a7f26aaa988919f6e6d965f7bc0f4d6c25feddf0",
      "parents": [
        "7c46e4380e6c50c30aad80807f87af25f000c7ff"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Wed Aug 08 17:32:21 2012 -0700"
      },
      "committer": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Thu Aug 09 17:14:13 2012 -0700"
      },
      "message": "Control GPS logging with property\n\nThis allows users of the PDK to debug GPS issues.\n\nChange-Id: I4aff12e124f4264abd1a0be012df4c431044189c\n"
    },
    {
      "commit": "c5bfe1962626ec73ce8dac67ab26bad96637e2f1",
      "tree": "ab22dccd39af329e51cb9cb37cca92528dc7046e",
      "parents": [
        "a7bbbabc15724e2aef0e6354d5dafa9e225e2ea9",
        "b9ba2b6768063b4a4135143bc5b6219fb9b3b22f"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Aug 09 15:43:24 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 09 15:43:25 2012 -0700"
      },
      "message": "Merge \"Fix screen timeout determination for starting dream.\" into jb-mr1-dev"
    },
    {
      "commit": "b9ba2b6768063b4a4135143bc5b6219fb9b3b22f",
      "tree": "1f24c618d2811e1b914c0d4914defbd952b9a5ab",
      "parents": [
        "7c46e4380e6c50c30aad80807f87af25f000c7ff"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Aug 09 14:47:49 2012 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Aug 09 14:47:49 2012 -0400"
      },
      "message": "Fix screen timeout determination for starting dream.\n\nIt turns out OFF_BECAUSE_OF_TIMEOUT is not the best indicator\nof actual screen timeout.\n\nFor example, it is the reason passed down when acquiring a wake lock.\nThis was causing us to launch Dreams in the wrong situations, and\ndeadlocking on calls to WindowManager.\n\nThis fix simply adds an additional check ensuring the intention is to\nturn the screen off.\n\nChange-Id: If8adff446b5b1fcb19424b45878b75bfd0552b90\n"
    },
    {
      "commit": "2c02933b13b426637808d3d4fd57aea1ff11011a",
      "tree": "5cb4d58306e46f3256d76af62a88d1e874857d49",
      "parents": [
        "1567a4341bf642e17432a079d3de3381c7a93340",
        "4860cfc68464ebdcc391324518772c79f047597f"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Aug 09 11:45:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 09 11:45:55 2012 -0700"
      },
      "message": "Merge \"Send BOOT_COMPLETED to all users.\" into jb-mr1-dev"
    },
    {
      "commit": "015b9f45d4cfa1e9764d7fbd6142ee612b2ea628",
      "tree": "0f0cb8bd2437675dface7b994af0fe11951f1a83",
      "parents": [
        "a1300467332e3189e1b7c02af03fd66aac8e79e9"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 09 00:05:36 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 09 11:11:33 2012 -0400"
      },
      "message": "Fix the dock-insertion Dream entry codepath.\n\nBug: 6956040\nChange-Id: I663e13f8a28db13b94d0f5aa4dbcf0cd64ef22fe\n"
    },
    {
      "commit": "4860cfc68464ebdcc391324518772c79f047597f",
      "tree": "fb4ba6771bb384eb6af51fc7d365730f653e3078",
      "parents": [
        "a56d9cecee8a34e0554770ac6253dd3a76b9199c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Aug 08 19:14:18 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Aug 08 19:15:58 2012 -0700"
      },
      "message": "Send BOOT_COMPLETED to all users.\n\nAt least until we have a concept of logged-in users.\n\nChange-Id: I65e3bed2aeef9692dbc64169cf02a7451cfed1cd\n"
    },
    {
      "commit": "8264408f5995534f8e3147b001664ea0df52aaa5",
      "tree": "e6e963d2ec701047872bf641b28888a93c7b866a",
      "parents": [
        "fb11ffa2a04f0a6b1291cd7ffc68032fcc322312"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 03 13:09:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 08 16:52:53 2012 -0700"
      },
      "message": "Start the correct settings from the status bar.\n\nAdded a new method to Context: startActivityAsUser() requiring the\nINTERACT_ACROSS_USERS_FULL permission.\n\nShow the correct Recents list, based on current user.\nAdded a getRecentTasksForUser() in ActivityManager. Hidden and requires\nthe INTERACT_ACROSS_USERS_FULL permission.\n\nChange-Id: If5b56465efdd3ead36601a3b51ed4af157bbf35c\n"
    },
    {
      "commit": "fb11ffa2a04f0a6b1291cd7ffc68032fcc322312",
      "tree": "ba8010132fbf760c285ab7d2465f670fd5f69260",
      "parents": [
        "82f479d0647855148af84fe2ba5484cb188c92cc",
        "fb878b66b9456f8fee2bcb1076263852d207949d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 08 16:25:40 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 08 16:25:41 2012 -0700"
      },
      "message": "Merge \"Isolate NetworkStateTracker creation, test.\" into jb-mr1-dev"
    },
    {
      "commit": "fb878b66b9456f8fee2bcb1076263852d207949d",
      "tree": "2f2d3f1de5c8de8e04c4a84d5c443471837adf58",
      "parents": [
        "088f29f55eebc6862a4cb5dddeaefacf24f74d95"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jul 26 18:32:30 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 08 16:23:41 2012 -0700"
      },
      "message": "Isolate NetworkStateTracker creation, test.\n\nChange ConnectivityService to use a factory when creating\nNetworkStateTrackers, which gives us a good place to inject mocks\nfor testing.  Add initial tests to verify that network routes are\nadded and removed as networks changed.\n\nChange-Id: I11cbc61a84c2ed4afa2670036295b1494eab26e1\n"
    },
    {
      "commit": "82f479d0647855148af84fe2ba5484cb188c92cc",
      "tree": "db1d276b5151af550ab97b4fe9d2f95bdaf42c9a",
      "parents": [
        "f3c16a12aa0408a69ff358843d020f9ff6b883f1",
        "088f29f55eebc6862a4cb5dddeaefacf24f74d95"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 08 16:22:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 08 16:22:23 2012 -0700"
      },
      "message": "Merge \"Cleaner controls between Vpn and init services.\" into jb-mr1-dev"
    },
    {
      "commit": "a56d9cecee8a34e0554770ac6253dd3a76b9199c",
      "tree": "3e617e7c34c9dafec25b373af7cd392154881b19",
      "parents": [
        "f007bd3cf8cacd75287781c1bb37fe4167c79cba",
        "e1d7c711df3e3a2d2f195457882aa4ddb5626167"
      ],
      "author": {
        "name": "Rich Cannings",
        "email": "richc@google.com",
        "time": "Wed Aug 08 13:50:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 08 13:50:56 2012 -0700"
      },
      "message": "Merge \"Revert \"Pass URLs to package verifiers\"\" into jb-mr1-dev"
    },
    {
      "commit": "5017f2328407447002ab2d0cae1fe8ef87c50501",
      "tree": "3e47a10c7c51935be5e134af19649d0b6c79985d",
      "parents": [
        "86d09388ee1b98513de40dfff5de6e7c3b24cc07"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Fri Jul 27 15:44:39 2012 -0700"
      },
      "committer": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Wed Aug 08 13:15:00 2012 -0700"
      },
      "message": "Call systemReady on the lock settings before doing so on the window manager\n\nAt systemReady time, the window manager needs to obtain values from the lock\nsettings service (e.g. whether the lock screen is disabled).  During the\ninitial boot of a wiped device, the window manager was getting the wrong\nvalues because LockSettingsService.systemReady/migrateOldData had not yet been\ncalled.\n\nChange-Id: I60825d0e4fad53a5b4349dabf9e5e299b863d0d0\n\n(cherry pick of 2458abaf6676d5015af733c1010ecd67a085e9e2 from jb-aah-dev)\n"
    },
    {
      "commit": "e1d7c711df3e3a2d2f195457882aa4ddb5626167",
      "tree": "d27b6e508c1bdbd29028034471ee46acfe5d6cf8",
      "parents": [
        "24713907fe4632d263aea82f7a35c8fb08918a09"
      ],
      "author": {
        "name": "Rich Cannings",
        "email": "richc@google.com",
        "time": "Wed Aug 08 12:46:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 08 12:46:06 2012 -0700"
      },
      "message": "Revert \"Pass URLs to package verifiers\"\n\nThis reverts commit 24713907fe4632d263aea82f7a35c8fb08918a09\n\nChange-Id: Ie04ba73475b813635c4a74915c45e83250801b6b\n"
    },
    {
      "commit": "537915828b45693e846a126292e026c5b4f05152",
      "tree": "6c47dca99eda5792f1fc006e0f20088ad4048db1",
      "parents": [
        "ec0feefd4422db1151aee722732d8c9528f6dfa8",
        "7d19e0242faac8017033dabb872cdf1542fa184c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 08 10:22:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 08 10:22:49 2012 -0700"
      },
      "message": "Merge \"More mult-user API work.\" into jb-mr1-dev"
    },
    {
      "commit": "786546eaccfc7a284b90b077f505cf42206c6f5f",
      "tree": "eca70253bd3fafbc617618ee6f071bc2de212e41",
      "parents": [
        "85b1041f891b4bbfe81e4f6423397fca50c14e5b"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Aug 08 11:40:20 2012 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Aug 08 11:40:20 2012 -0400"
      },
      "message": "Check the ACTIVATE_ON_DOCK setting in DockObserver.\n\nOtherwise docking the device will always launch a Dream.\n\nChange-Id: I2e74ca62f80d7e386d11c00920a75a5a6e78926c\n"
    }
  ],
  "next": "7d19e0242faac8017033dabb872cdf1542fa184c"
}
