)]}'
{
  "log": [
    {
      "commit": "0bcf4adcde601aff7d3894de2603e1f2cae41f1a",
      "tree": "7ec4b36ee2d725167c05eba5b159078a90b13dfa",
      "parents": [
        "0c9278d3c885d63ade01bf583b2bc43ba327837a"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Aug 31 16:18:31 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Aug 31 16:18:31 2012 -0400"
      },
      "message": "Only show the BeanFlinger screensaver to the worthy.\n\n(That is: you must have discovered the flying-jellybeans\neaster egg to gain permanent access to the Dreams version of\nsame.)\n\nChange-Id: I65ce39c0ab5b61f492a3637e3c31b3c91f4f0f89\n"
    },
    {
      "commit": "8601e8b3ab3b166166543baaab663224b787d68f",
      "tree": "53a9bc197fc75197b80bac242f9158798cb5cb3d",
      "parents": [
        "5b81de4de741f736889fd86e1dd324ad88136ebe",
        "c26185bb7b30508a1940eb452af64b6d8661915f"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 29 20:29:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 20:29:28 2012 -0700"
      },
      "message": "Merge \"Expand the navbar dead zone briefly after touches elsewhere.\" into jb-mr1-dev"
    },
    {
      "commit": "c26185bb7b30508a1940eb452af64b6d8661915f",
      "tree": "8f67b2b5286f0af11164924a0e734bb70009e432",
      "parents": [
        "97d28d92c9a42db71d1855286fdd122e6b19ecef"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 29 15:49:53 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 29 20:11:21 2012 -0400"
      },
      "message": "Expand the navbar dead zone briefly after touches elsewhere.\n\nFor now, each time the dead zone captures a touch, it will\nflash to let you know that\u0027s what happened. We should\nprobably turn this off before shipping.\n\nNote also that this currently only expands the navbar on\nACTION_DOWN elsewhere in the UI (because this is the only\ntime ACTION_OUTSIDE is generated); this isn\u0027t perfect and\nwe\u0027ll need to do some mucking about with the input system to\nget information about ongoing drags or additional pointers\ndown, but this CL is a good start and introduces the general\nmechanism for expanding and contracting the dead zone.\n\nChange-Id: I43e63aed1e541fd07d83fde4d66bcb5be89b69d2\n"
    },
    {
      "commit": "4e724c842378e84b8744db657a8e8c8ae09fa264",
      "tree": "a41b67c055ff3cc955cb07f99db69495cf7d1a2c",
      "parents": [
        "69626dab17f9e059cfa2e8c3ce4ec9aaa5f9853e"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Aug 29 17:14:49 2012 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Aug 29 17:14:49 2012 -0400"
      },
      "message": "Change default setting for dreams to \u0027when docked\u0027\n\nBug:7078718\nChange-Id: I4ec74cc9562ab728d6f86938758ede74c241c63b\n"
    },
    {
      "commit": "c88a80a1d7a35eaefb54d17b60e9d3a07b800e82",
      "tree": "3c69d54d1675d9a05aaf2688cf30c4995e7558d6",
      "parents": [
        "d5a1074c4ec8142c2ed206c9fb515dd42139ef3a",
        "15e099cc09589f963933f046d7267552ba3ffad8"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 29 10:58:35 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 29 10:58:35 2012 -0700"
      },
      "message": "am 15e099cc: am 0e0942c7: Merge \"Default WiFi sleep policy setting\"\n\n* commit \u002715e099cc09589f963933f046d7267552ba3ffad8\u0027:\n  Default WiFi sleep policy setting\n"
    },
    {
      "commit": "15e099cc09589f963933f046d7267552ba3ffad8",
      "tree": "5d0e5a16fdd7b4358eddf0b8d02c9d668b3fa1de",
      "parents": [
        "c5f34bd40bc68925c6e99da02e179227d8eb3ae4",
        "0e0942c7209c758bc00939ae54059dc24bce3abb"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 29 10:49:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 29 10:49:25 2012 -0700"
      },
      "message": "am 0e0942c7: Merge \"Default WiFi sleep policy setting\"\n\n* commit \u00270e0942c7209c758bc00939ae54059dc24bce3abb\u0027:\n  Default WiFi sleep policy setting\n"
    },
    {
      "commit": "7e07147ecec50549272b4ec2f4f364102d7f379c",
      "tree": "44724b860a023ce90527032ba94753567e8a6d52",
      "parents": [
        "ad955fe87f44b43dbb2842fdcbe4e62900b5a07f"
      ],
      "author": {
        "name": "Erik Ljungberg",
        "email": "erik.ljungberg@sonyericsson.com",
        "time": "Mon Aug 23 15:13:46 2010 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Wed Aug 29 09:52:12 2012 +0200"
      },
      "message": "Default WiFi sleep policy setting\n\nCreates a defult.xml setting for WiFi sleep policy.\n\nIt is now possible, through device overlays, to change\nthe default sleep policy to e.g. never in order to improve\nuser experience of WiFi.\n\nChange-Id: Ie459b8e70fdbc7c605452fe0692d7bc26460e939\n"
    },
    {
      "commit": "7af0c166f01f80dbe28339c46b1d381837f92b73",
      "tree": "c50b38c118a5918cc643bd0b2b0a279ea16fa07b",
      "parents": [
        "c3815a5679c21a6b09c2deaa6baedd124f9e717a",
        "d2e99565f5377a9afa839eab738b10e7b5e0a761"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 28 17:02:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 28 17:02:29 2012 -0700"
      },
      "message": "Merge \"Fix recents list for multiuser\" into jb-mr1-dev"
    },
    {
      "commit": "d2e99565f5377a9afa839eab738b10e7b5e0a761",
      "tree": "43e6c16ac099404c36b3b1c80aad0f6c963b0d4c",
      "parents": [
        "70574efd8f7105eb73a6ffe31992ed3c5971c8cc"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 28 15:49:06 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 28 15:49:06 2012 -0700"
      },
      "message": "Fix recents list for multiuser\n\nSince the Recents is now an activity running in the respective user\u0027s sandbox,\nit shouldn\u0027t use the special API to get the current user\u0027s recent tasks.\nOtherwise it causes all users to fetch the state of the current foreground user\ninstead of their own recents.\n\nChange-Id: Ice8c2978e6a7ae71c44666c79a19ac07a2cbea1b\n"
    },
    {
      "commit": "97d8f83818d36397805a8844ce5d71ce3a5fe069",
      "tree": "3a6cf8e26d5f9778db37ff1d450a712e8c9510bd",
      "parents": [
        "2deaa3698d33d428b527329537440ab65ae8dced",
        "0d51d679b2638e159edd29ad0c71d6bca68aa2cb"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Tue Aug 28 15:31:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 28 15:31:22 2012 -0700"
      },
      "message": "Merge \"Import translations. DO NOT MERGE\" into jb-mr1-dev"
    },
    {
      "commit": "0d43c567cea30e6fb7af0f7adadb1c620339c0f5",
      "tree": "cb93abaeee84422925a5b629e124dd2d56e90721",
      "parents": [
        "8d8646471cfef1f31b4d2211d9b33c4071776ae4",
        "393e3170b3f52a3e191554ffd8c8f81821ba2074"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 28 13:41:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 28 13:41:19 2012 -0700"
      },
      "message": "am 393e3170: am ad955fe8: Merge \"SystemUI: Fix data activity overlay not being removed when data is disabled\"\n\n* commit \u0027393e3170b3f52a3e191554ffd8c8f81821ba2074\u0027:\n  SystemUI: Fix data activity overlay not being removed when data is disabled\n"
    },
    {
      "commit": "0d51d679b2638e159edd29ad0c71d6bca68aa2cb",
      "tree": "713a3f06dbbdf277b36ce65c759d295dc12c897e",
      "parents": [
        "a3b63c001cfd04121708e2bd67af5c8eb855baa1"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Tue Aug 28 13:30:55 2012 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Tue Aug 28 13:30:55 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I4739f1d06aba86718416cde965590fe9535bde51\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "393e3170b3f52a3e191554ffd8c8f81821ba2074",
      "tree": "384fa71d79bdeeec8f92c0b97e6bd3c8c3dd2051",
      "parents": [
        "1112a376e81af8ef4c2b661f5bda443596ba37da",
        "ad955fe87f44b43dbb2842fdcbe4e62900b5a07f"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 28 13:19:52 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 28 13:19:52 2012 -0700"
      },
      "message": "am ad955fe8: Merge \"SystemUI: Fix data activity overlay not being removed when data is disabled\"\n\n* commit \u0027ad955fe87f44b43dbb2842fdcbe4e62900b5a07f\u0027:\n  SystemUI: Fix data activity overlay not being removed when data is disabled\n"
    },
    {
      "commit": "ad955fe87f44b43dbb2842fdcbe4e62900b5a07f",
      "tree": "af1ea4a86a279b91609c1fef76b1cb88b736cf94",
      "parents": [
        "416362e6d8c8d0a34e09704138688f75aa810c9b",
        "3d30590bc4874de32f7b04fa3e5db1f95f71de1d"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 28 12:52:48 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 28 12:52:49 2012 -0700"
      },
      "message": "Merge \"SystemUI: Fix data activity overlay not being removed when data is disabled\""
    },
    {
      "commit": "d4114d1aa3664c8cf7a249df46423a6da8a79739",
      "tree": "14da8b6929a735a0c0243605f51895873e8ea9c6",
      "parents": [
        "71d7c3c628fbce04b8bdb60f127588ada00bae13"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Aug 27 13:43:42 2012 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Aug 27 13:43:42 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: Ief33e8fa1f5852b5fd221fafc7bc2f7407aca6d1\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "68cff8c117b18136de8f652782b364fc48f25a84",
      "tree": "f2a261c7b8645b7ad22418f9b32b9e666029babf",
      "parents": [
        "aea57c8b4834801a64d129c031049660b3c4bb6c",
        "f07439fba4d96c45c3bc873ffbb497cf3fffb744"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Aug 27 08:08:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 08:08:11 2012 -0700"
      },
      "message": "Merge \"Beans in space.\" into jb-mr1-dev"
    },
    {
      "commit": "4dd2763295b04d41413331a7ed77564f1bbdfdf7",
      "tree": "cd864d98668d2c35233e2bb64f414c5d3619453d",
      "parents": [
        "d59db50ab0c3c7a232b2a564e763ca46c6f6ebfa",
        "6208c6da634cf4d2d9cd2770d19ed1b49f950e24"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Sun Aug 26 16:46:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 26 16:46:23 2012 -0700"
      },
      "message": "Merge \"Import translations. DO NOT MERGE\" into jb-mr1-dev"
    },
    {
      "commit": "f07439fba4d96c45c3bc873ffbb497cf3fffb744",
      "tree": "bea31cb3fb9993ae0924433ecdfbd72e6bf13c03",
      "parents": [
        "080ca09c7f4c0033d0efece23687b71f7f8febc9"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sat Aug 25 13:17:22 2012 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sat Aug 25 13:25:37 2012 -0400"
      },
      "message": "Beans in space.\n\nQuick example dream reusing the JB bean bag view.\n\nChange-Id: Iad3ecedc9ba2c258bd33fcfbba2e3fc48382bdc8\n"
    },
    {
      "commit": "7767eac3232ba2fb9828766813cdb481d6a97584",
      "tree": "41cc717fb9f11190e9da3dc12d61faf23a22861d",
      "parents": [
        "1552586283f329253edc4786a6cf40c5bb69ea36"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 23 18:25:40 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 24 13:53:13 2012 -0700"
      },
      "message": "Keep track of whether an app is installed for each user.\n\nThis add a new per-user state for an app, indicating whether\nit is installed for that user.\n\nAll system apps are always installed for all users (we still\nuse disable to \"uninstall\" them).\n\nNow when you call into the package manager to install an app,\nit will only install the app for that user unless you supply\na flag saying to install for all users.  Only being installed\nfor the user is just the normal install state, but all other\nusers have marked in their state for that app that it is not\ninstalled.\n\nWhen you call the package manager APIs for information about\napps, uninstalled apps are treated as really being not visible\n(somewhat more-so than disabled apps), unless you use the\nGET_UNINSTALLED_PACKAGES flag.\n\nIf another user calls to install an app that is already installed,\njust not for them, then the normal install process takes place\nbut in addition that user\u0027s installed state is toggled on.\n\nThe package manager will not send PACKAGE_ADDED, PACKAGE_REMOVED,\nPACKAGE_REPLACED etc broadcasts to users who don\u0027t have a package\ninstalled or not being involved in a change in the install state.\nThere are a few things that are not quite right with this -- for\nexample if you go through a full install (with a new apk) of an\napp for one user who doesn\u0027t have it already installed, you will\nstill get the PACKAGED_REPLACED messages even though this is\ntechnically the first install for your user.  I\u0027m not sure how\nmuch of an issue this is.\n\nWhen you call the existing API to uninstall an app, this toggles\nthe installed state of the app for that user to be off.  Only if\nthat is the last user user that has the app uinstalled will it\nactually be removed from the device.  Again there is a new flag\nyou can pass in to force the app to be uninstalled for all users.\n\nAlso fixed issues with cleaning external storage of apps, which\nwas not dealing with multiple users.  We now keep track of cleaning\neach user for each package.\n\nChange-Id: I00e66452b149defc08c5e0183fa673f532465ed5\n"
    },
    {
      "commit": "6208c6da634cf4d2d9cd2770d19ed1b49f950e24",
      "tree": "1a7fe22e60252fdccae8936964903b4954e6925a",
      "parents": [
        "e370c468221bfef8f73c20f9d013cd22f06e2da7"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Fri Aug 24 12:37:21 2012 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Fri Aug 24 12:37:21 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I34bae2ebf2fbf14c76d13c4e2e38c2aa25b3f6d9\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "34f863125865664af058ab4dff44ebec570e2234",
      "tree": "520a3a74893506596e59c531d03f7d69e49e3c08",
      "parents": [
        "96702ad6d736fd2b145968843d5d83615b104a16",
        "82f8521d386f3109147c477d04e5e90e5c715fa0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 11:32:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 24 11:33:00 2012 -0700"
      },
      "message": "Merge \"Migrate legacy VPN arguments to system_server.\" into jb-mr1-dev"
    },
    {
      "commit": "82f8521d386f3109147c477d04e5e90e5c715fa0",
      "tree": "38ba5be71c161c63cc9a8fed9362d05b646f0b4e",
      "parents": [
        "c268f0b19efd0b6c6c89c21be0893787f3cc9cf7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 11:17:25 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 24 11:29:58 2012 -0700"
      },
      "message": "Migrate legacy VPN arguments to system_server.\n\nGenerate the racoon and mtpd daemon arguments in system_server,\ninstead of accepting them from Settings.\n\nBug: 5756357\nChange-Id: I42c1a644f6add477fe4222342640d7db15982cb8\n"
    },
    {
      "commit": "b8ea2f59e2727020ac211d5b6f6d421314546439",
      "tree": "bd87084dd7958d55583dbc4b799aba5b19327a36",
      "parents": [
        "4d3a7b075298d1379e9d6ba84bc02a347344a001"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri Aug 24 11:50:55 2012 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri Aug 24 12:20:30 2012 -0400"
      },
      "message": "[phones] Only allow double-flick opening of the quicksettings panel.\n\nBug: 7043587\nChange-Id: I39d208626c477e8c081c9d81c3124eb631152998\n"
    },
    {
      "commit": "51fabf2319175dbecf60138cef3e5ed16d2001cf",
      "tree": "9ba2d8efb52766165fa16114dcb60f1ab66b64ef",
      "parents": [
        "fc6baa834913ec04ed14979341b994f790a53256",
        "3081c71a8310a0148d8739a53c7689f63905e307"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Thu Aug 23 19:11:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 23 19:11:34 2012 -0700"
      },
      "message": "Merge \"Import translations. DO NOT MERGE\" into jb-mr1-dev"
    },
    {
      "commit": "3081c71a8310a0148d8739a53c7689f63905e307",
      "tree": "6e1469fc9db60699239db52ab691160310f0fff9",
      "parents": [
        "2e9aa74127b9f5d4bc3c424ceb198f58c21eba73"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Thu Aug 23 17:24:01 2012 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Thu Aug 23 17:24:01 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: Ie2c09a688d76f2886909461362de765820d3e255\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "d5fc86f0677575333556fe579838353fae10ce52",
      "tree": "3f73dd668363342e39680ecb7c8065f51faa2aa4",
      "parents": [
        "e7485cbc45545e5e20e003790468cd2bcd965979",
        "899223b97c9b0ae56a8211a46600914c0ecfd854"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 23 16:44:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 23 16:47:50 2012 -0700"
      },
      "message": "Merge \"Begin moving VPN to NetworkStateTracker pattern.\" into jb-mr1-dev"
    },
    {
      "commit": "899223b97c9b0ae56a8211a46600914c0ecfd854",
      "tree": "19b98a147be6309366dc1652f17e9fe3fe6f6e63",
      "parents": [
        "2c1dfa29b40a988e3ea8f6922768465743aafddc"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Aug 04 15:24:58 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 23 16:41:06 2012 -0700"
      },
      "message": "Begin moving VPN to NetworkStateTracker pattern.\n\nCreated base tracker that handles common bookkeeping, and move VPN\nto become a tracker.  VPN status is now reflected in NetworkInfo, and\nis mapped to LegacyVpnInfo.\n\nLegacy VPN now \"babysits\" any init services it starts, watching for\nwhen they stop unexpectedly.\n\nBug: 5756357\nChange-Id: Iba7ec79da69469f6bd9a970cc39cf6b885b4c9c4\n"
    },
    {
      "commit": "fd9619f647a618b7bded59875186d1bcdde32ba1",
      "tree": "f09aa4308759f693a011ea6d1b3ba83ae92e135f",
      "parents": [
        "b25617e72e10f9b8ffd1d9ca6db5414db6a02e92",
        "3bc03666ccd322f8ebc0c303dabe920b2ae6944c"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Thu Aug 23 12:34:37 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 23 12:34:37 2012 -0700"
      },
      "message": "am 3bc03666: am 72404a82: Merge \"Update Back softkey icon Bug: 6020915\" into jb-dev\n\n* commit \u00273bc03666ccd322f8ebc0c303dabe920b2ae6944c\u0027:\n  Update Back softkey icon Bug: 6020915\n"
    },
    {
      "commit": "21b53df7c3fc7501c9c9e238eb820a6dcf992650",
      "tree": "7ac7d0f6754bfa8f5429dba64d82ddf853440452",
      "parents": [
        "41d4332ab0641d3f5dd2ad8da7e325cd9f81f3c1",
        "1a868b7981ca5f52e893fdf9f8f538c9d5ce241d"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Aug 23 10:44:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 23 10:44:05 2012 -0700"
      },
      "message": "Merge \"Add framework support for multiple dreams.\" into jb-mr1-dev"
    },
    {
      "commit": "03f482c34d7e0d2917e7f53006ee2fc9736e8773",
      "tree": "45872a9c5bcf685cde9056fdb0b252226a4d5d8a",
      "parents": [
        "ed965a2cd1e5880e47c40ccc8394fcfa5ef0c153",
        "cb2522c86d75fff277dc38ec7e444a5b5f5130ea"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu Aug 23 04:57:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 23 04:57:55 2012 -0700"
      },
      "message": "Merge \"Recents: apps scale down to thumbnails now\" into jb-mr1-dev"
    },
    {
      "commit": "cb2522c86d75fff277dc38ec7e444a5b5f5130ea",
      "tree": "0453cda9b18962343ed09084889963db65944e3a",
      "parents": [
        "257662efe2a5edd13601b4372b5c1ff0431ddda9"
      ],
      "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 23 04:53:53 2012 -0700"
      },
      "message": "Recents: apps scale down to thumbnails now\n\nAs a part of this change, Recents is now an\nactivity.\n\nKnown issues:\n* Jank: jump-cut as app icon appears suddenly\n  after the aniamtion\n* Preloading recents is broken on phones without\n  soft nav bar and on tablets\n* Thumbnail window from animation lingers/flashes\n  sometimes\n\nChange-Id: Ie6f991f3c2e1e67f9ed84eb6adba9174ed957248\n"
    },
    {
      "commit": "48df87298a072dc94559528f678d952cf66ce5e5",
      "tree": "d7fde5508d8701539f5c849a2ff0e14ed3fe6a99",
      "parents": [
        "2c1dfa29b40a988e3ea8f6922768465743aafddc",
        "ae1c2d1c15c89663d8b3ed6e5a3fc62a6d79a75e"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Wed Aug 22 19:50:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 22 19:50:06 2012 -0700"
      },
      "message": "Merge \"Import translations. DO NOT MERGE\" into jb-mr1-dev"
    },
    {
      "commit": "1a868b7981ca5f52e893fdf9f8f538c9d5ce241d",
      "tree": "7e47e8cdd2c7330d7f56d7a9c4fed851e53e94c9",
      "parents": [
        "00a8f4ff627584f4d9a8ae0cd83f87786005e16d"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Aug 22 09:56:51 2012 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Aug 22 16:49:20 2012 -0400"
      },
      "message": "Add framework support for multiple dreams.\n\nBug:7028665\nChange-Id: I4fba6b8e39dc07af4490c621ac3bc7b3867371b2\n"
    },
    {
      "commit": "3bc03666ccd322f8ebc0c303dabe920b2ae6944c",
      "tree": "42961626c81e6aa431aa45c5569e02b6ca6d93d6",
      "parents": [
        "46b29d8dd558c734f058b3806a0b56a2a23b33fd",
        "72404a82d30ff0631a31aed93f221c1fdf210888"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Wed Aug 22 12:58:09 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 22 12:58:09 2012 -0700"
      },
      "message": "am 72404a82: Merge \"Update Back softkey icon Bug: 6020915\" into jb-dev\n\n* commit \u002772404a82d30ff0631a31aed93f221c1fdf210888\u0027:\n  Update Back softkey icon Bug: 6020915\n"
    },
    {
      "commit": "ae1c2d1c15c89663d8b3ed6e5a3fc62a6d79a75e",
      "tree": "3fdb9a1a846450f5b4894fa79e0b11962cf0449b",
      "parents": [
        "2bd65b61ba6e98496dc574251e06709546d24500"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Wed Aug 22 11:35:27 2012 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Wed Aug 22 11:35:27 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I56235165dab3db350e0f5918f4f9bca8f33be611\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "4d179dc6ccf3eb118767e94b803484abe9552537",
      "tree": "b8c1b3a997c3492839fd16120dcecfedb6604503",
      "parents": [
        "2bd65b61ba6e98496dc574251e06709546d24500"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Aug 22 07:14:42 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Aug 22 07:53:44 2012 -0700"
      },
      "message": "Fix animation of notification handle bar when panel changes height\n\nThe notification panel uses LayoutTransition to animate changes to\nthe list of notifications. This works for the items themselves as\nitems are added or removed; the new/old items animate in/out and the\nexisting items animate to make or remove space.\n\nBut the handle at the bottom of the list (the gray translucent line) does\nnot play well with these changes. For example, when an item is swiped away\nthe handle snaps into its new location before the rest of the items have\nfinished animating.\n\nThe problem comes from a constraint of LayoutTransition; it handles changes\nto the container it operates on, and to the parent hierarchy all the way up\nto the root. However, it cannot animate changes to siblings of the parents.\nSo when the list resizes due to item changes, the handle (which is in a sibling\nof the list) does not animate this change, but just reacts instantly.\n\nThe fix is to draw the handle not as a view itself, but rather as part of the\nparent container of the list. So as the list animates a resize, the container will\nalso animate, and any graphics in the container will animate along with it.\nNo matter what size the container of the list is, the line will be drawn at\nthe bottom of it.\n\nIssue #7024902 Notification panel animation incorrect when swiping notification out\n\nChange-Id: Ifc412cb6bcdc6ead35993b0320364a2a95a16e11\n"
    },
    {
      "commit": "962daf9b1c4b12aff68a137472b6a7f4db123c65",
      "tree": "8f1e7d6aa5cb19b231db7ba2ab8f7af5631761d1",
      "parents": [
        "8631701bb770f3a4e3b2a139dc282f2244fe86e6"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Tue Aug 21 14:21:29 2012 -0700"
      },
      "committer": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Tue Aug 21 14:21:29 2012 -0700"
      },
      "message": "Update Back softkey icon\nBug: 6020915\n\nChange-Id: I780f09bd1e99a10b2189ab253dd1a082118a385d\n"
    },
    {
      "commit": "66bcbb9e39f6c877210e7aa46b8e5d38fd79070a",
      "tree": "12e1c804859af7d1d11b5718687183bbe32a2c3e",
      "parents": [
        "df5c3a54c7e955fb89951b63ff49f275a53f9c35",
        "179ec6d0bc9963ffc065a4e7983743bb5e4ce9fe"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Aug 21 13:03:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 21 13:03:49 2012 -0700"
      },
      "message": "Merge \"Fix notification panel bug which prevented proper resizing\" into jb-mr1-dev"
    },
    {
      "commit": "11780f2f66bde673d04672f52c1b3867ecb72ad1",
      "tree": "ec2bb9c3e7f8de9b13c6373f316ec905dca36d1e",
      "parents": [
        "7b3ca5bb418a6300a9caf6e5e5ee31d73f7121b4"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Tue Aug 21 10:43:48 2012 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Tue Aug 21 10:43:48 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: Ie9c95838e61ce5fffd21db7cd63f393a7ec2735e\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "179ec6d0bc9963ffc065a4e7983743bb5e4ce9fe",
      "tree": "e49ebb6a17cc789440202de976b77b9d4a8bbd35",
      "parents": [
        "c2cb8d226399c3cb93bad7008b4049d493d4f1d2"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Aug 20 17:34:33 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Aug 20 17:38:29 2012 -0700"
      },
      "message": "Fix notification panel bug which prevented proper resizing\n\nWhen the notification panel is opened larger than the list\u0027s length,\nthe penl is put into a \"rubber band\" mode, to animate the bottom of the\npanel back to the end of the list. But the rubber band mode is never\nunset, which causes an improper result if another notification is ended,\npreventing the panel from resizing to the new, appropriate size of the list.\n\nFix is to unset the rubber banding flag when the snapping animation finishes.\n\nIssue #6992133 Notification bar does not drop down completely in Mako\n\nChange-Id: Id93918086353f58d6eb6bb071556f08eb2e2706e\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": "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": "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": "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": "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": "5050813f15a1d39d49cb8eca5a3aa6df43c4d450",
      "tree": "f72366ad7ad042cc4527adc668f132ec5021160f",
      "parents": [
        "3fd688fa50b518ca0b2bf0932dc7ab7197da6b1d"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 16 14:10:53 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 16 15:54:57 2012 -0400"
      },
      "message": "Allow the panels to be temporarily dragged past their contents.\n\nOnce the user lets go, restore the \"correct\" height of the\npanel.\n\nBug: 6999596\nChange-Id: I2db393873cee876cf17fea25c9d25fe5e3a78424\n"
    },
    {
      "commit": "3fd688fa50b518ca0b2bf0932dc7ab7197da6b1d",
      "tree": "18e8365a8147a729e638608316ffdedbf4dd3604",
      "parents": [
        "f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8",
        "fa71962948092786c5190f39fd25ce3d55a4e287"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 16 12:52:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 12:52:18 2012 -0700"
      },
      "message": "Merge changes Ifad4bd65,I6a4b7d69 into jb-mr1-dev\n\n* changes:\n  Turn off an assert.\n  Fix crash in SystemUI.\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": "ca34bcf6746454c561b0c07ca5c6e42bd4a73e9e",
      "tree": "29438f2102ae8577323f3f7de09b3b03b62e4893",
      "parents": [
        "14250ccf22f88ce0a44b4fa1ec992da9344ffe18",
        "80c904df159f5a19517ec0246c35d69e40534747"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 16 12:22:23 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 16 12:22:23 2012 -0700"
      },
      "message": "resolved conflicts for merge of 80c904df to jb-mr1-dev\n\nChange-Id: Ic2f8d64cd716d04a533ca0685d1fb0d5e2a21933\n"
    },
    {
      "commit": "fa71962948092786c5190f39fd25ce3d55a4e287",
      "tree": "db7925a8facffa9d32f1fba42365df3834d0f9c4",
      "parents": [
        "5a35a0d560ccc5582f26c33534bf22c5c0d169b7"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 16 13:52:06 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 16 13:52:39 2012 -0400"
      },
      "message": "Turn off an assert.\n\nChange-Id: Ifad4bd65ddcedc6e2dd018695fd37ddbf9163e80\n"
    },
    {
      "commit": "5a35a0d560ccc5582f26c33534bf22c5c0d169b7",
      "tree": "84dcc5d16f19bad78aee3c84c1bf736dce013c2d",
      "parents": [
        "228916713db16dd536a8f3d7256b5726a2eaeb2b"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 16 13:50:40 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 16 13:52:31 2012 -0400"
      },
      "message": "Fix crash in SystemUI.\n\nIt looks like we were end()ing the main timing animation in\nthe middle of the animation (and too many times, at that).\n\nBug: 6992223\nChange-Id: I6a4b7d692171baa73f6211c7843e164b05383a30\n"
    },
    {
      "commit": "80c904df159f5a19517ec0246c35d69e40534747",
      "tree": "bda8a5d833e4d5ef4a5a662cecaaedb5283935a5",
      "parents": [
        "91d08fe51ab43980aed3ba6c89c0611e5319c51d",
        "8631701bb770f3a4e3b2a139dc282f2244fe86e6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 16 10:36:55 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 16 10:36:55 2012 -0700"
      },
      "message": "am 8631701b: Allow enabled accessibility service to toggle tocuh exploration after an upgrade to JellyBean.\n\n* commit \u00278631701bb770f3a4e3b2a139dc282f2244fe86e6\u0027:\n  Allow enabled accessibility service to toggle tocuh exploration after an upgrade to JellyBean.\n"
    },
    {
      "commit": "1e8feef1faca7d2f14bf459691dbe724c8cf5c88",
      "tree": "edd797e9249c614f625731474068db07161cd867",
      "parents": [
        "228916713db16dd536a8f3d7256b5726a2eaeb2b"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 16 11:37:41 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 16 11:37:41 2012 -0400"
      },
      "message": "Fix status bar disabling.\n\nBug: 6998403\nChange-Id: I8a47e694f2f3914ef5cf0d180b0309783148c627\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": "8631701bb770f3a4e3b2a139dc282f2244fe86e6",
      "tree": "ffef399c08cc65408e31acc80c8f5dcbe0a1b2dc",
      "parents": [
        "2d9063bc705aae7ef4cc90206ece03d4caeefba7"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 15 22:13:00 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 15 22:13:03 2012 -0700"
      },
      "message": "Allow enabled accessibility service to toggle tocuh exploration after an upgrade to JellyBean.\n\n1. Before JellyBean touch exploration was a global setting controlled by the user via\n   the UI. However, if the enabled accessibility services do not handle touch exploration\n   mode, enabling it makes no sense. Therefore, in JellyBean the services request touch\n   exploration mode and the user is presented with a dialog to allow that and if she\n   does we store that in the database.\n\n   As a result of the above change a user that has enabled  accessibility, touch\n   exploration, and some accessibility services running a pre-JellyBean system\n   version may lose touch exploration state, thus rendering the device useless unless\n   sighted help is provided, since the enabled service(s) are not in the list of\n   services to which the user granted a permission to put the device in touch explore\n   mode.\n\n   The fix is during a database upgrade to allow allow all enabled accessibility\n   services to toggle touch exploration provided accessibility and touch exploration\n   are enabled and no services can toggle touch exploration. Note that the user has\n   already manually enabled the services and touch exploration which means the she\n   has given consent to have these services work in touch exploration mode\n\nbug:6996354\n\nChange-Id: I0af2dc578cc4fbcc90043341035163b876978ab2\n"
    },
    {
      "commit": "228916713db16dd536a8f3d7256b5726a2eaeb2b",
      "tree": "cfaa8b24000a1c76e352fa47074a647768b49bed",
      "parents": [
        "2b197db7868ef756eef455184ea7eed1a2145264",
        "b9301c3a686df05950710ec80e2cd691c3082871"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 15 21:03:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 15 21:03:26 2012 -0700"
      },
      "message": "Merge \"Multiuser support for notifications, take 1.\" into jb-mr1-dev"
    },
    {
      "commit": "b9301c3a686df05950710ec80e2cd691c3082871",
      "tree": "bd8061cc86c2a647954746583322642a27a23e57",
      "parents": [
        "978f853d189c1857190b4a2e200c7a283e31ca14"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 14 15:08:24 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 15 23:00:56 2012 -0400"
      },
      "message": "Multiuser support for notifications, take 1.\n\nNotifications for background users are hidden from the\npanel and status bar.\n\nStill need to add a concept of \"any user\" notifications (for\nthings coming from the system) and notification visibility\ncontrols (for access to icons + possibly masked text of\na background user\u0027s notifications).\n\nChange-Id: Iba121f35a6c25c2e1c44db029d776a5a59a6a008\n"
    },
    {
      "commit": "cf591db04914d8ceadd982451b325bd8c4817086",
      "tree": "3094c1e78e150cf22d8749175caff4327e347adc",
      "parents": [
        "978f853d189c1857190b4a2e200c7a283e31ca14"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 15 16:11:55 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 15 22:52:03 2012 -0400"
      },
      "message": "Confine the quick settings trigger to the right third of the status bar.\n\nPulling down anywhere on the status bar when a panel is\nalready showing will switch to the other panel.\n\nAlso adjust gesture recorder output to track the settings\npanel and annotate it separately.\n\nChange-Id: I0ca3b395b5f2c6c8767237126bce26d0e8c9b8c0\n"
    },
    {
      "commit": "978f853d189c1857190b4a2e200c7a283e31ca14",
      "tree": "8b630adc9de44ff3a4fb863584c0949b6fbacb4e",
      "parents": [
        "2db99c56f74013ee51950ac53062536be2edcd14"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 15 15:48:16 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 15 15:48:43 2012 -0400"
      },
      "message": "Fix situations where the panel wouldn\u0027t descend.\n\nChange-Id: I41c1d6a973b2693487062f3a5fbf922ff2025897\n"
    },
    {
      "commit": "2db99c56f74013ee51950ac53062536be2edcd14",
      "tree": "33251942d4e39890ce4e5b22ec4e11b22f184f00",
      "parents": [
        "21029db15769c9d57ffb972fb846e574ef2376ad",
        "bf4aa9d5bc34df144afcab45e8045d34a0ac090a"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 15 12:03:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 15 12:03:58 2012 -0700"
      },
      "message": "Merge \"Turn off chatty logging for everyone.\" into jb-mr1-dev"
    },
    {
      "commit": "194b6e971668ea32124bdc1b0f534fcb3e06ef9f",
      "tree": "6d0155c4a2e5584f1339f3bb53cbc4b2f585d56a",
      "parents": [
        "1d64f9f4dadce40f8316c53467167d2c51169f9d",
        "9630704ed3b265f008a8f64ec60a33cf9dcd3345"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 15 10:26:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 15 10:26:03 2012 -0700"
      },
      "message": "Merge \"Power manager rewrite.\" into jb-mr1-dev"
    },
    {
      "commit": "bf4aa9d5bc34df144afcab45e8045d34a0ac090a",
      "tree": "2079dd0f6dcff0a1e9f6123e009b2a111c8784e6",
      "parents": [
        "8e72c9e19cfb0b6c1463fa841f1dd02be8f3b4e1"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 15 10:49:28 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 15 10:49:28 2012 -0400"
      },
      "message": "Turn off chatty logging for everyone.\n\nChange-Id: I6c6f48012df8a551ae4f2b2a9cd2713184234763\n"
    },
    {
      "commit": "8e72c9e19cfb0b6c1463fa841f1dd02be8f3b4e1",
      "tree": "e96bfb75bf13ec2fa65c8cf2c5af5518d16fa33b",
      "parents": [
        "f8d9e2fccdd9f2addeda852ad168eeb67a5f6626"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 15 00:09:26 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 15 09:52:43 2012 -0400"
      },
      "message": "Quick settings come to all Android devices.\n\nI mean, real soon now.\n\nChange-Id: I9a15b49f271e7ae06eb48a402f58270d8adccbf4\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": "07d1b289041c67d42e1ad3fc9343833d8a781998",
      "tree": "3db47b6b8b64424667c0e78644eda483f8f1b7f7",
      "parents": [
        "22a65164d241c55bc129ab652de2e2296152cb5d",
        "c1d07a4bd26c0ecf87bfa151ae43cb92c0c73791"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 14 16:34:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 14 16:34:48 2012 -0700"
      },
      "message": "Merge \"Launch ASSIST intent on the current user\" into jb-mr1-dev"
    },
    {
      "commit": "41f71dc814e89546110c57b7ee73c87f31aaba4e",
      "tree": "8d6d506c996481d4920e3918e4b683280d7eaef1",
      "parents": [
        "2846ea4e79d1aae3a93689ce09eff6e217b28dac",
        "1c1edaa5f127d814058271ee4827fc0fe4a8de44"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 14 13:22:53 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 14 13:22:53 2012 -0700"
      },
      "message": "Merge \"Use a color resource to specify the dim behind panels.\" into jb-mr1-dev"
    },
    {
      "commit": "e7237fceb1cd17af006815c4338fe8e4a7971ff7",
      "tree": "301f6b28685a154f3e90b3908b5d97f326b579e7",
      "parents": [
        "9c3d7a888d0c5c09f0153e81018ff68aa6e91712"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 14 16:08:27 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 14 16:08:27 2012 -0400"
      },
      "message": "Fix bug with swipe-to-dismiss.\n\n(Clearing all notifications prevents notifications from\nbeing subsequently swiped away.)\n\nChange-Id: Ia15704c390d95f16675e2eea6040379099f44430\n"
    },
    {
      "commit": "c1d07a4bd26c0ecf87bfa151ae43cb92c0c73791",
      "tree": "620e4b1cf4e7534b41ea94f9ac3732fa622e4670",
      "parents": [
        "b26295b7a0bc23deb2987c4ff10810c3ce2f1869"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 14 09:32:02 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Aug 14 12:39:29 2012 -0700"
      },
      "message": "Launch ASSIST intent on the current user\n\nLockscreen and statusbar now launch the intent on the current user.\nMake sure that the intent resolution is made to the package manager\nfor the specific user, as the app could have been disabled for that\nuser or may have an alternative app installed.\n\nChange-Id: I93b0f972d6c7e8880b146da83dc3d08a68fe7e51\n"
    },
    {
      "commit": "5333400bd5c825cff5a4a481dde9c5530e6b8ef1",
      "tree": "63f6bf3354f3ca348d7fdfce014118d2c46a428b",
      "parents": [
        "ea31b47a72a6fed1269e2ba3c29c438212322bf0"
      ],
      "author": {
        "name": "Madan Ankapura",
        "email": "mankapur@sta.samsung.com",
        "time": "Thu Aug 02 19:10:22 2012 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Aug 14 10:17:54 2012 -0700"
      },
      "message": "show 3G icon for CDMA/1xRTT\n\nwhen config_showMin3G is enabled to true in a CDMA device\n\nChange-Id: I79a4fa200dc406fc7f9f4527165046541961ef69\nSigned-off-by: Madan Ankapura \u003cmankapur@sta.samsung.com\u003e\n"
    },
    {
      "commit": "1c1edaa5f127d814058271ee4827fc0fe4a8de44",
      "tree": "4963647d450eea222f66a66e9abe000f6c8547b9",
      "parents": [
        "a6aef1bbb4382fa5f89d0b7ad2cc46be4c6de1e7"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 14 11:14:45 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 14 11:28:38 2012 -0400"
      },
      "message": "Use a color resource to specify the dim behind panels.\n\nChange-Id: I551d9969dc1f4032f26fd94cf9719f07873abb5e\n"
    },
    {
      "commit": "a6aef1bbb4382fa5f89d0b7ad2cc46be4c6de1e7",
      "tree": "67c52c60d92540eb21540e5afdeae96febdf4c6e",
      "parents": [
        "27f3e32ee181ccd809fbe74ec5f7fb43aea197f7",
        "08d05e3d1d6ade6924266296033981a96b47d5fb"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 14 07:56:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 14 07:56:44 2012 -0700"
      },
      "message": "Merge \"New status bar capable of multiple sliding panels.\" into jb-mr1-dev"
    },
    {
      "commit": "3e300c46930858a219c7f3946da0a3f675076673",
      "tree": "6608c613e9ab5cc7d1565c24961a847573760870",
      "parents": [
        "d0cfe02b260b8e8a643abc59cce5a5876d3d44f8"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Aug 13 13:20:03 2012 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Mon Aug 13 13:20:03 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I95bed23285699c68b623ae0e36600ec5e813db8c\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "08d05e3d1d6ade6924266296033981a96b47d5fb",
      "tree": "1058c40f19f95a75716533586adb265aaf9cf433",
      "parents": [
        "f83d2d6f6b4a23011226a7b9fee20dabf94820cb"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 08 16:39:54 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Aug 13 15:23:51 2012 -0400"
      },
      "message": "New status bar capable of multiple sliding panels.\n\nThere are some visual glitches but almost everything should\nbe put back pretty much where it was.\n\nChange-Id: I2f9b0591d44599b07bd83f03c4e09e6dd98e1448\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": "ea777806eb02a50f3ccaf08251aa35aa542dc061",
      "tree": "c294a225dc421f0a5b006f2d091223adff2a12b4",
      "parents": [
        "3914e4b7d12b014f73085cd6e34b6fd69ea26226",
        "63fe5cdc74f7f30666221a7f7feedeb3b3460e65"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Fri Aug 10 15:38:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 10 15:38:42 2012 -0700"
      },
      "message": "Merge \"Import translations. DO NOT MERGE\" into jb-mr1-dev"
    },
    {
      "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": "747a9e986c634bc25be3f44c333d7c6ecd44158e",
      "tree": "92cbd68c0f6de804a55b1aadd23c1241e6271eab",
      "parents": [
        "69509926454e4f873bb48ecaa932ccbd76d5b123"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Aug 10 16:39:19 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Aug 10 16:39:19 2012 -0400"
      },
      "message": "Capture orientation change data in the gesture log.\n\nChange-Id: I19719f82f1b6b6563b33edc85b4a8a259d04ba0c\n"
    },
    {
      "commit": "63fe5cdc74f7f30666221a7f7feedeb3b3460e65",
      "tree": "0df47c8623eefff6f3c415f82d242b7b8e7f0525",
      "parents": [
        "69509926454e4f873bb48ecaa932ccbd76d5b123"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Fri Aug 10 11:14:46 2012 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Fri Aug 10 11:14:46 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I8948cd5b0992133db9dc8e676b5d43b54d672e85\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "69509926454e4f873bb48ecaa932ccbd76d5b123",
      "tree": "ef57ea390b40808c0c79c9a85324528e18c2d38c",
      "parents": [
        "3b89190b2e82ce0ebc3c633cc1b5e9161304ee1f",
        "a2fbe53f1e59a9b015d27213fbc8588883f4d408"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Aug 10 07:26:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 10 07:26:15 2012 -0700"
      },
      "message": "Merge \"More termination conditions for Dreams.\" into jb-mr1-dev"
    },
    {
      "commit": "a2fbe53f1e59a9b015d27213fbc8588883f4d408",
      "tree": "e7052e603ad015ac54ac7e9f8c959148c9f521a8",
      "parents": [
        "7c46e4380e6c50c30aad80807f87af25f000c7ff"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Aug 10 01:19:03 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Aug 10 01:19:03 2012 -0400"
      },
      "message": "More termination conditions for Dreams.\n\nDefault implementation of Dreams will finish() on KEYCODE_BACK.\n\nPhoneStatusBar will awaken() from any Dream when the Home key is pressed.\n\nChange-Id: I55e2a5d533a7fb93debc4c54514dba3b9098f009\n"
    },
    {
      "commit": "03cfc542311604c6a4cfd641b969f361279058b3",
      "tree": "aab4506561c5dc8ecab851d6f47be26732dcb010",
      "parents": [
        "7c46e4380e6c50c30aad80807f87af25f000c7ff"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Thu Aug 09 12:32:26 2012 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Thu Aug 09 12:32:26 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I813d5cfc5f5b60e98f635dc62e9935299c903171\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "634471edc409f00f38633e334cd6853954a2b093",
      "tree": "9d89ab2dd8afa32b13f07e242cb376119cb042a3",
      "parents": [
        "b7649306e9c8c06128c0f405f9da97c95f8be336"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Aug 09 10:41:37 2012 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Aug 09 10:41:37 2012 -0400"
      },
      "message": "Load default Dream settings into a clean db.\n\nSet the Dream defaults during onCreate, not only onUpgrade.\n\nBug: 6959513\nChange-Id: Ia93097edaf1150813c75b6be809db9c97987868f\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": "5927d957ea36744315e958ab4a9a1f095d48721c",
      "tree": "1b3dfc97d9a8b7627b602e8509c49e7261a67278",
      "parents": [
        "1ae86869bcc2262b6828102c8a3ee08e68580fa7",
        "fdb7c36a108e6a7887de6611b3f1541e3009f2d5"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 08 08:47:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 08 08:47:40 2012 -0700"
      },
      "message": "Merge \"Migrate Dreams default settings to DatabaseHelper.\" into jb-mr1-dev"
    },
    {
      "commit": "fdb7c36a108e6a7887de6611b3f1541e3009f2d5",
      "tree": "f7f68aa7214e3e6cf33736aabed35a7593a7d91f",
      "parents": [
        "096298d8aef266fc16a1578c48803433a4f4fb06"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Aug 06 17:02:55 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 08 08:38:48 2012 -0400"
      },
      "message": "Migrate Dreams default settings to DatabaseHelper.\n\nAlso switch Dreams on for all charging devices by default.\n\nChange-Id: Iccbcc2906d55214320b2f467e88ba9cb188f4886\n"
    },
    {
      "commit": "336b31c28ab282595fbf649eaf053f0811034dd9",
      "tree": "3f11dcac979d342ca4af5fa9a6a5c0dd44296922",
      "parents": [
        "08fe2687aae986b7aca5192c60605edebaa18ab8",
        "acad183238ad13774dba38c403ed553c2427027e"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Tue Aug 07 16:14:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 07 16:14:50 2012 -0700"
      },
      "message": "Merge \"Add an empty stub status bar service implementation\" into jb-mr1-dev"
    },
    {
      "commit": "6624afe37b3be7c469a3613298a2246663a2d409",
      "tree": "7beef237ec88cf0c0f3dff4286c91ada31f84b74",
      "parents": [
        "b1f938c1c1d83a7bc4f15395042dd40c0734a6dc",
        "45576ccd760e4e2e63a54410803380c05e42d742"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Aug 07 08:55:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 07 08:55:25 2012 -0700"
      },
      "message": "Merge \"Explicitly export content providers\" into jb-mr1-dev"
    },
    {
      "commit": "45576ccd760e4e2e63a54410803380c05e42d742",
      "tree": "a73fa1e67e54917e930c1ef75183a793160808f3",
      "parents": [
        "ff92aa74c133fd4abe30f97e6849e80db29af253"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jul 28 12:45:05 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Aug 06 17:42:12 2012 -0700"
      },
      "message": "Explicitly export content providers\n\nIn a future version of Android, the default value for\n\u003cprovider android:exported\u003e will change from true to false.\nExplicitly set android:exported\u003d\"true\"\n\nBug: 3306452\n\nChange-Id: Iffe4dca4fefc92bb9f89698f149a87c16a7ce3c5\n"
    },
    {
      "commit": "acad183238ad13774dba38c403ed553c2427027e",
      "tree": "78e70264a78ca12be08c946f75df0f563181160f",
      "parents": [
        "bec1d13da2ef3c8c2c4cc4f740474d095068bd8b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 17 16:01:27 2012 -0800"
      },
      "committer": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Mon Aug 06 14:40:50 2012 -0700"
      },
      "message": "Add an empty stub status bar service implementation\n\nFor kiosk-type devices that do not present any navigation UI.  This allows\nfor clean selection of the implementation based on resource overlays,\nwithout the need for the tablet or phone status bar implementations to\naccomodate the desired behaviors.\n\nBug 5824373\n\nChange-Id: Idcec70eef437904edda452b69e5eb7a3cc7094f7\n(cherry picked from commit 5717f80927944c141f059162ecd69649488f8049 in ics-aah)\n\nSigned-off-by: Mike J. Chen \u003cmjchen@google.com\u003e\n"
    },
    {
      "commit": "f6a341248d65a5637445941bc320f27673496f71",
      "tree": "9e9be2ad7dbb93f310cc1004be4130f5d068defe",
      "parents": [
        "bec1d13da2ef3c8c2c4cc4f740474d095068bd8b"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Aug 06 14:31:13 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Aug 06 15:29:09 2012 -0400"
      },
      "message": "Move lots of layout-port/ resources to layout/ .\n\nThe framework is no longer letting us skate by without a\ndefault (unqualified) for of each resource; in particular,\nthe land/port aspect of the configuration appears to be\nbinding much later than it used to.\n\nBug: 6937365\nChange-Id: I6bf72c76e707548168fefa9466dc196ffde33ab3\n"
    },
    {
      "commit": "bb01fd01118d34d5f91c83881b0bf95dd74d6159",
      "tree": "69eeff4b0e79fce3474dc29ba512d5ec484cdc1c",
      "parents": [
        "b49a065d9904567624a088857ecd1626fad91511",
        "1971df5d4296f077cccff704201057a32b733235"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Sat Aug 04 08:12:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 04 08:12:48 2012 -0700"
      },
      "message": "am 1971df5d: am e20a19cb: Merge \"show 3G icon for CDMA/1xRTT\"\n\n* commit \u00271971df5d4296f077cccff704201057a32b733235\u0027:\n  show 3G icon for CDMA/1xRTT\n"
    },
    {
      "commit": "1971df5d4296f077cccff704201057a32b733235",
      "tree": "01b131971775a858f26aa24c2b63284f7fef7e4d",
      "parents": [
        "633233bc9ec0f3961b096fea933ecaa454214fd7",
        "e20a19cb541f8621f04be0f3d3501f2fc51a0e82"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Sat Aug 04 08:07:49 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 04 08:07:49 2012 -0700"
      },
      "message": "am e20a19cb: Merge \"show 3G icon for CDMA/1xRTT\"\n\n* commit \u0027e20a19cb541f8621f04be0f3d3501f2fc51a0e82\u0027:\n  show 3G icon for CDMA/1xRTT\n"
    },
    {
      "commit": "5345c310af8363948cee6a91d11add3ec51e8a9c",
      "tree": "2e4b7a1851e995541f8605dd24856bc2c6eb1bd8",
      "parents": [
        "3185b376b0b9b8c393fb8300b18df441a3481ad0",
        "3ddab0dcc1039137f05a28ff86477601a223a0fa"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri Aug 03 09:52:08 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 03 09:52:09 2012 -0700"
      },
      "message": "Merge \"Don\u0027t allow the status bar to collapse things we\u0027re touching.\" into jb-mr1-dev"
    },
    {
      "commit": "68cad3a0faf0cad9cba81a13e2cde75ca6ae528e",
      "tree": "abef61cc6b52f4e72840c5b45a490d3e151dc4c0",
      "parents": [
        "d2237dfe7d84c36e5cc9399a444f9befb559af97"
      ],
      "author": {
        "name": "Madan Ankapura",
        "email": "mankapur@sta.samsung.com",
        "time": "Thu Aug 02 19:10:22 2012 -0700"
      },
      "committer": {
        "name": "Madan Ankapura",
        "email": "mankapur@sta.samsung.com",
        "time": "Thu Aug 02 19:10:22 2012 -0700"
      },
      "message": "show 3G icon for CDMA/1xRTT\n\nwhen config_showMin3G is enabled to true in a CDMA device\n\nChange-Id: I79a4fa200dc406fc7f9f4527165046541961ef69\nSigned-off-by: Madan Ankapura \u003cmankapur@sta.samsung.com\u003e\n"
    },
    {
      "commit": "25dd892ce9dc7d83970a3aa55f25ec8e110dfe84",
      "tree": "c5eecc42a1a0d4ba59b470c7738e1d14b16559b8",
      "parents": [
        "6677951135f6062c678f98af2f8fb42f8241ae9b",
        "e1c47324fc22f86f378cb6ccc51e4554eec5156b"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 02 16:07:35 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 02 16:07:35 2012 -0700"
      },
      "message": "am e1c47324: am 9a59f6e0: Merge \"Notification panel on tablet does not handle back and home key events.\" into jb-dev\n\n* commit \u0027e1c47324fc22f86f378cb6ccc51e4554eec5156b\u0027:\n  Notification panel on tablet does not handle back and home key events.\n"
    },
    {
      "commit": "e1c47324fc22f86f378cb6ccc51e4554eec5156b",
      "tree": "45e751e352da4ab82842b43569233b8b1f099c5a",
      "parents": [
        "265eea82ae24b5620dc84fa6c51ba72aca9a1cf6",
        "9a59f6e02fdcabbf2debd5b836b01f7b22a4b21a"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 02 15:19:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 02 15:19:03 2012 -0700"
      },
      "message": "am 9a59f6e0: Merge \"Notification panel on tablet does not handle back and home key events.\" into jb-dev\n\n* commit \u00279a59f6e02fdcabbf2debd5b836b01f7b22a4b21a\u0027:\n  Notification panel on tablet does not handle back and home key events.\n"
    }
  ],
  "next": "3ddab0dcc1039137f05a28ff86477601a223a0fa"
}
