)]}'
{
  "log": [
    {
      "commit": "2200f86f800876d005f911e6864708fa9772d03a",
      "tree": "565af5fae4e434512d1a898f6dcfb94ce41628d6",
      "parents": [
        "b8a20e682d60b0cec3b9f5f6adb9a69e980a68ea"
      ],
      "author": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Oct 06 01:04:47 2014 -0400"
      },
      "committer": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Oct 08 04:01:01 2014 +0000"
      },
      "message": "All (er, L) is finally revealed.\n\nIf you exceed 20000 points, please send in a screenshot.\n\nBug: 15984887\nChange-Id: I1164160bfa8e7dca3b9e7d7ca5d50ef9abd38b61\n"
    },
    {
      "commit": "2d7576b082b84068fb9d68419b710b9bec49139b",
      "tree": "90842d7939ca423ed778ba88978b83fbe4962683",
      "parents": [
        "1e2e4307ff381e5cb9d8d19eb6a1aca763ba9415"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 03 16:26:04 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 03 16:26:04 2014 -0700"
      },
      "message": "Fix issue #17752399: Multiple apps broken by GET_TASKS permission change\n\nKeep around GET_TASKS as a permission available to apps, so apps still\nthink they have it and don\u0027t get all uppity because they don\u0027t.\n\nAdd a new REAL_GET_TASKS that is the actual permission now.\n\nPlus some temporary compatibility code until everyone can transition\nfromn GET_TASKS to REAL_GET_TASKS.\n\nChange-Id: I12c1102eed24844685dcbd2fa3b612811603958f\n"
    },
    {
      "commit": "d7bd9d61dcea7a1e7de78be6d08f0df125b8c382",
      "tree": "fbc6d80abbef11b680a65a899f3c1adab235460f",
      "parents": [
        "ee3ef2b8af94b118a91b2f7c454260d191153f7a"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Sep 23 09:25:29 2014 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Sep 23 09:25:29 2014 -0400"
      },
      "message": "Add missing permission for hotspot QS tile\n\nBug: 17589487\nChange-Id: I2461450863606758b53d4dccdaad74878909ff6d\n"
    },
    {
      "commit": "1391d8a9b32e5fe48f92831af5180e130c8f3308",
      "tree": "bf70a72fa92b3a71504831386d0adecfcf760097",
      "parents": [
        "c55214a95caf1ebd9fe37a328f7e8d36efcde7bd",
        "4455da985d4bc8b3dce8ae35deaef41049d121da"
      ],
      "author": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Sep 18 11:34:17 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 18 11:34:18 2014 +0000"
      },
      "message": "Merge \"Living with the LLand.\" into lmp-dev"
    },
    {
      "commit": "4455da985d4bc8b3dce8ae35deaef41049d121da",
      "tree": "580f0ee49195eb22773fa3f164f25bc350ac409b",
      "parents": [
        "dc524b714ee67dcd1aca42c49125f443f0e8f699"
      ],
      "author": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Sun Sep 14 16:28:58 2014 -0400"
      },
      "committer": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Sep 18 06:57:28 2014 +0000"
      },
      "message": "Living with the LLand.\n\nBug: 15984887\nChange-Id: I2a42a064587db3478d865348f860bda07217f7dd"
    },
    {
      "commit": "37e4468be1b4389794113c0a9bb6e7ef9335e400",
      "tree": "5376271f789b5b7c7a8acf4bf89b1600413bff41",
      "parents": [
        "41f766394d07d09113d2e64a6917d069d41026c6"
      ],
      "author": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Tue Sep 16 20:23:13 2014 +0200"
      },
      "committer": {
        "name": "Christoph Studer",
        "email": "chstuder@google.com",
        "time": "Wed Sep 17 13:28:46 2014 +0200"
      },
      "message": "SysUI: Add no-wallpaper recents theme for low GFX devices\n\nAlso add a config flag to control the theme to apply to RecentsActivity.\n\nBug: 17522143\nChange-Id: I8d03e84e37b77698243673f6c4e676b2c53e0d07\n"
    },
    {
      "commit": "a4e102ee580282dc7abeb22f4a025813e53b9431",
      "tree": "879e7632cbe83220696694dbcac3f39e587cd039",
      "parents": [
        "b75dd5cedd5eb83d1f9b86ad4a09a5e6ec3df537"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 04 22:52:27 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 05 18:43:43 2014 -0700"
      },
      "message": "Work on issue #17357238: Recents is often slow if not used in a while\n\nAdd a new activity attribute, resumeWhilePausing, that allows an\nactivity specifying it to immediately start running without waiting\nfor the previous activity to pause.  The recents activity is updated\nto use this.\n\nThe implementation of this is ultimately fairly simple -- if we are\nin the path of resuming such an activity, and find that we first need\nto pause the existing activity, then within the activity manager we\ndo the regular pause flow but act like it has immediately finished\npausing right then so that we can immediately go on to the resume.\nTo make this clean, we tell the activity when asking it to pause that\nit should not come back and tell us it is done, because we aren\u0027t in\nany way waiting for it.\n\nOne potentially important change I needed to make here is the pause\ncallback no longer provides the saved persistent state, because we\nnow can\u0027t count on that callback happening.  I don\u0027t think there was\nreally any utility in this anyway -- all modern apps will have their\nsave state flow happen as part of stopping, not pausing, so we\u0027ll\nonly capture that saved state when the stop is reported back anyway.\nAnd since we do send the saved state back when stopping, it would\nalways blow away whatever we had gotten at the pause.\n\nFinally, update the documentation for AppTask.startActivity(), and\nfix the implementation handling that to be cleaner -- we need to\ndeal with inTask first before getting in to \"oh noes add NEW_TASK\nif this isn\u0027t coming from a calling activity\" flow.\n\nChange-Id: Ia1da0fac90d7bdbaafdda2e34850d795ce17a39f\n"
    },
    {
      "commit": "c6eed84855e63ef023b83116eb95185816dcba5f",
      "tree": "036a552590151a12372ecf8bdae548c6c62d3420",
      "parents": [
        "6adf1588fd2bccb8cf95a9c3456230bba805fab9"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Aug 25 12:19:41 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Aug 25 14:17:27 2014 -0400"
      },
      "message": "Doze: Only doze as owner.\n\nThe SystemUI notification doze implementation needs to run in the\nmain systemui process.\n\nBug:16900344\nChange-Id: I8b21609087a4bb971bff36fb463eb2482190cd8f\n"
    },
    {
      "commit": "d86ecd26d78c7bcd7f820b9ef5e3f4c3eb037510",
      "tree": "977c5062c44726daebdd6d2803f09f8c6f77b1ba",
      "parents": [
        "804322564b1b4e4ccff0b1c8cd312bac75ec5bb0"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Aug 12 19:27:54 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Sun Aug 17 16:06:56 2014 -0700"
      },
      "message": "Add callbacks for MediaProjection start / stop.\n\nAlso, enforce that there is only one valid MediaProjection at a time.\n\nBug: 16488053\nChange-Id: Id05445d798c98cb208bc4dab186296392e15d30b\n"
    },
    {
      "commit": "cd542b8a98ea9c648622c9360c251de4be4223e4",
      "tree": "9266a6714f91fea60a1a42ef7913cf387b28b3a0",
      "parents": [
        "76a1623afc170a13923b68f3256057d8adeb7937"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Aug 12 22:25:35 2014 +0200"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Aug 12 21:04:26 2014 +0000"
      },
      "message": "Update brightness slider thumb and spacing\n\nAlso fixes a few errors in the measuring logic.\n\nBug: 15170399\nChange-Id: I7ce7edef0a08dc00ef747988cd64e40a9fbae192\n"
    },
    {
      "commit": "f25268b402b98ff3b52f6e8ce2950f5d1f8e5ae1",
      "tree": "155179f4fe78238a6ba2ea2cdcce06cdc36d7e79",
      "parents": [
        "d4c25dbe67ca1c46105d09905be7bd6fdcecf35b"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Mon Aug 11 10:43:22 2014 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Mon Aug 11 11:58:32 2014 -0700"
      },
      "message": "Updating accessibility message for Recents activity. (Bug 15570522)\n\nChange-Id: Iaaedb9a66b2160015b304863a00fbefdfb0e10ea\n"
    },
    {
      "commit": "f84bc66b21212df5402982b1c1eca615e64f7e1e",
      "tree": "dbee42820f86cb2f96558d7c40a113237ef19a74",
      "parents": [
        "ec80cd8e7c2c13123f1370edfa935115eb9a9164",
        "5a399490c2185ebfd458b1a1d9394f3a68c5fde2"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Jul 23 21:41:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 23 18:50:38 2014 +0000"
      },
      "message": "Merge \"Use activity for brightness dialog\" into lmp-dev"
    },
    {
      "commit": "464cb8fdc235500316c616848b5a67814098e616",
      "tree": "0259abf73406ef459adfa3686f0d7a10e3fe2689",
      "parents": [
        "2471498511be43f1b6023a9f9dffb5a0f36f2049",
        "51e4dc0a153bd0da197728ce6fe34df662b1cea2"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Jul 22 19:36:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jul 20 04:41:30 2014 +0000"
      },
      "message": "Merge \"Implement hotspot tile\" into lmp-dev"
    },
    {
      "commit": "51e4dc0a153bd0da197728ce6fe34df662b1cea2",
      "tree": "48d1bf1c50a20947d12d88e60107cbccd7ca5ba1",
      "parents": [
        "c79dd82e5578376a87782d648b5cff4a100555b2"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Jul 22 12:00:47 2014 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Jul 22 15:35:04 2014 -0400"
      },
      "message": "Implement hotspot tile\n\nThis tile enables/disables hotspot and will show up for 30 days\nafter hotspot is used.\n\nBug: 16234190\nChange-Id: Iceb4842e021c27c2c4c18651bccdb12957055c3d\n"
    },
    {
      "commit": "dc00cbe2c15eef5141656311a6d05c753d7c6db6",
      "tree": "93e5a2a849c76cb5dbf3143ac90efde894f49fbc",
      "parents": [
        "f14e5a2fad4660ecca43fac1cea08e35f2b82b4d"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun Jul 20 17:48:47 2014 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 22 18:13:34 2014 +0000"
      },
      "message": "Create API for launching from recents\n\nRelaunch apps from recents using the same uid and package as was used\nin the original launch.\n\nFixes bug 16358208.\n\nChange-Id: I340800bfee79926b197929360d69f1d570bbf1eb\n"
    },
    {
      "commit": "c39d47a8e7c74bd539104b0efab898ef6fc43ddf",
      "tree": "98b0c601c9d3b0249e4bd2324aa66ad138e29ad9",
      "parents": [
        "6ccb5f894e11a0ee59c0632643f265427731536e"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Jul 08 18:07:36 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Jul 17 14:30:19 2014 -0700"
      },
      "message": "Add MediaProjection APIs.\n\nThe new MediaProjection infrastructure allows the system to hand out\ntokens granting the ability to capture the screen\u0027s contents, audio,\netc. at a granular level. It\u0027s intended to be used both for screen\ncasting, via the cast APIs, as well as screen sharing via third party\napplications.\n\nThe screen sharing case is implemented, but all of audio capturing\nis still forthcoming.\n\nChange-Id: I4b24669bed7083e11413c10ed8d6b025f5375316\n"
    },
    {
      "commit": "e9c7d431da85b5bc03ecaa964d7a491b01466a99",
      "tree": "5ddbffcc63f517dd7b2c28174789b6717faa52f2",
      "parents": [
        "9d32507a8608f82d430fcaf1de0eb81de93dcdea"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Jul 17 18:27:38 2014 +0200"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Jul 17 18:31:22 2014 +0200"
      },
      "message": "QS Guest fixes\n\n- Fixes NPE when guest has not been created yet\n- Reloads pictures only when they changed\n- Adds \"Exit guest\" affordance\n\nBug: 16363920\nBug: 15759638\nChange-Id: I99ff1c4be06fee96c5169fd7c2d31b1b13f7a389\n"
    },
    {
      "commit": "5a399490c2185ebfd458b1a1d9394f3a68c5fde2",
      "tree": "f4823567419f609f8e45282ec1e0ce9107c2519a",
      "parents": [
        "a5a2cf419d72b28d0ce3948199d6f6874d6dbf9b"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Jul 14 16:19:38 2014 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Jul 14 16:20:40 2014 -0700"
      },
      "message": "Use activity for brightness dialog\n\nAlso fixes brightness controller failure to unregister callbacks.\n\nBUG: 15512088\nChange-Id: Ia665e006d93391d5a66d4ace614660c4e6d2d5b5\n"
    },
    {
      "commit": "b98f747c714ff8252471ca0a3295c2cb9ccb4f3a",
      "tree": "265dd77ba1ed887824f59d89199f4ea602135aa5",
      "parents": [
        "857025678da1e2a06ae8d7f54f0b3b4fde8fbe46"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Jul 08 17:09:42 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Jul 08 17:23:58 2014 -0400"
      },
      "message": "QS: Basic cellular data detail panel.\n\nChange-Id: I1f19a8bf3e01d7f1d49e82d7096a215c863eab61\n"
    },
    {
      "commit": "ffa2ec664479bff6b4b61d4c349d9db2cb37ca16",
      "tree": "512f872a6317f7f4e90083a56a796fb1dca21d5e",
      "parents": [
        "95f621a1a4a0891075f1f9daf8e0323aab488793"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Thu Jul 03 15:54:42 2014 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Mon Jul 07 17:33:31 2014 -0700"
      },
      "message": "Refactoring to support groups.\n\n- Removing RecentService, determining animations just in time\n- Fixing a few issues with animations of newly picked up tasks from the pool\n- Moving helper classes into sub package\n\nChange-Id: Ie10385d1f9ca79eea918b16932f56b60e2802304\n"
    },
    {
      "commit": "b83777ba5c12295224cd566bba59a44b8860e449",
      "tree": "82c04959eb37d4d72114fa1d9ab315610c2e7be0",
      "parents": [
        "f29131f7013dc0d6994556b95e74db608c89beb8"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Jun 30 15:11:53 2014 +0200"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Jul 02 12:33:36 2014 +0000"
      },
      "message": "Add flashlight to quick settings\n\nBug: 15934851\n\nChange-Id: I86f61fa11fe64e76adb032391ce7e7170f59549d\n"
    },
    {
      "commit": "eb8d1be6acad180eabde84f19196b9ecaba81353",
      "tree": "dee4cf747c488f78a1b772fb9a67f978aa2860ce",
      "parents": [
        "81af3aef9a0d015311f6c97e318c81092c74eb47"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Jun 25 17:46:15 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Jun 27 18:33:42 2014 -0400"
      },
      "message": "Add a BIND_DREAM_SERVICE signature-level permission.\n\nStarting in api 21, will be required to bind to a\ndeclared dream or doze service.\n\nAlso added to aapt dump badging output.\n\nBug:15862654\nChange-Id: Ifa0a594eeecf21e6146176c7810a847e1d08fe3b\n"
    },
    {
      "commit": "bf370992508c55d1f2493923bdc1834a0710e4ba",
      "tree": "4be1a3567ebe163297be36da5ac6d51539964922",
      "parents": [
        "828d11df52680ad75e045f5e4251311605d37af2"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Jun 17 13:58:31 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Jun 25 13:33:09 2014 -0400"
      },
      "message": "Create a basic doze dream in SystemUI.\n\nThe doze dream is not configured by default.\n\nWhen configured, the doze dream does not show anything by default.\nIt teases a dark version of the keyguard (showing only the time\nand notifications) when a notification arrives or significant motion\nis detected.\n\nBug:15863249\nChange-Id: Icfceb054d35d6fd4d9178eda7480e2464873ca4b\n"
    },
    {
      "commit": "6627ff6d9d7c8137df868b74cfb99aa1a0044575",
      "tree": "acf70e860946b3668c5ce974ce8d832ca1ef5755",
      "parents": [
        "470c1accf5a54f9844a779eafab74e63c09342b5"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri May 23 12:59:27 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri May 23 12:59:27 2014 -0400"
      },
      "message": "QuickSettings: Use connectivity manager for airplane mode.\n\nBug:15187219\nChange-Id: I8455d062a9d974a464abff3c656ca18d6da3fe9d\n"
    },
    {
      "commit": "f7bca430d9356c26d6df222d2c90bc7668262f6b",
      "tree": "b5eedce7233d680f86461839bfb1bfc2dec3b36c",
      "parents": [
        "f5e22e71cb5f8699a4312c797af068f655cbe629"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@winsonc-macpro.mtv.corp.google.com",
        "time": "Wed Apr 30 17:11:13 2014 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Fri May 02 18:45:40 2014 -0700"
      },
      "message": "Adding ability to load a search widget into Recents.\n\nChange-Id: Ie17d9b9a47c979774b39a37e87f75d9dadc79ad9\n"
    },
    {
      "commit": "d83a096f299abd9c7fe5e441ef1bb169c314b575",
      "tree": "2c3e1c45bc81fb6660fd306d71e72a1cc5775772",
      "parents": [
        "5d84bce12204072bc7ab296ce0cdea7efb5cf17c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 02 16:28:33 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 02 16:29:10 2014 -0700"
      },
      "message": "Bump up priority of system receiving BOOT_COMPLETED.\n\nChange-Id: I5166f88f11f781914312e867cb653c8ecbefa705\n"
    },
    {
      "commit": "25eb3d0ce4709688683c07ad572fdfc03dc09232",
      "tree": "cbda3823659b16f72dc48756aad5ecb133f872c6",
      "parents": [
        "307ad09228ebf70f1b456f5f00540c0126277850"
      ],
      "author": {
        "name": "Ji-Hwan Lee",
        "email": "jihwan@google.com",
        "time": "Tue Apr 22 12:39:26 2014 +0900"
      },
      "committer": {
        "name": "Ji-Hwan Lee",
        "email": "jihwan@google.com",
        "time": "Tue Apr 22 12:39:26 2014 +0900"
      },
      "message": "Add config resource for disabling KeyguardService\n\nBug: 14102545\nChange-Id: I0c7936e16a8bda98e49e6a2c396117d7a8fd5664\n"
    },
    {
      "commit": "070a0b61cd416b9d54d57bf52ba6583f9b111ee6",
      "tree": "31b6bc0929d8d155c14db488674f97de154e66ea",
      "parents": [
        "ddcb8c6562b09c07ff60a18552d9d153ae7ede09"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Apr 10 23:25:03 2014 +0200"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri Apr 11 01:36:33 2014 +0200"
      },
      "message": "Set a dark theme for SystemUI.\n\nThe default theme for the platform has changed to a\nlight variant. This puts SystemUI back in the dark.\n\nBug: 13635952\nChange-Id: I230a2078ba6bf5a79c768f0e357fcbd75f283cf8\n"
    },
    {
      "commit": "8246270b53b7b34ecd1a7697cb89afe5bfa05bcb",
      "tree": "d50fec29d516254663592f85205c3b88a13023f9",
      "parents": [
        "941177af98814fbd4ecbf5e243978a8203d29255",
        "e3c38a0b0ebefa0a86be944259467c8acc9e5e49"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Apr 02 22:43:07 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 02 22:43:07 2014 +0000"
      },
      "message": "am e3c38a0b: Fix recents theme, add missing headers\n\n* commit \u0027e3c38a0b0ebefa0a86be944259467c8acc9e5e49\u0027:\n  Fix recents theme, add missing headers\n"
    },
    {
      "commit": "e3c38a0b0ebefa0a86be944259467c8acc9e5e49",
      "tree": "ddedf421ef3fbfc6fa8e82b7d66fd180fbc9c06e",
      "parents": [
        "09ec3e30b71d0bd8d5b711ffd68fbeb27a0930fb"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Apr 02 15:39:13 2014 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Apr 02 15:39:13 2014 -0700"
      },
      "message": "Fix recents theme, add missing headers\n\nChange-Id: Ib8eea6153eaf7e0e93e54c69fe59e63e98a409a6\n"
    },
    {
      "commit": "3a3395042e51e1f2ade01cf1225df356e63cc27d",
      "tree": "3b7cf106523102febcb47315799e2e4210bf234b",
      "parents": [
        "6ec89da16e983d7e879d530098c8cac0b757fd49",
        "b325345ef0adf2849350d339de1ec5f92b67b7ae"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Apr 02 22:18:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 02 22:18:59 2014 +0000"
      },
      "message": "am b325345e: Merge \"Switch framework Holo references to Quantum.Light\"\n\n* commit \u0027b325345ef0adf2849350d339de1ec5f92b67b7ae\u0027:\n  Switch framework Holo references to Quantum.Light\n"
    },
    {
      "commit": "ae6ffcc3c74d12ebf59a26cce24d04fdd2b56f4e",
      "tree": "b7e205cea9805bf2c79b4073a267cf3d75c63e66",
      "parents": [
        "ab6e1116340277bcb10637c44335cab37871d8ce",
        "cff0acb6b1eea23c3f44a078a0a5e81c11faea35"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Wed Apr 02 21:22:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 02 21:22:59 2014 +0000"
      },
      "message": "Merge \"Wait for Keyguard to be drawn after boot.\" into master-lockscreen-dev"
    },
    {
      "commit": "cff0acb6b1eea23c3f44a078a0a5e81c11faea35",
      "tree": "900f324f271f8cfceccdc64575333b9aca15cbf1",
      "parents": [
        "8533b95b4c217c588bddfbc1e57051377d963cc0"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Mon Mar 31 16:35:15 2014 +0200"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Wed Apr 02 22:11:19 2014 +0200"
      },
      "message": "Wait for Keyguard to be drawn after boot.\n\nThe old logic with waiting for the Keyguard to be drawn assumed that\nit is in an own window, and just checked for the visibility. This is\nno longer possible as the Keyguard is in the status bar, and the status\nbar might have been drawn without the Keyguard. So we have to wait\nexplicitely until Keyguard told PhoneWindowManager that it has now been\ndrawn and we can turn on the screen.\n\nIn addition, the starting logic of SystemUI is moved into\nSystemUIApplication such the we can make sure that the status bar\nalready exists when the callbacks from PhoneWindowManager reach\nKeyguardService. This simplifies the logic a lot.\n\nBug: 13635952\nChange-Id: Ifd6ba795647edcf3501641e39052e4d04bc826fb\n"
    },
    {
      "commit": "6259933ec99dee566f200c5fdfe1756ee72b1513",
      "tree": "78196ea29921d4331a576922a564568f6894a207",
      "parents": [
        "6f127c9b6c249ca1cd17c07a8476edd0fcc1f04d"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Apr 01 14:57:39 2014 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Apr 01 14:57:39 2014 -0700"
      },
      "message": "Switch framework Holo references to Quantum.Light\n\nChange-Id: Ib545a143f1959b6104adbc9d594dd626851d90b3\n"
    },
    {
      "commit": "e111c73205e6c073e76b9792d545f0f4b328e7a2",
      "tree": "8a0ca1b9a9bb1d2564d6237e8dd5b2d9f065fd63",
      "parents": [
        "b4b159d2552dc4eeffda896d7f8ce536bf9a7132"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Mon Mar 31 22:50:13 2014 +0200"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Mon Mar 31 22:50:13 2014 +0200"
      },
      "message": "Add missing permission to SystemUI package.\n\nBug: 13635952\nChange-Id: I09f7533e59d39b1653a44552fcbe05b0dbde828a\n"
    },
    {
      "commit": "5cf17879a31b7b78c09ec50b727f921840dcf783",
      "tree": "0e3d1a52b1c275676c80c6f90dd516a4d8e292cb",
      "parents": [
        "085226c40f21a4467f047b901c7640e2215828d8"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Wed Mar 26 18:31:48 2014 +0100"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Mon Mar 31 20:58:31 2014 +0200"
      },
      "message": "Reuse KeyguardViewMediator for new Keyguard implementation.\n\nThis change reuses KeyguardViewMediator for the new Keyguard\nimplementation in status bar. KeyguardViewManager is replaced by\nStatusBarKeyguardManager which handles adding the view, setting the\nstate etc. StatusBarWindowManager is introduced to managed the window\nof the status bar, which has the logic of both the old Keyguard window\nand the old status bar window. In the current implementation, Keyguard\ngets displayed like it would be in the bouncer state, but that\u0027s likely\nto change in the future. Also, setHidden in IKeyguardService is also\nrenamed to setOccluded, as the word hidden interferes with the\nterminology when dismissing the Keyguard.\n\nBug: 13635952\nChange-Id: I1c5d5a49d810d8532089f464cb2efe35e577f517\n"
    },
    {
      "commit": "380ecb81db52a9d0197ca969951d07b91c20d2b9",
      "tree": "753915d98f530e97095dc9f3c95dba67d3fadfb5",
      "parents": [
        "ca4761661a41fc0750a2bc5e7c90481216e626c3"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Mar 14 17:25:20 2014 +0100"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Mar 28 22:35:03 2014 +0100"
      },
      "message": "Make Keyguard a library and make StatusBar the new Keyguard.\n\nThis change achieves a couple of things:\n- Let Keyguard be a library, so we can use it in SystemUI.\n- Introduce FLAG_KEYGUARD for windows and deprecate TYPE_KEYGUARD. Make\nall the TYPE_KEYGUARD behaviour dependant on the flag.\n- Implement a new KeyguardService in SystemUI, and bind that service\nfrom PhoneWindowManager.\n- Introduce BaseStatusBar.setKeyguardState and inflate\nKeyguardSimpleHostView there and use FLAG_KEYGUARD for the window, such\nthat the status bar window essentially gets the Keyguard.\n\nBug: 13635952\nChange-Id: I059d80d8b9b9818a778ab685f4672ea2694def63\n"
    },
    {
      "commit": "303e1ff1fec8b240b587bb18b981247a99833aa8",
      "tree": "277b80ed79659b89d26ce701af9d60593f3b2d9d",
      "parents": [
        "4cfde32ff0105d7c8a4743e084f1c9775f4c6b5c"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Fri Mar 07 15:06:19 2014 -0800"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue Mar 11 12:03:08 2014 -0700"
      },
      "message": "Initial changes for recents.\n\nChange-Id: Ide2c202b4a5b25410f0f32bd0a81ccf817ede38f\n"
    },
    {
      "commit": "af574183c274f51d04487a9c8355e9f34a1150f2",
      "tree": "c325b02a379f86bc9d8eb42b0bb5d8b700cc80bb",
      "parents": [
        "1907c0d280d97776708810c9d24931aa6f818790"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 14 18:16:08 2013 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 15 00:29:43 2013 -0800"
      },
      "message": "Disallow applications from initiating cast screen.\n\nOnly allow the system ui and settings to connect to a remote display.\nTo do this, we essentially hide the remote displays from applications\nby using the ROUTE_TYPE_REMOTE_DISPLAY then add permission checks\naround the operations that connect to them.\n\nAs a bonus, this may actually save power on devices since applications\nthat use MediaRouter will not longer be performing discover on\nremote display routes at all.\n\nBug: 11257292\nChange-Id: I9ea8c568df4df5a0f0cf3d0f11b39c87e2110795\n"
    },
    {
      "commit": "f9f63355e3f05186a3652c0ef3f0039ed97db918",
      "tree": "744c29bdac3398ef9c77ccccc0a2b812781afb8f",
      "parents": [
        "dd73ee4d0a33aa9a423b80471aec6d1ec81a6c82"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Oct 15 00:17:25 2013 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Oct 15 00:34:10 2013 -0400"
      },
      "message": "Put DessertCase on a diet.\n\n- store desserts as ALPHA_8, saving 75% of bitmap memory\n- run DessertCase in its own process, avoiding bloating\n  systemui every time the daydream or platlogo activity run\n- lock orientation in DessertCase to stop thrashing around\n  when the device is rotated\n\nBug: 10918599\nChange-Id: Ia2fb0696b903ae355c75b53d3a0c45b70784d00c\n"
    },
    {
      "commit": "8475a74bdd9d6e1520fe66cdffb7b07c19c736e0",
      "tree": "b26487332e6ca12afbe16858a59626be68e0624c",
      "parents": [
        "c31f118825778cff15a1c1b9d1171f2ad178a013"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Sep 26 00:24:57 2013 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Sep 26 15:51:45 2013 -0400"
      },
      "message": "Would you like a dessert?\n\nFeel free to browse our lovely dessert case. You\u0027re sure to\nfind something to your liking; we have many familiar\nfavorites, as well as some rather rare and exotic pastries.\n\nBug: 10240151\nChange-Id: I0f423e5993c049409d89b6be304f57a86974f15a\n"
    },
    {
      "commit": "caf24fc2c4bb9747eb80138bf3ce0be067851749",
      "tree": "a81859dd75a9ca17e752c32f1ecf0b40a62df1bd",
      "parents": [
        "f429247867ac524cf63bc01499ac47a90ebcaca9"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Sep 10 18:37:01 2013 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Sep 19 17:14:59 2013 -0700"
      },
      "message": "Add camera affordance to navigation bar on phones\n\nThis adds a camera button on phones that can be used to show\nand launch the camera.\n\n- Minor refactoring of touch event dispatch in PagedView.\n- Disables usability hints when keyguard loads.\n- Only add a touch handler for camera icon once during layout.\n- Update after review.\n- Updated with latest UX camera and camera background assets\n\nChange-Id: I09cd5cb0e501fd0f4659bea96d00c92b07f805c4\n"
    },
    {
      "commit": "a30b7035cec9d6d2bfc6a48889dc803695b26f36",
      "tree": "824c23bae522a709884614313a18011ae94c4810",
      "parents": [
        "7c0e2122c0e9bcb83c082156d5f5300b7f62169b"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Sep 16 10:16:49 2013 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Sep 16 11:19:15 2013 -0400"
      },
      "message": "Fix RenderScript crash.\n\nAlso lay the groundwork for a future checkin.\n\nBug: 10240151\nBug: 10505742\nChange-Id: I62d61c9048188c93863c8c43839e713b75a65102\n"
    },
    {
      "commit": "c750c1fb83fbdec895e236dda7207db4da14ec49",
      "tree": "0b853aa47bad8e6dd2c3eafd1f1bd7437768d170",
      "parents": [
        "4104d3295203d8a1f2d15d572293fdc1171631c6"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 08 12:56:57 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 08 14:06:25 2013 -0700"
      },
      "message": "Update gps status icon to be a \"high power\" location icon.\nMove icon to right side of the screen and synchronize status with\nAppOpsManager.OP_MONITOR_HIGH_POWER_LOCATION.\n\nChange-Id: Iea2570501cb18be0489669fd4ea240dc63f9567a\n"
    },
    {
      "commit": "06c0e408c4f06fdb9a5785baebeb293391711e65",
      "tree": "892bccd04091c2921bbee28c628bb9923135413f",
      "parents": [
        "e9a6f9713ca48aab9a6c87e0645cb0a0af946a11"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 08 10:40:34 2013 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 08 12:03:38 2013 -0400"
      },
      "message": "OK, now it\u0027s a release.\n\nBug: 10239687\nChange-Id: I38a86926f32e5877cd47ae5e4b625a811478aadc\n"
    },
    {
      "commit": "c44f7a251a1e4480804dee4987ce9b6237f28a7d",
      "tree": "6b3a5a5207a2888c49bf25f2a1dca16a1cb7fd92",
      "parents": [
        "38b2322567e2407753cc9a4bed626b3cc47ccece"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Wed May 22 08:54:56 2013 +0900"
      },
      "committer": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Mon Jul 08 18:14:40 2013 +0900"
      },
      "message": "Fix an issue on hardcoded alarm settings intent\n\nThis change fixes a TODO to fix the behavior that the quick settings directly specifies a class of AOSP desk clock.\nCurrently the quick settings can\u0027t work with other alarm clocks and that\u0027s fixed by calling \"android.intent.action.SET_ALARM\" instead.\n\nChange-Id: I028b8a320e945921c096fdc776b52441e7d07202\n"
    },
    {
      "commit": "bf991a8f426921c26e21e54e493781e1d5eb39ff",
      "tree": "cbcd84bcb2eb4d601eac3d7a1a5b57ab7a1ddb41",
      "parents": [
        "73cbbc3d6405120de8f5bd150d75ab7ace8b6b14"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Jun 24 14:20:23 2013 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Jun 25 10:21:11 2013 -0400"
      },
      "message": "Move battery stats call from SystemUI to system server.\n\nThe UPDATE_DEVICE_STATS permission is no longer required in sysui.\n\nChange-Id: Icc3120b7873563e3727e56bed9f3b4767da0606d\n"
    },
    {
      "commit": "5ecd81154fa039961f65bb4e36d18ac555b0d1d6",
      "tree": "ce0d9d0e4ade28d865fb5005fa03fed78ad9ff91",
      "parents": [
        "25a272a9f6323f6a3513bb522d45e839449878ce"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jan 09 18:50:26 2013 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Feb 27 17:27:53 2013 -0800"
      },
      "message": "Move keyguard to its own process.\n\nThis is in preparation to moving keyguard into its own process.\n\nMoved keyguard source and resources into new .apk.\n\nGot basic test app working.  Still need to implement MockPatternUtils\nand means to pass it into KeyguardService with local binder interface.\n\nAdded new ACCESS_KEYGUARD_SECURE_STORAGE permission.\n\nTemporarily disabled USER_PRESENT broadcast.\n\nRemove unintentional whitespace changes in PhoneWindowManager, etc.\n\nCheckpoint basic working version.\n\nMove to systemui process.\n\nSynchronize with TOT.\n\nSync with recent user API changes.\n\nFix bug with returing interface instead of stub for IKeyguardResult.  Create KeyguardServiceDelegate to allow\nfor runtime-selectable local or remote interface.\n\nMore keyguard crash robustness.\n\nKeyguard crash recovery working.  Currently fails safe (locked).\n\nFix selector view which was still using frameworks resources.\n\nRemove more references to internal framework variables.  Use aliases for those we should move but\ncurrently have dependencies.\n\nAllow runtime switching between service and local mode.\n\nFix layout issue on tablets where orientation was reading the incorrect constant\nfrom the framework.  Remove more framework dependencies.\n\nFix PIN keyboard input.\n\nRemove unnecessary copy of orientation attrs.\n\nRemove unused user selector widget and attempt to get multi user working again.\n\nFix multi-user avatar icon by grabbing it from UserManager rather than directly since\nkeyguard can no longer read it.\n\nMerge with AppWidget userId changes in master.\n\nChange-Id: I254d6fc6423ae40f6d7fef50aead4caa701e5ad2\n"
    },
    {
      "commit": "a2c73ae96925ab782e6515fa91dd3613025abe9f",
      "tree": "ddaee6eec915c85e16316476b3b27518f4b4aecd",
      "parents": [
        "736ef1e9dedbdd0c24e27f170034f2f869fd083f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 19 13:01:35 2013 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 19 13:01:35 2013 -0800"
      },
      "message": "Add DUMP permission to SystemUI for bugreports.\n\nBug: 8223786\nChange-Id: Ie91167eaaa299fb7f0affa386407765efe4965a4\n"
    },
    {
      "commit": "f9c5e0fe837a3090820da502ecaabc5accc00ace",
      "tree": "bbc72079c958f69d9906f4a4ae803dd88fcf8083",
      "parents": [
        "cc7433470f00fac3bbe7835de3ded4b9bf121244"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 14:39:13 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 14:39:13 2013 -0800"
      },
      "message": "Add new API to propagate contextual data to the assist action\n\nWhen launching an assist, we have a new API allowing the\ncurrent foreground activity/application to provide additional\narbitrary contextual information that is stuffed in the\nassist intent before it is launched.\n\nChange-Id: I0b2a6f5a266dc42cc0175327fa76774f814af3b4\n"
    },
    {
      "commit": "8afcd149970c79054a3a16377834aa0aec35eee0",
      "tree": "895b157fd2b52bf47b67cb610c73a621746d8b7d",
      "parents": [
        "f50a37d30288aae5c05ef1cf266ed11772ca727e"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Jul 27 18:27:11 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Dec 17 17:03:09 2012 -0800"
      },
      "message": "Make SystemUI RTL aware\n\n- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)\n\nChange-Id: Ica88ed68f893d5272691a9207788b65623849dee\n"
    },
    {
      "commit": "b055aa8ec000fd62e4ce6456eac277463aacd7d2",
      "tree": "fef909eb3cc382b7be63d76605a35389adfb82a2",
      "parents": [
        "33c0a616dbd284b47cc8e6af2eec358fba7c701f"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Oct 26 15:11:53 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Oct 26 15:13:57 2012 -0400"
      },
      "message": "Final icon for (Day)dreams.\n\nBug: 7395321\nChange-Id: I20ec252a1bf69664a6687016d281ad680d76a48f\n"
    },
    {
      "commit": "bd9cafa433f068335e37a60a7f44bd40ecab2f95",
      "tree": "2d2be900aac758b820bb4987e2c309d062010b32",
      "parents": [
        "39c6526249a27b9dd9252910adecf8353b0792f0"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Oct 23 01:21:33 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Oct 23 01:21:33 2012 -0400"
      },
      "message": "Dreams/Sleep Mode is now Daydreams.\n\nBug: 7395321\nChange-Id: I3173cd9205df94217911a2d432d1be1db9e3d539\n"
    },
    {
      "commit": "e9687ba8bdccc27f98fe1dcdc48faac0c0de4c18",
      "tree": "a3cecc7bed992a1cc9ee154110258d945a4e215a",
      "parents": [
        "80343f646f9686528212f82163a77ef48e30f4c3",
        "738cfc91053fc888397ec2d139e0798f8c95b3ca"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Oct 19 09:06:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 19 09:06:49 2012 -0700"
      },
      "message": "Merge \"Fixing wallpaper flash when going in/out of Recents\" into jb-mr1-dev"
    },
    {
      "commit": "738cfc91053fc888397ec2d139e0798f8c95b3ca",
      "tree": "51b877a628e05640cebc24d2bb2d12d2ad7fc110",
      "parents": [
        "a1f739ea83b6d770b8469ae1c2c4161f6fe96334"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Oct 19 14:56:47 2012 +0200"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Oct 19 16:58:50 2012 +0200"
      },
      "message": "Fixing wallpaper flash when going in/out of Recents\n\nBug: 7372516\nBug: 7216872\n\nChange-Id: I2a2308a85caf9f2ad2d382c709e5f8867bd060be"
    },
    {
      "commit": "80343f646f9686528212f82163a77ef48e30f4c3",
      "tree": "bda2f668cb7fbf2b4efcbfd4e44d7bfb02a9630d",
      "parents": [
        "a1f739ea83b6d770b8469ae1c2c4161f6fe96334"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu Oct 18 13:13:46 2012 +0200"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Oct 19 16:50:29 2012 +0200"
      },
      "message": "Fix recents animations for secondary users\n\nBug: 7361640\n\nChange-Id: Ibd177bf01758fb8706b82dcf3bf234e052c38aa3"
    },
    {
      "commit": "d7059dfb9b9d6540c4b2765558e8ca4784c4ef6e",
      "tree": "aae1a0977863b411eb115e34d12cd71154880578",
      "parents": [
        "3b9e7f32380e179aa1e0718762e86ffa24cbab93"
      ],
      "author": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Tue Oct 09 17:40:52 2012 -0700"
      },
      "committer": {
        "name": "Casey Burkhardt",
        "email": "caseyburkhardt@google.com",
        "time": "Tue Oct 09 17:53:21 2012 -0700"
      },
      "message": "Properly label RecentsActivity for accessibility.\nBug: 7229886\n\nChange-Id: I440c7e9b9ef3272e287d5d4d58bcfc0e8d0735ac\n"
    },
    {
      "commit": "af3f32d9a460b663d8f757f771cb220cc78b190a",
      "tree": "0b9268bc4f5056ac7de63841914e09dd54a70709",
      "parents": [
        "1ad0fd9c04ae2e352c59129b979145e662f25cbc"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Sun Oct 07 15:02:34 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Sun Oct 07 15:03:42 2012 -0400"
      },
      "message": "New icon for \"Sleep now.\"\n\nShould only be shown in the docking intent chooser, but if\nyou use AnyCut to link to the Somnambulator you\u0027ll see it\nthere as well.\n\nBug: 7267723\nChange-Id: I4be7572e4785f35b4ac1ad91d03a617d5d2fe3c1\n"
    },
    {
      "commit": "7aa88f7aad3ec0c1345e84e1fbf8ee54115b2b17",
      "tree": "bc388ba55b8115229595b1f4c826b9eba5ec6639",
      "parents": [
        "ebf7e2851cab55348153fca299c52042b125924d"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Oct 04 15:03:22 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Oct 04 15:03:22 2012 -0400"
      },
      "message": "Remove Start Dreaming^W^W Sleep Now 1x1 widget.\n\nIf you need its functionality for testing:\n\n  $ adb shell am start -n com.android.systemui/.Somnambulator\n\nBug: 7267723\nChange-Id: I9e0dd9d020e251d1ced4377329436ea46c3a8af5\n"
    },
    {
      "commit": "be87e2f5885b28145a788fd31d1fb5ae88a71100",
      "tree": "e589ae24e57db702157f7fcd390335049eabf0ea",
      "parents": [
        "106a69271dd303baae1c428e269e1ec62994ff57"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 28 16:31:34 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 28 17:42:39 2012 -0700"
      },
      "message": "Fix issue #7255954: API Review: rename Dream to DreamService\n\nChange-Id: I89ecf2c3ec4fef09c0495aa68de11576f9cfd872\n"
    },
    {
      "commit": "3ff8e1a80058e5557d13693d3223e1aa011c0038",
      "tree": "62d3c43fa2261c2aec17b76f08b7c8cc784c81fc",
      "parents": [
        "1d3527354396d3aa48b494fb409d680cce32dc8b",
        "d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 28 15:53:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 28 15:54:44 2012 -0700"
      },
      "message": "Merge \"Fix issue #7211769 and #7244492, thrash around on #7226656.\" into jb-mr1-dev"
    },
    {
      "commit": "d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1",
      "tree": "874663abeb7379376c3deeb68081606e6f62d8d3",
      "parents": [
        "97298cdcc0e699912288191c28bebe895759e75e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 27 23:20:10 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 28 15:37:22 2012 -0700"
      },
      "message": "Fix issue #7211769 and #7244492, thrash around on #7226656.\n\nIssue #7211769: Crash dialog from background user has non-working \"report\"\n\nThe report button now launches the issue reporter for the correct user.\nAlso for crashes on background users, either disable the report button,\nor simply don\u0027t show the dialog depending on the build config.\n\nIssue #7244492: Bugreport button in Quick Settings doesn\u0027t actually do anything\n\nNow they do.\n\nIssue #7226656: second user seeing primary user\u0027s apps\n\nI haven\u0027t had any success at reproducing this.  I have tried to tighten up\nthe path where we create the user to ensure nothing could cause the\nuser\u0027s applications to be accessed before the user it fully created and thus\nmake them installed...  but I can\u0027t convince myself that is the actual problem.\n\nAlso tightened up the user switch code to use forground broadcasts for all\nof the updates about the switch (since this is really a foreground operation),\nadded a facility to have BOOT_COMPELTED broadcasts not get launched for\nsecondary users and use that on a few key system receivers, fixed some debug\noutput.\n\nChange-Id: Iadf8f8e4878a86def2e495e9d0dc40c4fb347021\n"
    },
    {
      "commit": "3a12029a3bb6a6d59b3ab65fa923ce96f9f15c26",
      "tree": "3c8989c33d4c825fa0b6812f05e344be09193af2",
      "parents": [
        "13701b50f533775fd7a547fd0e479c1ec9035ce8"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Sep 28 11:28:09 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Sep 28 11:41:41 2012 -0400"
      },
      "message": "Add the SystemUI\u0027s dream-starter as a DESK_DOCK app.\n\nThe circle is complete: dock mode is back, and it will\nlaunch Dreams by default.\n\nBug: 7163049\nChange-Id: I3c681ac701d65b03f882d92d06389d4528e34747\n"
    },
    {
      "commit": "65c4a2b26cd8776b0927e9b0e07ecf53bd31b627",
      "tree": "7dbd0b29b66336c738a0c599335ad70bb86ba4a2",
      "parents": [
        "5e21bf934b2a71b595deb9856a2044eea4dbce86"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 25 17:22:27 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Sep 26 10:49:35 2012 -0700"
      },
      "message": "Multi-user ringtone playback.\n\nChange RingtonePlayer to open content:// Uris based on requesting\nUserHandle.  Grant SystemUI visibility to all emulated storage so\nit can play ringtones for apps without READ_EXTERNAL_STORAGE.\n\nResolve canonical file:// Uris before passing out of source app,\nreplacing any /emulated_legacy/-style paths with user-specific\nvariant so they can be opened by SystemUI.  Calling for RemoteViews,\nRingtones, and Notifications.\n\nBug: 7202982\nChange-Id: Ibf0eca8df80c1486711144a7b648f464aadfe099\n"
    },
    {
      "commit": "f4f6b4c8b0fcf77d46567f13b409255948fe107b",
      "tree": "245e81a594160905fbaf8e3933f99c9b679d0388",
      "parents": [
        "5d1a870a25f7495755432a42cf8c81818dc369fa"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sat Aug 25 12:08:03 2012 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Sep 19 17:36:50 2012 -0400"
      },
      "message": "Fire \"dreaming started\" and \"dreaming stopped\" broadcasts.\n\nDream manager now fires broadcast intents when entering + exiting\ndreamland (except when testing).\n\nPower manager can now listen for dreams ending, using polling only\nas a backstop.\n\nAlso:\n - Bullet-proof dream-manager/dream against known failure modes\n - Add new read/write dream permissions\n - Refactor dream-manager to delegate work + state management into\n   a new DreamController class, via a handler\n\nBug:6999949\nBug:7152024\nChange-Id: I986bb7812209d8c95ae1d660a5eee5998a7b08b1\n"
    },
    {
      "commit": "08b1cc847524f66fd1d8c8d9065bf81bdd1fb04a",
      "tree": "f0e4065c9cf0fe7582f12d6f32d84f7365712392",
      "parents": [
        "e641b6a99cabad7076e10694a5b1b30f449de462"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue Sep 11 10:00:53 2012 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue Sep 11 10:01:24 2012 -0700"
      },
      "message": "Fixing issue with Airplane Mode. (Bug 7141144)\n\nChange-Id: I83e2bdd5e8b0e0c732e8d46c47f8619daa0c7c02\n"
    },
    {
      "commit": "508257bdfcd6cd3a85e55eb7addaf7eb43a61618",
      "tree": "c277f17ed2446ffca896b232c4a45f4a8993923b",
      "parents": [
        "180bbc71810496e280e9993177bfeddb3ad1f558"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 23:15:12 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Sep 08 23:15:12 2012 -0700"
      },
      "message": "Add skeleton Wifi-Display tile in QS.\n\nPop up a little dialog when the tile is touched with options\nto connect, scan and disconnect.\n\nChange-Id: Ic9e28344899310692ace36c322974df175f82e08\n"
    },
    {
      "commit": "d63c59786509aadd6a8d0c5cb45ed696339f16b7",
      "tree": "dc41766c4f2a171e8799ebf4ff227771d9393953",
      "parents": [
        "4319079375ef49668ea88e74fb899275d6bbdb19"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Sep 05 17:34:41 2012 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Sat Sep 08 15:55:31 2012 -0700"
      },
      "message": "Initial changes to add QuickSettings.\n\nChange-Id: If510f74d6046929e5e8a794c6dc2fddb15a03d6b\n"
    },
    {
      "commit": "32f6fd55b1bcabc97945827d88d60ba48edf1a40",
      "tree": "2ca9ee3ce48316398cf5d61de6c49f4a2920c117",
      "parents": [
        "5830cb2882b38182f414423ae1bc901cc27767cc"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Sep 06 01:22:59 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Sep 06 11:52:10 2012 -0400"
      },
      "message": "New \"Start dreams\" launcher shortcut.\n\nChange-Id: Ice46fc8b99dae615e421ccf4eb6ca6f2a76cbe5f\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "cb1aec3403115467d1298fcabd45137eb483a1fe",
      "tree": "ef6c9ffdc04a883bae6a9b93ce751a5680d124d7",
      "parents": [
        "3ee47ae7ee0d0afc0a2bbe71636c31483b5502cd"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jul 25 11:00:49 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jul 25 11:00:49 2012 -0400"
      },
      "message": "Remove old unused DreamsDockLauncher.\n\nBug: 6802065\nChange-Id: I403b02ca7c78bb90eed712b3b6f846a4a6d68f8b\n"
    },
    {
      "commit": "aa0a3b692337ec8b6431e8d046ea01f042157334",
      "tree": "d3cf78381880e3e2d5d36ea3dabdc95513966d9c",
      "parents": [
        "ed82973e616b1cbcab873dfb9c0191e63b34c821"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed May 23 00:49:48 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed May 23 01:38:26 2012 -0400"
      },
      "message": "Stop animating when not showing.\n\nWe were eating too many jelly beans even when the screen was\noff.\n\nAlso clean up touch offsets, rotation on fling, and main\nplatlogo asset.\n\nBug: 6541052\nChange-Id: I34e49b8b7a95ce6daab929885130426a5ae58dc4\n"
    },
    {
      "commit": "64fffadf00918e9ffaee1bdfe01ed389145e0821",
      "tree": "15047cce4d3247f4126b1ea22c6370209a8e7523",
      "parents": [
        "a4c1b0a7ca48c0b9fcc0a4af393faf64d0a16b91"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu May 17 17:01:15 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu May 17 17:01:15 2012 -0700"
      },
      "message": "Fix 6398209: Re-enable vibrate for search gesture.\n\nChange-Id: Iabcfa21aae05fa55ec3fdc76eeed76577b962de5\n"
    },
    {
      "commit": "1a0c9145dc32095acc250bdabc4a9b8f82d6bd3e",
      "tree": "3746fc6c83b73493a5580853fd7251addcc22922",
      "parents": [
        "a25079e6bafcfd77135a852f0e838738d80606ef"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon May 07 16:09:10 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu May 10 11:25:34 2012 -0400"
      },
      "message": "Ice cream is SO over.\n\nChange-Id: I4039b7fe41dc4a498d53e21dbcafb2bc2ac15b92\n"
    },
    {
      "commit": "0f5985c1da4793286b75e09bc0ef2377c5ecadf3",
      "tree": "41417690c8cfa4ec1a8f9e742ce788312c247246",
      "parents": [
        "6dbac3798128574accff64a9a2b00b2176058898"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue May 01 15:42:56 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue May 01 15:43:32 2012 -0400"
      },
      "message": "Add MASTER_CLEAR perm to SystemUI for SD card formatting.\n\nBug: 6422105\nChange-Id: Ic6e2aef5f6cdc14c2bace54ddfce1181bf8bdef3\n"
    },
    {
      "commit": "e6b65338110622085f4a1098f0dfb643ea7bd0a7",
      "tree": "298e129bb30cdc16a024fef9b40cba0ebc9fd77c",
      "parents": [
        "1e945c4fda0242e8ae02ccb7a2262556f41b42cc"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 30 17:14:51 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 30 17:15:36 2012 -0700"
      },
      "message": "Add permission for NetworkOverLimitActivity.\n\nBug: 6421080\nChange-Id: Icefdf3da7a4a421d27aa1449ac01ea8ae1451d49\n"
    },
    {
      "commit": "098d580cc2bb6c0891c756a4e5230c6c6b0d2376",
      "tree": "bd5ae0f9e87a5516e8c481cebc54321272152491",
      "parents": [
        "f5d70fd2add31cdb2e4ca1e931b47db95fa4b3e0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 26 17:30:34 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Apr 27 14:15:05 2012 -0700"
      },
      "message": "Migrate ringtone playback to SystemUI.\n\nIntroduce IRingtonePlayer, which handles playback for both Ringtone\nobjects and Notifications. SystemUI now hosts this player, which it\nregisters with AudioService. It also keeps MediaPlayer instances\nwarm, and cleans them up after stop() or Binder death.\n\nMove both Ringtone and NotificationManagerService to play back audio\nthrough this new interface.\n\nBug: 6376128, 6350773\nChange-Id: I1dcb86d16ee3c4f07cdb2248d33dcff4ead3609a\n"
    },
    {
      "commit": "442456a69861f9c0ee1262f6455f7a5e1ec64b01",
      "tree": "12931b4af175d8b7c6951a1661007243bd95d85d",
      "parents": [
        "c3742a18a6106f9c61eba16b00d15efa88f6f51a",
        "af772be33caba9709b7c4c52c9a7182bf0fc3a03"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Apr 24 16:14:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 24 16:14:46 2012 -0700"
      },
      "message": "Merge \"Permission to show battery alert windows.\""
    },
    {
      "commit": "af772be33caba9709b7c4c52c9a7182bf0fc3a03",
      "tree": "1b9bbde53f1371c1ebf6c59518f5ae50f2dd37e0",
      "parents": [
        "d776f617f5ad8052245e173602a7b80703f5fb39"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Apr 24 16:13:17 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Apr 24 16:13:17 2012 -0700"
      },
      "message": "Permission to show battery alert windows.\n\nBug: 6388558\nChange-Id: Icf584b6bc62616a395ac14a577d98ea1daaed0e4\n"
    },
    {
      "commit": "8238e717df4bc5eebf15f97172d68af3599a95bb",
      "tree": "4664ed873e578b791f2342d47aae62fe34eddb0f",
      "parents": [
        "fd135bc809589d4cadcdbcc7ececaf2d9d0969cf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 24 11:15:40 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 24 14:27:02 2012 -0700"
      },
      "message": "Add new signature-level permission to get details of tasks.\n\nThird party apps now can\u0027t get access to the extras of the\nintents associated with tasks, to keep private data in them\nfrom leaking out.\n\nChange-Id: I95af9e181ac42557bc8b981807e7ddd266a88d0e\n"
    },
    {
      "commit": "81d94335fbe7fde63f9e382be1ec74d3d09b99fe",
      "tree": "9c35325a648523b4cdfa70c08eb3481e9e17413c",
      "parents": [
        "f913d002a64b9d124ef54f3b71bcd13f4a6c2768"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 23 13:32:00 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 23 13:32:00 2012 -0700"
      },
      "message": "Grant external storage permissions to SystemUI.\n\nUsed for taking screenshots and playing notification ringtones.\n\nBug: 6381589\nChange-Id: Ib1a5ad17edbeab984bbab25168d81eb99deba952\n"
    },
    {
      "commit": "35be7560300a97fc3675bdd325910f28827d9508",
      "tree": "03b5e5fe2e4236661e55f46d24c2e388e7a98e07",
      "parents": [
        "1b965941713a395dc8003cf8ee29a40f92dd77aa"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 18 19:16:15 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 19 11:54:34 2012 -0700"
      },
      "message": "Move SystemUI out of system UID.\n\nAdd permissions for various things it pokes.  Create new permission\nto control launching non-exported activities from recents.  Hidden\nAPI to relax WallpaperService checks.\n\nChange-Id: I547fdcd7c213dd153ae101533ce7c56cd8f86a0d\n"
    },
    {
      "commit": "8c54182f0b6c706adc6247d6f1da7147b357920d",
      "tree": "ed0fff122a76ce8f5c892e4dc15de93999e207fd",
      "parents": [
        "70bded0ab8390cb53342f1fb1f1ff9ee56f60e5f",
        "c992087d09363d61f68af2f24342003b97ba48be"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Nov 17 19:44:14 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 17 19:44:14 2011 -0800"
      },
      "message": "Merge \"Fix bug 5614962 - Constant spinning wheel in USB Mass Storage screen (UX)\" into ics-mr1"
    },
    {
      "commit": "c992087d09363d61f68af2f24342003b97ba48be",
      "tree": "039904949fca7b11c6c1abc1fe000dada37a3125",
      "parents": [
        "de8c5ec88982b836b2c50d4f685f4e05b29bdd0d"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Nov 17 17:59:43 2011 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Nov 17 18:01:07 2011 -0800"
      },
      "message": "Fix bug 5614962 - Constant spinning wheel in USB Mass Storage screen (UX)\n\nDisable the window-level progress spinner; another is already shown while\nconnecting.\n\nUse the correct Settings icon for SystemUI.\n\nSpecify the activity title for the USB mass storage screen in the\nmanifest to avoid title flashing during startup.\n\nChange-Id: Ic57af56bf1661a5eaa91fff77471dc8447340d16\n"
    },
    {
      "commit": "532a0bbfa49929cc3b7a173aaf25e119765d0bd0",
      "tree": "d9b7032e2fcc197906583c2758c838ddd60b2f57",
      "parents": [
        "11ddf533a2165ca68002d3b48e312271b3d0dedb"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Nov 16 11:10:22 2011 -0800"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Nov 16 11:34:09 2011 -0800"
      },
      "message": "Activate Dreams (screen saver) when desk-docked.\n\nSystemUI\u0027s DreamsDockLauncher now responds to low-level dock\nevents (Intent.ACTION_DOCK_EVENT) by immediately invoking\nthe user\u0027s selected screen saver.\n\n(The high-level DESK_DOCK behavior is no longer enabled; see\nchange I7884f65.)\n\nBug: 5591015\nChange-Id: I01a9bc6b181d55493f891ccc220631ddc461808a\n"
    },
    {
      "commit": "c224f76303b3124c76768761c544410b86b732f8",
      "tree": "6677c2bad1bc2e9ee1083f336da4866f3f17d71c",
      "parents": [
        "481ffa505bb1d8f5089ea98e3b5960d409b6819c"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Nov 15 22:55:03 2011 -0800"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Nov 15 22:55:03 2011 -0800"
      },
      "message": "Add a default Dreams component.\n\nCurrently set to DeskClock\u0027s screensaver, but since it\u0027s a\n(private) string in f/b/c/r/r/values/config.xml any product\ncould overlay this.\n\nBug: 5611008\nChange-Id: I7a4623c9c667a6cff8ed80ad600a8a4460bfafb7\n"
    },
    {
      "commit": "221733a45a89715d1c627f876ca49eeecd21dc08",
      "tree": "631e1a188623e244fc85f76e29d18893e1f4080b",
      "parents": [
        "69a1da4ddec90db501a54f0c4de94e9557aebd2e"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Nov 03 15:21:33 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Nov 04 15:15:41 2011 -0400"
      },
      "message": "Offer the user an option to launch Dreams when docked.\n\nSystemUI now registers for DESK_DOCK launches, so users with\nother dock apps installed can still opt to use those in this\nnew regime.\n\n(Part of migrating users away from DeskClock as the dock app.)\n\nBug: 3155234\nChange-Id: I0da0f04f8a0a89e7d237c092f16f4f27eb88c92c\n"
    },
    {
      "commit": "5f839f8ee426cc42af3ee0eaf5236f2f6930dd15",
      "tree": "c12a6124c16f435355563454e12b1f394ed39dcd",
      "parents": [
        "34877877bb563e7e20600e6777cca4dc358a12d9"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Oct 12 01:45:26 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Oct 12 10:48:05 2011 -0400"
      },
      "message": "Fix obsolete Honeycomb platlogo.\n\nBug: 5438131\nChange-Id: I848bcc8e4d6cdd28c1ffaa08b7fcceb87242932a\n"
    },
    {
      "commit": "d2509fd83597595914ef0627685e917380863eb6",
      "tree": "31ae51c4cb2664615c08ceb99f6363b084199cb4",
      "parents": [
        "d61a3a1bed57fc33fb0fa132521746bb58bba6be"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 12 12:29:43 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 12 12:29:43 2011 -0700"
      },
      "message": "Add boot mode where only \"core apps\" are started.\n\nA core app is one that has coreApp\u003d\"true\" in its manifest tag.\n\nThe system can successfully boot (though a little painfully) with\nonly framework-res.apk, SettingsProvider.apk, SystemUI.apk,\nDefaultContainerService.apk, and Launcher2.apk set as core apps.\n\nCurrently this boot mode is always turned off.\n\nChange-Id: Ieaa4a8031c2c391a12996aa8d8b1d65fc2b09d6b\n"
    },
    {
      "commit": "fc8fa638617efb5695a1f89ea75375faebbe2a40",
      "tree": "685aeed4995ea17399accf5d46545038235d5105",
      "parents": [
        "9a5505f0253a9114aea6192a22da6ec1c1b85ed2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 17 16:20:47 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 17 17:45:05 2011 -0700"
      },
      "message": "Fix issue #5128639: SystemUI grows by 10MB after taking a screenshot\n\nWe now do the screenshot in a separate process.\n\nAlso change the recents panel to not use hardware acceleration\non lower-end devices.  And improve how it gets shown to not\nload all data up-front which results in a long delay when you have\nlots of recents.\n\nChange-Id: Ia309a90f9939e5405758621b3f7114597bd0c02a\n"
    },
    {
      "commit": "ba39839444532af0ed3766f736582413f6d7a40b",
      "tree": "38f89252a63a327f9c9861ceea2b4e3849af28d2",
      "parents": [
        "2a2ec87b55d423ae91385d4e9f51725154b7a272"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 01 16:11:57 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 01 17:55:54 2011 -0700"
      },
      "message": "Move ImageWallpaper to SystemUI process.\n\nNice to not load 4MB bitmaps in the system process.\n\nAlso, hey, with how we are now scrolling the surface instead of\nthe bitmap, there is no reason to keep that 4MB bitmap loaded in\nto memory.  So don\u0027t.\n\nUnfortunately it looks like for some reason the VM is still\nholding on to the bitmap.  I\u0027ll need to figure out why.  Later.\n\nChange-Id: Ib3503756144502fc5c8d5e294248c2417c4fe8c8\n"
    },
    {
      "commit": "2efd2dbbac9eac89620683696c6076463c3a1cd6",
      "tree": "ca48adf4208daee43a4444a0fdb61fcb939858c5",
      "parents": [
        "b7d95a46dfacf04896d5b084f13bcbe6eab33633"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 19 16:32:49 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 28 16:01:20 2011 -0700"
      },
      "message": "Support full-backup encryption and global backup password\n\nIf the user has supplied a backup password in Settings, that password\nis validated during the full backup process and is used as an encryption\nkey for encoding the backed-up data itself.  This is the fundamental\nmechanism whereby users can secure their data even against malicious\nparties getting physical unlocked access to their device.\n\nTechnically the user-supplied password is not used as the encryption\nkey for the backed-up data itself.  What is actually done is that a\nrandom key is generated to use as the raw encryption key.  THAT key,\nin turn, is encrypted with the user-supplied password (after random\nsalting and key expansion with PBKDF2).  The encrypted master key\nand a checksum are stored in the backup header.  At restore time,\nthe user supplies their password, which allows the system to decrypt\nthe master key, which in turn allows the decryption of the backup\ndata itself.\n\nThe checksum is part of the archive in order to permit validation\nof the user-supplied password.  The checksum is the result of running\nthe user-supplied password through PBKDF2 with a randomly selected\nsalt.  At restore time, the proposed password is run through PBKDF2\nwith the salt described by the archive header.  If the result does\nnot match the archive\u0027s stated checksum, then the user has supplied\nthe wrong decryption password.\n\nAlso, suppress backup consideration for a few packages whose\ndata is either nonexistent or inapplicable across devices or\nfactory reset operations.\n\nBug 4901637\n\nChange-Id: Id0cc9d0fdfc046602b129f273d48e23b7a14df36\n"
    },
    {
      "commit": "41ff7ec82422a5b6d00892afdb3232bc0e53d851",
      "tree": "9085ebb6bcc39a20f98eeb71860f2dad01f604ed",
      "parents": [
        "a94b9ad23ac1f281c9d2dac02d01aa07ca5e1682"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jul 25 15:21:22 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 27 09:31:39 2011 -0700"
      },
      "message": "Revise data limit notifs, watch kernel alerts.\n\nTeach NetworkPolicy limits to \"snooze\" when requested by user, and\nnotify with both dialog and notification.  Register for network alerts\nthrough NMS to trigger updates immediately instead of waiting for\nnext stats update.\n\nEnforce that all NetworkPolicy are unique on a template basis, and\nmove SCREEN_ON/OFF broadcasts to background thread.  Launch SystemUI\nand Settings directly instead of using actions, and include full\nNetworkTemplate in extras.\n\nTests to verify notification and snooze behavior.\n\nBug: 5057979, 5023579, 4723336, 5045721\nChange-Id: I03724beff94a7c0547cb5220431ba8d4cd44d077\n"
    },
    {
      "commit": "45ce864ef41ce90938cc34d42a8e1075f69e7a61",
      "tree": "c12a0220ea2b319586149baaf00703771e642d9e",
      "parents": [
        "901e022c0c0923867e60c681f70412cfe6179e60"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 14 16:10:16 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 14 16:10:16 2011 -0700"
      },
      "message": "Move LoadAverageService to the SystemUI apk.\n\nChange-Id: I442e264802d1e35cd7d27bae121ae75f932595b6\n"
    }
  ],
  "next": "3ac588b09af2a7c4fb91d05ad230779dbd214166"
}
