)]}'
{
  "log": [
    {
      "commit": "b3a6aed980c4dddbd8a12799340154b7f64f9476",
      "tree": "1b6e796f527464e7c23fd80f6dbc5f293918d7a0",
      "parents": [
        "90dbb0ed72a9432cd4d853156d8566550c6599c5"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Fri May 11 13:24:07 2018 -0700"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon May 14 12:52:22 2018 -0700"
      },
      "message": "Add \u0027Snooze\u0027 to local context menu for notifications\n\nBug: 34840333\nTest: manual - 1. turn talkback on\n               2. have a notification focused\n               3. invoke local context menu, note that \u0027snooze\u0027 is an option\n               4. select snooze, note that notification is snoozed\n\nChange-Id: Id3ea62a0a9e5c2b8893aa5b548e64bb2b341d7a2\n"
    },
    {
      "commit": "4c9048c364abcfa5edd26706f59c306c2ed772af",
      "tree": "a5ed27551dbc3982e2cd2977ecaf2f04acba720d",
      "parents": [
        "7468d361e3fb4597e3a51cd2e2bb666fefbf268c"
      ],
      "author": {
        "name": "Amin Shaikh",
        "email": "ashaikh@google.com",
        "time": "Fri Apr 20 11:27:46 2018 -0400"
      },
      "committer": {
        "name": "Amin Shaikh",
        "email": "ashaikh@google.com",
        "time": "Fri Apr 20 11:33:20 2018 -0400"
      },
      "message": "Ensure QS tile secondary text marquees.\n\nUpdate the logic to marquee only the currently selected page.\n\nChange-Id: Idc2398e1c67c614414ae4298c43a1609431c62fa\nFixes: 78159844\nTest: visual\n"
    },
    {
      "commit": "b17c2388a5b31b4a0411fda2dac84af06b2478b9",
      "tree": "f57414aae079e96499f9c5433723cdf9fdc8fc2a",
      "parents": [
        "d44712584a22334edc57836b5057353df9bc99ec",
        "0f8ea543c165102e079b0a64afdfc600fe5e0387"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 30 21:13:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 21:13:04 2018 +0000"
      },
      "message": "Merge \"Control the QS label marquees.\" into pi-dev"
    },
    {
      "commit": "ac55e01e1c8b67603134846c9b63002cc28aef48",
      "tree": "1a95bc703cba9ca48894d85f6fbdfbf52d66a790",
      "parents": [
        "8d2b053611fe4a52602c125bf1f577c12083848a"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Tue Mar 27 11:17:30 2018 -0400"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Thu Mar 29 16:42:28 2018 -0400"
      },
      "message": "Volume UI updates\n\n- Reorder streams\n- constrain ripples\n- Show an introductory ripple on the ringer toggle\n- Add sound/vibration feedback for the ringer toggle\n- resize some elements\n\nTest: manual\nBug: 76438403\nFixes: 73892482\nChange-Id: I92dd6f5681f1822ae493a5a2b218b15970293e80\n"
    },
    {
      "commit": "0f8ea543c165102e079b0a64afdfc600fe5e0387",
      "tree": "a9068ca66dc8e65fe7affb62b3935ba72c43ce87",
      "parents": [
        "7dd666f4c5ffd9dabaf909e0e58ba20c009e82b9"
      ],
      "author": {
        "name": "Amin Shaikh",
        "email": "ashaikh@google.com",
        "time": "Tue Mar 27 11:09:27 2018 -0400"
      },
      "committer": {
        "name": "Amin Shaikh",
        "email": "ashaikh@google.com",
        "time": "Tue Mar 27 15:10:30 2018 -0400"
      },
      "message": "Control the QS label marquees.\n\n- Start the marquee when fully expanded and pause when collapsed.\n- Also do not change qs label to multiline once it\u0027s already been resized\nto single line.\n\nChange-Id: I2dd4f6b5473a6a5147999c29441537227751b705\nFixes: 74757991\nTest: visual\n"
    },
    {
      "commit": "2ea93b708dbc49235b42e76a587d5f353638040f",
      "tree": "33ae598c75afc5773d5fa796f40e3fea98c5b8f6",
      "parents": [
        "6d4bdc53814fb99623ab11c9b2b4a1db7f4a4858"
      ],
      "author": {
        "name": "Matthew Ng",
        "email": "ngmatthew@google.com",
        "time": "Wed Mar 14 19:43:18 2018 +0000"
      },
      "committer": {
        "name": "Matthew Ng",
        "email": "ngmatthew@google.com",
        "time": "Wed Mar 14 13:51:26 2018 -0700"
      },
      "message": "Revert \"Revert \"Centralized quick step/scrub/switch logic (1/2)\"\"\n\nThis reverts commit 0e490d9208de480ed38fe31a12029fc59b0955e9.\n\nReason for revert: Will be merged with fix\nBug: 74726495\nTest: manual\n\nChange-Id: I36ea9c2702107b23eff4adb1f3ba9fdc1be12999\n"
    },
    {
      "commit": "0e490d9208de480ed38fe31a12029fc59b0955e9",
      "tree": "215188b7f387d8915533ceec732e7623762208bd",
      "parents": [
        "b06ae3bf131b0bd0ded398d3a06974a6a9d78a50"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Mar 14 16:08:43 2018 +0000"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Mar 14 19:41:16 2018 +0000"
      },
      "message": "Revert \"Centralized quick step/scrub/switch logic (1/2)\"\n\nThis reverts commit b06ae3bf131b0bd0ded398d3a06974a6a9d78a50.\n\nReason for revert: b/74726495\nBug: 74726495\n\nChange-Id: I4bce8df13f9fa9e1b420382f7a96f9855510196f\n"
    },
    {
      "commit": "b06ae3bf131b0bd0ded398d3a06974a6a9d78a50",
      "tree": "0a7b9458a2c19db73fee29b2cfdb38ba7b88981a",
      "parents": [
        "f78767d2f9ec81e454baa0c637ebe0ad19ca1cf3"
      ],
      "author": {
        "name": "Matthew Ng",
        "email": "ngmatthew@google.com",
        "time": "Wed Mar 07 14:23:04 2018 -0800"
      },
      "committer": {
        "name": "Matthew Ng",
        "email": "ngmatthew@google.com",
        "time": "Tue Mar 13 17:21:22 2018 -0700"
      },
      "message": "Centralized quick step/scrub/switch logic (1/2)\n\nMoved all the logic for quick step/scrub/switch to QuickStepController\nso touch events can be used for deciding which gesture is used. Once a\ngesture is decided, the rest will not handle the other gestures.\n\nQuickstep will trigger when passing a touch slop on navigation bar. The\nevent onQuickStep (with a motion event) will be sent to launcher when\nthis occurs telling it that systemui is not handling anymore motion\nevents. During quickstep motion events will still be proxied.\n\nUsed raw X and Y motion events for Opalayout and KeyButtonView so that\nthe moving over the touch slop can be detected to ignore button (long)\npress state.\n\nFixes: 73971902\nFixes: 74456391\nTest: swipe up\nChange-Id: I40b931aa0a9f123b810ff9206c9b1ce040a68a56\n"
    },
    {
      "commit": "b586745d86a7335901646da128ef296e80ba0a22",
      "tree": "373a46b1e396ea60f131c9f5c035b497132ed482",
      "parents": [
        "292d895fb2406ac66da0d6cf2c955fd3bf0fd00d"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Feb 28 16:31:35 2018 -0500"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Thu Mar 08 01:45:09 2018 +0000"
      },
      "message": "Show app ops guts when tap app ops icons\n\nTest: runtest systemui\nBug: 64085448\nChange-Id: Ia51044f77311ab705ffb9dd1ae204d0131316396\n"
    },
    {
      "commit": "5a169cf2f6495cfd408ae607701f06cb497f6df3",
      "tree": "dd733b853e9f24960b256adcd6d79052d3468dc2",
      "parents": [
        "a3e2d2fed80bdf95dec791e7e796b86910204c31",
        "d696476fb31a203db38c7c31c347b27c8fda84ef"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 07 16:39:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 16:39:40 2018 +0000"
      },
      "message": "Merge \"System sounds get its own dnd toggle\" into pi-dev"
    },
    {
      "commit": "d137c872cdc5e157c0ff65076689f7c4552a9013",
      "tree": "3c2dffe6115c25dc65faf975c7d3bc12f397bde4",
      "parents": [
        "aa79f03ca6c4c5a3a262aeaf2b608ffd4807ab13"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 23 12:57:51 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Mar 07 11:42:04 2018 +0000"
      },
      "message": "frameworks/base: Set LOCAL_SDK_VERSION where possible.\n\nThis change sets LOCAL_SDK_VERSION for all packages where\nthis is possible without breaking the build, and\nLOCAL_PRIVATE_PLATFORM_APIS :\u003d true otherwise.\n\nSetting one of these two will be made required soon, and this\nis a change in preparation for that. Not setting LOCAL_SDK_VERSION\nmakes the app implicitly depend on the bootclasspath, which is\noften not required. This change effectively makes depending on\nprivate apis opt-in rather than opt-out.\n\nTest: make relevant packages\nBug: 73535841\nExempt-From-Owner-Approval: Global cleanup\nChange-Id: I26458e41ecb84de91ac9a356a5d4bafb44f463c1\n"
    },
    {
      "commit": "d696476fb31a203db38c7c31c347b27c8fda84ef",
      "tree": "3427dec1d27a8bdaf7ee0a253567a4ad15645e6a",
      "parents": [
        "0bd7631cea650927efc9b703dc8cc9ef24c2447f"
      ],
      "author": {
        "name": "Beverly",
        "email": "beverlyt@google.com",
        "time": "Fri Feb 16 14:07:03 2018 -0500"
      },
      "committer": {
        "name": "Beverly",
        "email": "beverlyt@google.com",
        "time": "Tue Mar 06 09:08:29 2018 -0500"
      },
      "message": "System sounds get its own dnd toggle\n\n- Added logic for streams to be muted by dnd (unassociated with ringer)\n\nTest: runtest -x frameworks/base/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java\nBug: 73362490\nChange-Id: I1101e67282f7331497e91eb510d2bf4f1ea6b4b1\n"
    },
    {
      "commit": "ba055f8f9d79068eff4e18db0760223d8885ddcc",
      "tree": "ce85d6b87170c243e254897167f25f9c69523186",
      "parents": [
        "0f3f71f41a1cb60fde4ab60d6a4bb1a189ba5920"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Feb 23 09:38:23 2018 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Feb 23 14:52:37 2018 -0500"
      },
      "message": "Import some plugin documentation into the tree\n\nIn the spirit of writing things down\n\nTest: none\nChange-Id: I93371eab99721ace1fd32d07739b861d492e4be6\n"
    },
    {
      "commit": "ee57193bb63ba64db1bfd70d9932588ebee7c5ff",
      "tree": "49fb0ef4e4a5c86245922648157a1ef3181944ee",
      "parents": [
        "cfa8785e1f7713dd0968f0d61d221d9046636151"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Feb 21 11:41:33 2018 -0500"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Thu Feb 22 10:10:42 2018 -0500"
      },
      "message": "New small volume dialog\n\n- Remove labels\n- Remove output chooser dialog\n- Reorder icons\n- Add settings affordance\n- Add instructive toast\n\nTest: manual\nChange-Id: I6640fb8147707936fe22e3c756ab29116973fbe3\nFixes: 73719758\nFixes: 73333233\nFixes: 71663761\n"
    },
    {
      "commit": "a840199853836d04a07a3d49b79bdb908d70a8fe",
      "tree": "756d474df024a088c2619ed3c39e733116a8693d",
      "parents": [
        "84783905c03d368352fbd05dfb614251a72f1786"
      ],
      "author": {
        "name": "Rohan Shah",
        "email": "shahrk@google.com",
        "time": "Thu Jan 25 18:22:44 2018 -0800"
      },
      "committer": {
        "name": "Rohan Shah",
        "email": "shahrk@google.com",
        "time": "Mon Jan 29 12:20:31 2018 -0800"
      },
      "message": "[QS] Fix irritating animation for QS\n\nWe\u0027re animating 2x the icons and, due to the transparent grey\nbackground color, it looked like the icons were getting darker.\n\nFixed by having it exclude the full icon frame while animating.\n\nTest: Visually\nBug: 72173914\nChange-Id: Ie36973ab44a86e6e1edd99b9266420a274d9aaa2\n"
    },
    {
      "commit": "925cde8f745c4cf946d0e215d306d2b134ca44de",
      "tree": "9227a3ada116092130ab8c27bfab00534328d8cc",
      "parents": [
        "f8fc7235d46b605c845552c23912b0f7a9009013"
      ],
      "author": {
        "name": "Beverly",
        "email": "beverlyt@google.com",
        "time": "Tue Jan 23 09:31:23 2018 -0500"
      },
      "committer": {
        "name": "Beverly Tai",
        "email": "beverlyt@google.com",
        "time": "Fri Jan 26 18:39:06 2018 +0000"
      },
      "message": "Alarms and Media visibly muted in PriorityOnly dnd\n\n- if alarms and/or media cannot pass dnd and the phone is currently\nin priority only dnd, then the alarm and/or media volume stream\nwill appear muted in the volume dialog and sound settings\n(Settings \u003e Sound)\n- if all behavior for priority only dnd is not allowed to bypass dnd\n(discluding alarms and media), then ringer is muted when priority-only\ndnd mode is on. If a user clicks this ringer in the volume dialog, then\ndnd ends\n- Updated default zen config to version 3 (added alarms and media)\nTest: manually toggle alarms + media in Settings \u003e Sound \u003e DND \u003e\nBehavior, toggle on/off dnd and then look at volume dialog and\nvolume bars in Settings \u003e Sound\nTest: runtest --path cts/tests/tests/media/src/android/media/cts/AudioManagerTest.java\nFixes: 72052742\n\nChange-Id: Ia9e809ec2be93cb5a9ba6518dce04bf3ce45110b\n"
    },
    {
      "commit": "1d92689eeec1559ab9653f7dfc708f52596fadf4",
      "tree": "36d5ccabe9c7afbb5884d88975af077d218af2ec",
      "parents": [
        "97ce94fce619676cda32703b391c082e6b473d04",
        "231b052d1f04d8b8835addc4f393f0e4fc58d5d2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 25 16:50:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 25 16:50:16 2018 +0000"
      },
      "message": "Merge \"Add QS scrolling support\""
    },
    {
      "commit": "6692b47d37e21cb0768129bfb875ab8322f08bff",
      "tree": "1b03d58338f71fd055ad2a46b1c8f4a62de6e385",
      "parents": [
        "f5e4182d2fdf7cee3a95ed4734b7b2533bdeddc9"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Jan 24 07:23:56 2018 -0500"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Jan 24 16:59:10 2018 -0500"
      },
      "message": "Display the current connected audio device\n\nIf connected via bluetooth.\n\nAlso fix long press behavior on the ringer footer, and\nchange the output chooser icon.\n\nTest: manual\nBug: 63096355\nChange-Id: I2c4d86fb03f8ac38721b6fc580bba45871d59f5d\n"
    },
    {
      "commit": "231b052d1f04d8b8835addc4f393f0e4fc58d5d2",
      "tree": "135210761a721e3e65f24a0fa662b31884d3ace4",
      "parents": [
        "d12ad36399e271b00d3aa0e98e07c2321e5fd0b2"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Jan 04 10:49:55 2018 -0500"
      },
      "committer": {
        "name": "Amin Shaikh",
        "email": "ashaikh@google.com",
        "time": "Wed Jan 24 11:30:00 2018 -0500"
      },
      "message": "Add QS scrolling support\n\nThe brightness slider and tile layout are now a scrollview and\ncan handle nested scrolling between the views. There is some\nblack magic which manages the touches to allow a scroll up to\ncontinue into a collapse gesture.\n\nTODO: need to add edge effect colors to theme\n\nTest: visual\nBug: 70799330\nChange-Id: Ief0c1480f001cae62175c8ac4f3784daaa0ed2b8\n"
    },
    {
      "commit": "c17b7d9143c029f5f17232dab6a06137b32aa7ac",
      "tree": "8d2918bcf9633067051376bf78314f177def55dd",
      "parents": [
        "a30e47e2449e6a32641bfec5e28c2b8ad8b28c74"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Mon Jan 15 15:59:41 2018 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Jan 16 22:11:25 2018 +0000"
      },
      "message": "Add support for secondary text in QS\n\nTest: visual\nBug: 70799372\nChange-Id: I64b1d050807e69f1755604e0baff94b89c9aeb2b\n"
    },
    {
      "commit": "a8f2426df625915553c3d85af8e6241f47fdf160",
      "tree": "b5d303c08fec98e5f64dcb58d7be561c1d55c619",
      "parents": [
        "32308613b5c93c6ec32feb33dc0c7f0ada659580"
      ],
      "author": {
        "name": "Matthew Ng",
        "email": "ngmatthew@google.com",
        "time": "Tue Dec 19 11:54:24 2017 -0800"
      },
      "committer": {
        "name": "Matthew Ng",
        "email": "ngmatthew@google.com",
        "time": "Fri Jan 12 12:24:03 2018 -0800"
      },
      "message": "Beginning implementation of quickscrub (1/3)\n\nWhen enabled via launcher, the home button is able to be be pulled to\nthe right side to send events to launcher via binder calls of when the\nquick scrub operation starts, ends and progress changes between each\ninterval. Launcher will use this information to determine how the\nrecents apps are laid out with vibration feedback.\n\nWhen the home button is pulled and released under 150ms, quick switch\nwill occur. A binder call will tell launcher to switch to the previous\napp used.\n\nWhile quick scrub or switch is active, launcher will not get any nav\nbar motion events, only events for quick scrub and switch.\n\nBug: 67957962\nBug: 70180755\nTest: enable new experience via launcher settings\nChange-Id: I344f5d67f259ff454205ea4d2e95140f783d3b5c\n"
    },
    {
      "commit": "daad3da642c6645082b14b39d45a665a4a502cf0",
      "tree": "541f282e59ba1e07bfe349f3ca2d7c3708308819",
      "parents": [
        "684585c405ada85c5a349099918332c08e05af03",
        "e5d55d52b6ebec7f373c6bbc49f1600aa4360931"
      ],
      "author": {
        "name": "Evan Laird",
        "email": "evanlaird@google.com",
        "time": "Wed Oct 18 15:13:54 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 18 15:13:54 2017 +0000"
      },
      "message": "Merge \"Fix incorrect colors for CustomTile in QS\" into oc-mr1-dev am: 859f8c4a21\nam: e5d55d52b6\n\nChange-Id: I7ab8bd9a58a7582286e73f1888b81d4a745eac24\n"
    },
    {
      "commit": "b3daf2b88c86243db85dd8425df8d3a59d3b3d4d",
      "tree": "9ad0d48ec6c796edac71bbba14d38c4c51039784",
      "parents": [
        "0f6e9b5a79ffd82c3276b5e3e7723280884ddb5d"
      ],
      "author": {
        "name": "Evan Laird",
        "email": "evanlaird@google.com",
        "time": "Tue Oct 17 16:00:29 2017 -0400"
      },
      "committer": {
        "name": "Evan Laird",
        "email": "evanlaird@google.com",
        "time": "Tue Oct 17 16:00:29 2017 -0400"
      },
      "message": "Fix incorrect colors for CustomTile in QS\n\nAdd support for Supplier\u003cIcon\u003e in QSTile.State, allowing a method for\nCustomTile not to cache the drawable for its IconViews. This fixes the\nproblem that the ImageViews in QQS and QS were trying to use the same\ndrawable and putting it in a bad state.\n\nTest: Add 3rd party tile to first position in QS and turn on/off; visual\nChange-Id: I408d6391a718fcb3f847e72bd303551d2d004dbb\nFixes: 67356768\n"
    },
    {
      "commit": "9851a8da998acdc657c8bc619657f6ff61ef44f3",
      "tree": "144ca69909268d52e7ba00167ae33dd48debb466",
      "parents": [
        "93d703a44afaa9f1fb6934f3717a6ab7a40f3d98"
      ],
      "author": {
        "name": "Charles He",
        "email": "qiurui@google.com",
        "time": "Tue Oct 10 17:31:30 2017 +0100"
      },
      "committer": {
        "name": "Charles He",
        "email": "qiurui@google.com",
        "time": "Tue Oct 10 21:04:42 2017 +0100"
      },
      "message": "StatusBar: add DISABLE2_GLOBAL_ACTIONS.\n\nWe add a new StatusBarManager flag to disable the global actions dialog\n(a.k.a. the power button menu), which is required in certain kiosk mode\nscenarios.\n\nBug: 65813398\nTest: runtest systemui\nTest: manual, by using a modified version of TestDPC and\n      DevicePolicyManagerService\n\nChange-Id: Ib7da2f4837281e98e558afcc30be8bae6f2e179a\n"
    },
    {
      "commit": "d2aa1351c99cd8d82b2d826a9caed0706301642b",
      "tree": "47489f56327d6fc79dcd146dd10e2e26494bb05b",
      "parents": [
        "d499ae5a853937fba88196e418f9cfa1b2f583ce"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Aug 25 15:56:03 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Aug 25 16:00:01 2017 -0400"
      },
      "message": "Roll back nav bar interface to version 2\n\nPartial revert of If27641aedcd05ebc834c9dc0b38d18cd20ddae03\n\nTest: make\nChange-Id: I47de1ca026028e16e6c4075e6be5b18a9746962c\nFixes: 65055647\n"
    },
    {
      "commit": "d33fe05c66b8423d956c55f0cc6a74269cd94adc",
      "tree": "10e4dfa428717a8d3b0824ec42c52a1b2803d16f",
      "parents": [
        "c3e7f875b41f78de26d07f6c8ab8fe78747886c0",
        "07fe63e5de3cbc36a213178faede137cf648170a"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 17 14:32:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 17 14:32:40 2017 +0000"
      },
      "message": "Merge changes from topic \"revert-injectors\" into oc-mr1-dev\n\n* changes:\n  Revert \"Add API to allow apps more control over instantiation\"\n  Revert \"Add plugin to swap out recents\"\n"
    },
    {
      "commit": "f6e33b1b3330784ba7386d0c889d68f7f45bb1ae",
      "tree": "cfd0d34792eafd3e8d8d496add59038ad406d6f3",
      "parents": [
        "0990042116c2b9dee647a17b99315b17117bef26"
      ],
      "author": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 15 16:39:33 2017 -0400"
      },
      "committer": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 15 16:45:07 2017 -0400"
      },
      "message": "Revert \"Add plugin to swap out recents\"\n\nThis reverts commit 0ea67d82e39ef4a2a1dfecd4796ab3e901cbc9e1.\n\nBug: 64345190\nChange-Id: I353c064db7bfaf91e98b5fd0d3e7180381a1b2b8\nTest: n/a\n"
    },
    {
      "commit": "98cdafb19192c5554319e0dc5f67a529cdac8640",
      "tree": "16e0603170966b4ebeb2bd73cb253aa19d897668",
      "parents": [
        "d05ac9caf2004deb930cd990fc01821fc5d4751e"
      ],
      "author": {
        "name": "Annie Chin",
        "email": "afchin@google.com",
        "time": "Tue Aug 15 10:07:27 2017 -0700"
      },
      "committer": {
        "name": "Annie Chin",
        "email": "afchin@google.com",
        "time": "Tue Aug 15 11:32:08 2017 -0700"
      },
      "message": "Remove ButtonInterface.setCarMode()\n\nBug: 63444779\nTest: Android Auto still functions\nChange-Id: If27641aedcd05ebc834c9dc0b38d18cd20ddae03\n"
    },
    {
      "commit": "0b99402f87ce1d8275dc60d98c2c12ccc0d9aceb",
      "tree": "44d98e33da54bcdb73b9a9514a52b33d158bc108",
      "parents": [
        "7bec053dffb90f7cd0e39eec7f56fb33d847c3eb",
        "de0c539dd4f19a9a3ea849e970e0bb40ca1d0188"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Aug 08 16:27:14 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Aug 08 16:27:14 2017 -0400"
      },
      "message": "resolve merge conflicts of de0c539dd4f1 to oc-mr1-dev\n\nTest: I solemnly swear I tested this conflict resolution.\nChange-Id: I3f5eb2a0481fb09b98c0c522c82c233350c06375\n"
    },
    {
      "commit": "b4302182bc916ba0f5ee08756c1b2d15cb845874",
      "tree": "f52e33a41cfbd3f43f8e474846765b789c8f85cc",
      "parents": [
        "9f3bac52ee2590b757929b9c237bbac3c71aa886"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Aug 04 13:39:17 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Aug 08 09:13:51 2017 -0400"
      },
      "message": "Move shutdown UI to sysui (when possible)\n\nTest: click restart or power off in global actions\nChange-Id: I0dc30a9772bbfb3cd3c3568f157e854fef87bf87\nFixes: 63576195\nFixes: 64125291\n"
    },
    {
      "commit": "54daefe3aa8dcdee149ce95fd4f8ecf60632c9f1",
      "tree": "b894c08719d82aecdfde1809531dba15741a783f",
      "parents": [
        "cbbb27bce21844157e57cdb40d665e28f1eb63e0"
      ],
      "author": {
        "name": "Anthony Chen",
        "email": "ajchen@google.com",
        "time": "Fri Apr 07 17:19:54 2017 -0700"
      },
      "committer": {
        "name": "Anthony Chen",
        "email": "ajchen@google.com",
        "time": "Wed Jun 28 14:32:28 2017 -0700"
      },
      "message": "Use custom QS fragment for auto use-case.\n\nUse a custom QS fragment if the UI mode is car. This fragment disables\nthe quick settings row and expansion. Remove the config options that\nused to have disabled this in the phone QSFragment.\n\nTo accomplish this, introduce a new QSFooter interface. The old\nQSFooter.java now implements this.\n\nTest: boot on phone and Android Auto headunit\nBug: 33210494\nChange-Id: I5accc2d27d6725380ca5e271d332a03991c9419b\n"
    },
    {
      "commit": "0ea67d82e39ef4a2a1dfecd4796ab3e901cbc9e1",
      "tree": "1d7e52b2bac00fc3fa816a88add0c5c30d137e9a",
      "parents": [
        "a178205e8bcaf9b4dd75c4618d53d30eb94c8802"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Jun 06 18:05:57 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Jun 27 20:41:45 2017 +0000"
      },
      "message": "Add plugin to swap out recents\n\nAdds new mechanism for activities in sysui to be replaced by plugins\nand allows that to happen for recents.\n\nTest: runtest systemui\nChange-Id: I8b570ce7c57484c58a52afe5e247d24ebfa0c57f\n"
    },
    {
      "commit": "51278d6a279ed28e4092b0975da376f8c89ad499",
      "tree": "d72bcbd69d3bf2c204015fd582a3cb665600a45d",
      "parents": [
        "22ec7b0c4666d81ddeae768df1a690e38e1a464c",
        "920fd89aefee6b39aa634d6bb49c0669a86a63e3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 21 18:31:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 21 18:31:35 2017 +0000"
      },
      "message": "Merge \"Add customs accessibility actions to snooze, allow it to be focused\" into oc-dr1-dev"
    },
    {
      "commit": "644f8e858318867ac5d9caf96cc89f23ed0e9f90",
      "tree": "c6e6a4d6e9fb07ac7190a55cc1a71e939f6f230e",
      "parents": [
        "85c96384381ffc36a739524e787b077b83ecb556",
        "f33a097232f153e8dfeabd222d8809cd6a8d9457"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 13 23:51:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 13 23:51:13 2017 +0000"
      },
      "message": "Merge \"Add plugin hooks to DozeService\" into oc-dr1-dev"
    },
    {
      "commit": "f33a097232f153e8dfeabd222d8809cd6a8d9457",
      "tree": "ab61358bc35cbf41f4e91d151abf7099d49770e0",
      "parents": [
        "6ef238a51c27abbeb90b5e187be2eab9dfdfecbe"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Jun 13 08:16:56 2017 -0700"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Jun 13 10:28:40 2017 -0700"
      },
      "message": "Add plugin hooks to DozeService\n\n- Find out when the dreaming starts / stops\n- Request the doze UI to show / hide\n\nBug: 62534409\nTest: manual, have no plugin, check that doze still works as expected (i.e.\n      pick up gesture shows it, noti shows it)\nChange-Id: I11618e47e0bab18423f0d89c8daf285d8c14d238\n"
    },
    {
      "commit": "920fd89aefee6b39aa634d6bb49c0669a86a63e3",
      "tree": "227fa0715752183b294f1c38bae25c21508cccdd",
      "parents": [
        "6ef238a51c27abbeb90b5e187be2eab9dfdfecbe"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Jun 06 09:35:03 2017 -0700"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Jun 12 17:16:58 2017 -0700"
      },
      "message": "Add customs accessibility actions to snooze, allow it to be focused\n\n- Add plumbing for accessibility action IDs, enabling custom\n  accessibility options in the local context menu\n- Allow snooze view to be focusable\n- When option is selected announces the selection via window state change\n\nTest: manual\nBug: 34840333\nChange-Id: Idca0b0e00e792d3e3f71fc6a15b9b26d9136f6da\n"
    },
    {
      "commit": "f3f6ddf7cb9641b40c3eb7ddde4565e06ded8b6c",
      "tree": "2194e35ed9015d339d845e590ae4090061b2b656",
      "parents": [
        "66c8f60eb7883b0515395e14e49dfd3274ebcfa7",
        "4ab2820e6c668ae7c55b300f126bb9f70c202ba3"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Jun 12 21:48:38 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 12 21:48:45 2017 +0000"
      },
      "message": "Merge \"Updates to NotificationMenuRowPlugin so that long press may be captured\" into oc-dr1-dev"
    },
    {
      "commit": "4ab2820e6c668ae7c55b300f126bb9f70c202ba3",
      "tree": "20c1634ed8e7eac4e0dd3112252fb6193c60f3d8",
      "parents": [
        "dd0f409b164718aa6631b82f2e29f1761820957e"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Jun 06 11:42:50 2017 -0700"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Jun 12 18:08:19 2017 +0000"
      },
      "message": "Updates to NotificationMenuRowPlugin so that long press may be captured\n\nThis will allow the NotificationMenuRow plugin to do something else\nrather than showing a menu when the view is long pressed.\n\n- Allow menu to intercept touch events\n- If the menu item provided to long press is null, don’t show it\n- Also passes the status bar notification when the menu is created\n  or updated\n\nBug: 62534409\nTest: manual, have no plugin and long press -\u003e see notification info\n      have a plugin that returns null for long press -\u003e nothing happens\nChange-Id: I384c5217d5343e990f4c3506eb2477b015705e5c\n"
    },
    {
      "commit": "8f8b5ac031ca3b2c44341a24e2e6429aa99f83fd",
      "tree": "cd370521c9d51d36031d0ff8155514081ac0c7e0",
      "parents": [
        "1de3fd81e0e34d5a3abfeef85fac30f378454e61",
        "98bf8ba30c51ccfdd5bef1d40123dca40fdf7cf9"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Jun 09 16:57:44 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 09 16:57:49 2017 +0000"
      },
      "message": "Merge \"Add notification listener plugin hook\" into oc-dr1-dev"
    },
    {
      "commit": "98bf8ba30c51ccfdd5bef1d40123dca40fdf7cf9",
      "tree": "7bcd0ccbd20eab823b98e78b2d8b36cfacbb67f0",
      "parents": [
        "38568aff2224df73f582340c9a013c8633ea5be8"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Jun 08 16:24:08 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Jun 08 19:23:11 2017 -0400"
      },
      "message": "Add notification listener plugin hook\n\nAllows plugin control over notifications right at the entrance\nto sysui and gives them the opportunity to mess with them how\nthey see fit.\n\nTest: manual\nChange-Id: I569bf37138da66d0524acecfa36ceb409f98fbb4\n"
    },
    {
      "commit": "d7dab0f36f9e6568809b01964a1120f9827cc944",
      "tree": "4e7193c6e21cc895a4485d940d6158e9a7c450dd",
      "parents": [
        "62031b89372bd1b9090573873c994e9f623ad106",
        "a5b457b3bf6f61c482badf36858d7d278befcd70"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Jun 08 13:00:40 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Jun 08 13:00:40 2017 -0400"
      },
      "message": "resolve merge conflicts of a5b457b3bf6f to oc-dr1-dev\n\nTest: I solemnly swear I tested this conflict resolution.\nChange-Id: I2aa49bfdbd2c44684d0edb21b52520fea406e167\n"
    },
    {
      "commit": "01df36f37fc470d3fd8c120b09cc4e7943cfacfb",
      "tree": "4f1526361697c7767d7124b4653dacc2b7031c43",
      "parents": [
        "bb4aeb19be1dbc93e54860430e87473ca69850d2"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Jun 07 13:02:47 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Jun 07 15:00:23 2017 -0400"
      },
      "message": "Move QS cell indicator back into mobile data tile\n\nRemove it from the header and drop it back in its old location.\n\nThis reverts commit 10b4c8a4ab3fc1fd55e5a636066e210ad17cf92b.\n\nTest: runtest systemui\nFixes: 62331189\nChange-Id: I087589c256894e0972656619e665b6a16536ce6c\n"
    },
    {
      "commit": "cbff978fb4b3cf9a00414c1a6afde031eff3df7a",
      "tree": "adc70136f35239f0a2d775df97413820d8bce203",
      "parents": [
        "98c1691c9aa271c685c4c455680b3319281c0189",
        "2cd3e9c500cf0aefdba8135678dedb04369405a8"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Fri May 26 15:13:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 26 15:13:59 2017 +0000"
      },
      "message": "Merge \"Check for false touches when determining if the notif menu should be shown\" into oc-dev am: 70739fb812\nam: 2cd3e9c500\n\nChange-Id: I393a87e48487ec51fc563cc1cb9f50d604970dc0\n"
    },
    {
      "commit": "70739fb812e2acb9880c008941015a467fca2001",
      "tree": "94d11af2e70f58ff4aa12c8843b3310892e0a041",
      "parents": [
        "b8b748b7e6564003217139a8f120ed1b46392b35",
        "bd707492a2ef3641a9e9a64ef72b3b031dac0bb6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 26 14:40:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 26 14:40:27 2017 +0000"
      },
      "message": "Merge \"Check for false touches when determining if the notif menu should be shown\" into oc-dev"
    },
    {
      "commit": "2775a1d82d7382095b1197c4e055f139285b84f4",
      "tree": "98d8b65bb4f1db84e4f7b01cc14d37c34f3fcf27",
      "parents": [
        "33d4411371cf6f87b8ab74574146daa0eacf8616",
        "f4968f3c987769430ecfb6f97e5059da2addaf34"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu May 25 22:00:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 25 22:00:15 2017 +0000"
      },
      "message": "Merge \"Fix up the QS gutter\" into oc-dev am: 78ee090f78\nam: f4968f3c98\n\nChange-Id: I9b7d99aa2b519c8c9629dbec32d22c906f0456f7\n"
    },
    {
      "commit": "bd707492a2ef3641a9e9a64ef72b3b031dac0bb6",
      "tree": "b41595f4b8dad0260f17cdbde45d9539ee2f1e5a",
      "parents": [
        "e53243cb9246221cbf5e0de1f068a21b8ffa2c95"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Wed May 10 17:51:25 2017 -0700"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Thu May 25 13:26:53 2017 -0700"
      },
      "message": "Check for false touches when determining if the notif menu should be shown\n\nIf it\u0027s a false touch don\u0027t show the menu.\n\nTest: manual: try swiping things away on the lockscreen (fast + long)\n     try showing notification menu on the lockscreen\nBug: 38208094\n\nChange-Id: I16ceedd90a5fbc80156a9495d6cfd6fa02771886\n"
    },
    {
      "commit": "4de5d3c03dfc49a1cdf7f9e9a0676c36987cea06",
      "tree": "a53c0125d5a98921861632e8e89f7aab6a8abe89",
      "parents": [
        "b80cffad4bd64daf643302a99a9172c8536c27ff"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed May 24 14:57:10 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu May 25 14:22:07 2017 -0400"
      },
      "message": "Fix up the QS gutter\n\n - Don\u0027t show when collapsed, show divider instead\n - Don\u0027t show when no notifications\n - Animate between states while expanding/collapsing\n - Other visual cleanup\n\nTest: visual\nChange-Id: I923c963fa70d63601b6a181299b04c5fc49922bb\nFixes: 38199857\nFixes: 38483355\nFixes: 38409326\nFixes: 38417776\n"
    },
    {
      "commit": "97d52db8541de930871322847a36467c7a293e3b",
      "tree": "124084e6af39d5d19816221fa8934612878c641a",
      "parents": [
        "bbc764e83af47a09f69a378eefdbd2c500c9889f",
        "d9c2232c9952d204a774041305b1ad5ce3d13715"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue May 09 23:41:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 09 23:41:28 2017 +0000"
      },
      "message": "Merge \"Fixes issue where the notification menu was not visible after RTL changes\" into oc-dev"
    },
    {
      "commit": "395617fd35ef0e712945359a760a00eb1aaf7475",
      "tree": "86bedd16217e4f24f6f735fca3760c4922294b72",
      "parents": [
        "83abc4f26d470ed032d91c65c66eff71a2499f53"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri May 05 14:07:58 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri May 05 14:25:43 2017 -0400"
      },
      "message": "Start drawing QS slashes rather than using AVDS\n\nThese need a bit more work like length control and animations, etc.\nbut this is a decent start.\n\nTest: visual\nChange-Id: I750d777b2b4a19f8c586066712f5a3f7e79befd6\n"
    },
    {
      "commit": "d9c2232c9952d204a774041305b1ad5ce3d13715",
      "tree": "dcb61015263f0aa0d3f7dc5fcae8f7f6fae720aa",
      "parents": [
        "4d09adcef11a4a26126d73ff9f452667303b1db7"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Apr 04 18:45:30 2017 -0700"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Fri May 05 00:15:14 2017 +0000"
      },
      "message": "Fixes issue where the notification menu was not visible after RTL changes\n\n- Altered how the menu location is set so that it doesn\u0027t depend on RTL\n  state\n- Also fixes an issue where if you change from landscape to portrait or\n  vice versa then the menu wouldn\u0027t be visible because the placement is\n  based on the width of the notification which changes based on orientation\n\nTest: (1) have notifications and show the menu, toggle the RTL state,\n          show the menu, note that it is visible\n      (2) have notifications and show the menu, rotate the device, note\n          that the menu is still visible\nFixes: 36874498\nMerged-In: I33b8f87e53a3393a2802842ad2196c9d089ec7fc\nMerged-In: I3a3b688f2b301f5ac0446a55b668db79c323a95c\nChange-Id: I3a3b688f2b301f5ac0446a55b668db79c323a95c\n"
    },
    {
      "commit": "767e2fe523706242197391d3aa2afa0a2ba076b4",
      "tree": "32f651e944cccaf248db1e243cb564aab1611eef",
      "parents": [
        "3f6daab8eb1a199f7d88cb6cc2c412560c0a7a17",
        "86cc4bbac5ff0ae7a93036f551c06a6979b3c5f1"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed May 03 19:16:35 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 03 19:16:35 2017 +0000"
      },
      "message": "Merge \"Fix QS visibility logs missing some info\" into oc-dev am: df9b2e8d80\nam: 86cc4bbac5\n\nChange-Id: Ib765a9aa0807ddd074b3ff4b066c8f79eb2751a8\n"
    },
    {
      "commit": "df9b2e8d808b0ba901575fc0ddff944de4887bfc",
      "tree": "816d24a0310dba96ddac28c55236c62925518da4",
      "parents": [
        "3baad0234bd90667daf6f8e28f8b60aaba8c8778",
        "cb4b31d396df49bd55db64b1c40122656c6ec534"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 03 19:04:29 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 03 19:04:35 2017 +0000"
      },
      "message": "Merge \"Fix QS visibility logs missing some info\" into oc-dev"
    },
    {
      "commit": "cb4b31d396df49bd55db64b1c40122656c6ec534",
      "tree": "e3e28d2818b05808993ca25f4458549702f807db",
      "parents": [
        "251894b134a3d1d2bcba5ff9db7e3a4014cd369a"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed May 03 10:37:34 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed May 03 10:37:34 2017 -0400"
      },
      "message": "Fix QS visibility logs missing some info\n\nTest: runtest systemui\nChange-Id: I6deb71576b137dfbd51f863e88ad939d4f3fab1b\nFixes: 35454347\n"
    },
    {
      "commit": "673c07f3da0a7e5f21bd50549c1a3ccbea7deff0",
      "tree": "bdc518c5cff2d5450269414d6c07526b7ad5017c",
      "parents": [
        "60e305ce8ca1e111f382c3b221fd92536e8283b5",
        "825b5748925f30d936b691f335ae3d8133483f31"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed May 03 13:55:11 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 03 13:55:11 2017 +0000"
      },
      "message": "Merge \"DozePlugin: Remove\" into oc-dev am: b2484f2258\nam: 825b574892\n\nChange-Id: I5994fbdd9cc15c1dc42fbecd63792eb2214ab017\n"
    },
    {
      "commit": "9d03a5254f5c7ac00071d56b91ddc15a3d761ed6",
      "tree": "f09018d75783830f3aa2da312123537c8e8aac4c",
      "parents": [
        "c6d132c11db904238302b7d2199fa2d9995e8390"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Apr 04 18:45:30 2017 -0700"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue May 02 14:25:56 2017 -0700"
      },
      "message": "Fixes issue where the notification menu was not visible after RTL changes\n\n- Altered how the menu location is set so that it doesn\u0027t depend on RTL\n  state\n- Also fixes an issue where if you change from landscape to portrait or\n  vice versa then the menu wouldn\u0027t be visible because the placement is\n  based on the width of the notification which changes based on orientation\n\nTest: (1) have notifications and show the menu, toggle the RTL state,\n          show the menu, note that it is visible\n      (2) have notifications and show the menu, rotate the device, note\n          that the menu is still visible\nFixes: 36874498\nChange-Id: I3a3b688f2b301f5ac0446a55b668db79c323a95c\n"
    },
    {
      "commit": "664c9d7d161cd49ec9b71fee6aa29ca5175c2890",
      "tree": "425581226e3b30443f9fdd330d2aef74dcde2d7f",
      "parents": [
        "9870d0bef78949f0429de4f62532d98f2537c258"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri Apr 28 15:52:24 2017 -0700"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue May 02 12:12:57 2017 -0700"
      },
      "message": "DozePlugin: Remove\n\nThe DozePlugin has not been able to keep up with the changes to DozeMachine.\nAt this point it is cleaner to just remove it.\n\nBug: 30876804\nTest: make SystemUI\nChange-Id: Ie8cd1488eb862017c54b92b1fba07537c0143bff\n"
    },
    {
      "commit": "4c19760b9131a67b379f9b7060c5830cb5beaad7",
      "tree": "1c60874beb19872dd652eb9be37f9975399f84d6",
      "parents": [
        "4a306894145340a4fe08b70b569eaa31641b38e6"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Apr 10 17:57:52 2017 -0700"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Apr 10 18:30:27 2017 -0700"
      },
      "message": "Don\u0027t offer snooze for foreground service notifications\n\nAlso updates NotificationMenuRow tests to actually check if menu\nwas created.\n\nTest: Manual, have foreground service, check if snooze is visible\nBug: 37152715\nChange-Id: I09cf60598c3e8991f2da731da1ef7e0a718c3435\n"
    },
    {
      "commit": "e645aee45a7784d772e4bdf846dd2e77335f30f2",
      "tree": "e3054eef48e64866035aab2cf7f886ef1dbf5427",
      "parents": [
        "537fd18eafaac246ae54c90577e7fd60e609cc14"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Mar 31 13:19:26 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Mar 31 13:49:21 2017 -0400"
      },
      "message": "QS: Add transient icon for hotspot\n\nWill make the loading time more clear.\n\nTest: visual\nBug: 32270851\nChange-Id: I0ea7591da132ff65fb7fc16b03b2891891e66598\n"
    },
    {
      "commit": "c7146beabe21c84248c2c62336b0af8c2f19f4f5",
      "tree": "624a777db4040a4b340d9cf381aa68e0957529f7",
      "parents": [
        "92b324282707e7eb4a52e48d9d5af8c75ef6316c"
      ],
      "author": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Wed Mar 29 14:13:03 2017 +0000"
      },
      "committer": {
        "name": "George Mount",
        "email": "mount@google.com",
        "time": "Wed Mar 29 14:58:42 2017 -0700"
      },
      "message": "Make public getFragments() and onGetLayoutInflater() methods\n\nBug 34703669\nTest: I846ef668e3dd7d664cfb56d2b9400467ba9b79f4\nChange-Id: Ie202960ada86b25e964f98a639b5f5740c8fdb79\n"
    },
    {
      "commit": "9d421ba0501535e2824b5b56ca2db84d4f4bb6b4",
      "tree": "8093fd58ff8e54468681fc5686c37bd4b260d5c7",
      "parents": [
        "d52cdfb89f9acfb44f80fc366fd1a4c7337101f1",
        "2b6aa352e5f8b432a934a228df7fe640249b36b6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 27 23:37:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 27 23:37:10 2017 +0000"
      },
      "message": "Merge changes Ia971b2bc,I0001eb3d,I55a6951e\n\n* changes:\n  Remove framework-protos from SystemUI\n  Disable proguard for PluginDummyLib\n  Enable multidex for dx\n"
    },
    {
      "commit": "be976024a847e1f72e1000b36e25729344a8c6cd",
      "tree": "9181ee688f734aa56b7c6c4fcb9b5b80da49f364",
      "parents": [
        "cef238ed70a56400c62b81c0667c6b5792a5a6e3",
        "95d743c38c919dd500d9dcacf9f998500d403d9e"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Fri Mar 24 16:54:14 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 24 16:54:18 2017 +0000"
      },
      "message": "Merge \"Add plugin interfaces to control notification menu / swipe behavior\""
    },
    {
      "commit": "6a8a4d89120bf6af85c711f01067c65de08a0fb5",
      "tree": "09f17ddb18a71cf1311513a8ec71da5c142b6079",
      "parents": [
        "770324964aa70e59f3974af9fb8812a17cc43819"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 23 12:59:36 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 23 18:08:41 2017 -0700"
      },
      "message": "Disable proguard for PluginDummyLib\n\nProguard fails for jars that contain no class files, disable it.\n\nTest: m -j ANDROID_COMPILE_WITH_JACK\u003dfalse PluginDummyLib\nChange-Id: I0001eb3de7b7cea2fa9f91de0c1e59569d41ae8a\n"
    },
    {
      "commit": "782cd6711bc15e3f03456210b3543a67606d6591",
      "tree": "5b12409def94a75e34977fa651536123329f24c4",
      "parents": [
        "287eb95e68e8e21009a5363f39a762d3b0b8503b"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Mar 22 12:50:57 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Mar 24 00:40:25 2017 +0000"
      },
      "message": "Create plugin interface for volume dialog\n\nVery few logic changes, mostly just breaking out certain interfaces\nand classes to the plugin lib.\n\nTest: make + volume keys\nChange-Id: Ieabc6d35f6ef980842849236a0b8ffd5543b3a2c\n"
    },
    {
      "commit": "95d743c38c919dd500d9dcacf9f998500d403d9e",
      "tree": "2162d018b15a53e1e83da81ca78dc937fd17915b",
      "parents": [
        "fc7f4ceb44c2f18fc112ef53580d5fed520e0f9d"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Jan 10 12:05:27 2017 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Wed Mar 22 19:04:50 2017 -0700"
      },
      "message": "Add plugin interfaces to control notification menu / swipe behavior\n\n1) Updates the notification menu plugin to do more:\n- The plugin can now supply the view it wants to display behind a\n  notification as the menu\n- Touch interaction (i.e. notification translating on top) is piped\n  through to the plugin so it can update the view behind the notification\n\n2) Makes NotificationMenuRow an implementor of the plugin which moves\n   a bunch of that logic out of NotificationStackScroller\n\nTest: runtest systemui\nChange-Id: I8723b96c195ff7311317d5523418cfcbe2a79b52\n"
    },
    {
      "commit": "361915c727fc2ad137bfeed7ff74b3eadde96597",
      "tree": "55598c5be642e8c843a9aa006e7f976d3f0aa386",
      "parents": [
        "c0e002b43071752dcaf3bd464dc3f1a09cd81b80"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Mar 21 20:33:59 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Mar 22 09:41:34 2017 -0400"
      },
      "message": "Move global actions to sysui and add plugin interface\n\n - Move default global actions ui to sysui\n - Add fallback legacy interface in case sysui breaks\n - Switch to fallback if sysui dies or isn\u0027t responding\n\nTest: Long-press power\nChange-Id: I943522611de5dbbee61e66c67cf3a56379091e97\n"
    },
    {
      "commit": "e5b770e47d44a40d412c7d42010b2cf67920d9e3",
      "tree": "d95a80e428698cc1fe81a1bb57a6b0f31e35aff9",
      "parents": [
        "702e2ebf9fbfb715c1d9b716683c9e4d182b575e"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Mar 03 21:49:29 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Sat Mar 04 20:02:09 2017 -0500"
      },
      "message": "Updated QS UI\n\n - Adds footer to QS which contains the date/alarm info\n   and all touch targets (settings, edit, etc.)\n - Swaps out emergency + carrier text on cell tile for a\n   standard CarrierText from lock screen in the header\n   to make the header only contain status info.\n - Add dividing line\n - Work on animations\n\nTest: runtest systemui\nChange-Id: I97dfea1b1ea7006b53eb61ac3a1f942c64dd282d\n"
    },
    {
      "commit": "702e2ebf9fbfb715c1d9b716683c9e4d182b575e",
      "tree": "fc6a8ae7b92943ff155530c317d7142e6d945312",
      "parents": [
        "5a4e12e14374f2b293fc43fb34b047cc48dca915"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Mar 03 16:53:44 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Sat Mar 04 16:01:26 2017 -0500"
      },
      "message": "Add plugin API for individual QS tiles\n\nThis will allow prototyping of individual QS tiles and/or their\nvisual representation without having to write a plugin for the\nentire panel. This will allow quick iteration on QS UI + dual\ntarget tiles.\n\nTest: Install plugin using new API\nChange-Id: I05ca9d9f5a200a1dad2c3582251a36edb5cb9aba\n"
    },
    {
      "commit": "4eb01a20c40544f0ecc12f098743fd49dd588da4",
      "tree": "e8421ca7f2af8bd56157bcacdaefe40ab80a205b",
      "parents": [
        "00a5f2a65882f5b2814c9449e0ab75b6f2656315"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Mar 02 14:33:47 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Mar 02 14:33:47 2017 -0500"
      },
      "message": "Fix NavGesture version\n\nTest: make\nChange-Id: Ib9925ac5f01d0d08ef7f37222f0e78321753b464\n"
    },
    {
      "commit": "ec34da8f6f31c5ee1e543c0c7999a067487e0ce9",
      "tree": "6c20ee14ff536ae16d8377b6f2f22339f679e406",
      "parents": [
        "56fee637e90d9fb02196681cf62ca3bc54f39b9a"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Feb 24 15:57:05 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Mar 01 13:26:01 2017 -0500"
      },
      "message": "Add method for plugins to reference global dependencies\n\nThe new annotation versioning system allows plugins to share common\nglobal interfaces that can be versioned on their own. To facilitate\nthis add a static method for plugins to get a hold of dependencies.\nTo get any dependency a plugin must @Requires it so it can be version\nchecked.\n\nTest: Plugin that uses the new call.\nChange-Id: I8e01260f8fbc14465502d506a7aa08212795ad9b\n"
    },
    {
      "commit": "e4b106b1aaf0f96a5006086d2a67e2c86e41c6a1",
      "tree": "d842658b7aef2ac34a8e32317ca029b6c4de351a",
      "parents": [
        "467d4ab03d5746c50a66d0f9662ea2366e800ab6",
        "434180ce5155f0c405080698031f05e9eab3dd4c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 16 18:34:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 16 18:34:59 2017 +0000"
      },
      "message": "Merge \"Fix notification shelf icon showing on top of snooze leave behind\""
    },
    {
      "commit": "d7937b348864d60472c5c8f700e748c97f596dff",
      "tree": "5c8405a6d88fd54ae13939981e4199d9f8ff804d",
      "parents": [
        "dc71f6c268cdb04b9f2e6d33533d87065573535d",
        "5bec68fbea1a02d7debc2eeeaf01b9478de216e5"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Feb 15 20:49:02 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 15 20:49:05 2017 +0000"
      },
      "message": "Merge \"New system for versioning sysui plugins\""
    },
    {
      "commit": "434180ce5155f0c405080698031f05e9eab3dd4c",
      "tree": "3638ee2e013d96148686d7163eb26d6d4e3662b6",
      "parents": [
        "1f8a47ca952949d3b85505c4c6999d951ddf48ec"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Feb 13 11:29:42 2017 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Feb 13 17:04:27 2017 -0800"
      },
      "message": "Fix notification shelf icon showing on top of snooze leave behind\n\nAlso fixes an issue where the guts closed listener would always call\nonHeightChanged because the notification isn’t marked as removed\nuntil after the listener gets called.\n\nFixes: 34866027\nTest: Manual - have one notification, snooze it\nChange-Id: Ic67bdb353b8bb5df8bdaaf6d3e71ade7da05ee46"
    },
    {
      "commit": "df44b606f357bb67e7a3b44e58f551c1c731ce42",
      "tree": "d250f545b50eba9f1404dad5a79bfdffeee333ae",
      "parents": [
        "b23cd8ece5dcd584959ccee52e25f4eb2fdc7084"
      ],
      "author": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Fri Feb 03 13:31:50 2017 -0500"
      },
      "committer": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Fri Feb 10 13:24:54 2017 -0500"
      },
      "message": "Updated Inline Notification Controls\n\nRemoved old xml resources, strings, dimens, etc\nDifferent behavior when sent from the default channel.\nDisplay how many notification categories are used by the app.\nGroup label when channel is associated with group.\nAdd package icon.\nFix tap-away-to-save behavior\n\nTest: runtest systemui\nChange-Id: Ib41a536a5c4e7c7747a2453eddc3b4b4b99ffa7a\n"
    },
    {
      "commit": "ca2156890ae6b37bb2137581e0420f488d5c3cd8",
      "tree": "4278046b6db77e5fb82755e0bee53742e9c9c0ab",
      "parents": [
        "efdb4289597ad1594eb906aeafd2ebdf8854bdc7"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Feb 09 14:32:54 2017 -0800"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Feb 09 20:25:20 2017 -0800"
      },
      "message": "Fix tinting and sizing of tuner lock screen shortcuts\n\nTest: visual\nChange-Id: I13f0281d38cd4d73322e9752d9bca36be2412917\n"
    },
    {
      "commit": "5bec68fbea1a02d7debc2eeeaf01b9478de216e5",
      "tree": "26cc9edfbbd171d0b85f44491408f7809b166921",
      "parents": [
        "efdb4289597ad1594eb906aeafd2ebdf8854bdc7"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Feb 08 20:45:10 2017 -0800"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Feb 09 09:32:20 2017 -0800"
      },
      "message": "New system for versioning sysui plugins\n\nUse annotations to handle the multi-dimensionalness of interface\nversions, but still maintain compile time inclusion of current\nversions.\n\nTest: runtest systemui\nChange-Id: I0789a72112cf6630a6406f76020071c8a6d9e24c\n"
    },
    {
      "commit": "421a9410b462770544c6ae9a554542fa2fe1acb1",
      "tree": "e07c898a6d70c1497251f8f5f17d74a33c724fc9",
      "parents": [
        "f4872e411006b80cd0d62bc30606cb57175eae97"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Mon Feb 06 09:15:21 2017 -0800"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Feb 07 18:58:14 2017 -0500"
      },
      "message": "SysUI: Add method for plugins to keep status bar full screen\n\nLots of things detect overlays these days (installing apps) and the\nonly way to avoid the problems associated with this is to live in\nthe status bar window. So allow plugins to hold the window open\nwhen they want to so they can have overlays be in that.\n\nMove StatusBarWindowManager to Dependency to make things easier\nas well.\n\nTest: Install the example plugin, test can access QS and interact\n      with apps\n\nChange-Id: Ib2288bf56704960847217bad01a480ab407e0ffe\n"
    },
    {
      "commit": "580f32d7b01cd94487b6473c47854cf01a03f53e",
      "tree": "08dac74d4d9fd338e8a583e649ac64feb70606d0",
      "parents": [
        "e8ae5566fbcb87e017180d55c761ce98d769c232",
        "1dc93bc407540561ebba1cc007073ab9c71d7a4e"
      ],
      "author": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Thu Feb 02 20:25:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 20:25:48 2017 +0000"
      },
      "message": "Merge \"SystemUI uses Builder API with NotificationChannel\""
    },
    {
      "commit": "1dc93bc407540561ebba1cc007073ab9c71d7a4e",
      "tree": "a64e14adac55864fa0a31bedfed068c166f72bf2",
      "parents": [
        "825310b606a2c08993d30ebf63d022ef28f7e214"
      ],
      "author": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Tue Jan 31 16:38:11 2017 -0500"
      },
      "committer": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Thu Feb 02 11:12:05 2017 -0500"
      },
      "message": "SystemUI uses Builder API with NotificationChannel\n\nSome changes to channels based on UX feedback.\n\nTest: runtest systemui\nChange-Id: I1b2f661ba145d6926035f992231dc3c2f8cbf844\n"
    },
    {
      "commit": "de850bbcaa61c1874b803f2086443febbafd81a4",
      "tree": "2d116053ef673a7855c74b802aff918d171d707d",
      "parents": [
        "335595078510e06a0c50b273e3b4e8b0ec015320"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Feb 01 19:26:30 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Feb 02 10:58:18 2017 -0500"
      },
      "message": "Fix leaks in sysui\n\nAdd support for testing for PluginManager and TunerService leaks\nand add tests for the known leaks and fix them. Also port PluginManager\nand TunerService to Dependency to make them easier to handle in\ntests.\n\nTest: runtest systemui\nChange-Id: I5642539ee24dd72f802905106decd0c87b41b4eb\nFixes: 34846972\n"
    },
    {
      "commit": "2a6ea9c2a1b52b0386270ec73e1e6d6a9b614a34",
      "tree": "3049e38c952634b2e06691d4b46781f752cdba44",
      "parents": [
        "1f2df9afacbb2a9adc062702ec50779abc806913"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Jan 26 11:14:51 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Jan 26 15:17:45 2017 -0500"
      },
      "message": "Delete BaseStatusBar\n\nIt is a relic of a more complex time, but has passed out of all\nknowledge for too long.\n\nTest: manual testing on phones and TV\nChange-Id: I62a15d9413ea4bda3ac82bf6f7d22c096e2c1cdc\n"
    },
    {
      "commit": "1ab054bc37cf45cbeb54d1b73abde1cab3761392",
      "tree": "e9d703de5082f1a1e12f0b163a97303ca4295d53",
      "parents": [
        "02e806550c7b5aa08aee91f54f1e9e527b2f5a30",
        "754d8226c9f775fa53610c1cb38fed0d33b7ec79"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 26 20:01:30 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 26 20:01:32 2017 +0000"
      },
      "message": "Merge \"Add assistant-provided snooze options to snooze menu\""
    },
    {
      "commit": "754d8226c9f775fa53610c1cb38fed0d33b7ec79",
      "tree": "7a17d5668135be0b42f868d6cc063521fea33bbc",
      "parents": [
        "c710accde01bd5cd959c85ac59bd717bef8c4930"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Wed Jan 25 15:29:39 2017 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Thu Jan 26 18:07:09 2017 +0000"
      },
      "message": "Add assistant-provided snooze options to snooze menu\n\nTest: manual via Assistant app\nChange-Id: Ie77181601a20e46774d009c7ecea65e99434ebd3"
    },
    {
      "commit": "8e032e15e6b1b6a2f44fd3d5063ee83f45d71189",
      "tree": "b1b7e062128d1f661d69f2845fecca322974229e",
      "parents": [
        "d1b6dcbea63c688650d13d77156526581db27630"
      ],
      "author": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jan 25 13:41:38 2017 -0500"
      },
      "committer": {
        "name": "Dan Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jan 25 23:37:06 2017 -0500"
      },
      "message": "Notification Channels come to SystemUI\u0027s own notifications.\n\nThere are five channels at present:\n    ALERTS - low battery etc.\n    SCREENSHOTS - progress \u0026 result\n    SECURITY - notifications hidden due to policy\n    STORAGE - disk low\n    STATUS - basically everything else\n\nThe importance for each channel should match the legacy\npriority of the notifications it carries.\n\nBug: 34250937\nTest: runtest systemui\nChange-Id: I5915ca453258caea63b0d9bd756893db05e8d600\n"
    },
    {
      "commit": "3e6552036e341d76efabad3458039a7449adfa10",
      "tree": "52808d038a861bf3ed52ffa39c060dd7eac938de",
      "parents": [
        "87d7945f0693d3ca943bfb6491d4eba3a8d7cc75"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Jan 10 16:37:22 2017 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Wed Jan 25 12:34:22 2017 -0800"
      },
      "message": "Add snooze listener so that a plugin can snooze a notification\n\nTest: manual\nChange-Id: Ieb3c0fcae6d832c3e8f5d1b983c52cf4f2ff6239\n"
    },
    {
      "commit": "87d7945f0693d3ca943bfb6491d4eba3a8d7cc75",
      "tree": "9ec146fba0983b91ffd6579f266851673871a142",
      "parents": [
        "761cde1173cdfbc058034ffb10283e5507ed0ed4"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Jan 10 11:52:52 2017 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Wed Jan 25 12:34:11 2017 -0800"
      },
      "message": "Change NotificationGuts to contain a view\n\nNotificationGuts is now given a view to display, the notification\nmanagement controls have been moved into their own view.\n\nNotificationGuts is provided a view to show via a MenuItem.\n\nThis allows configuration via the NotificationMenuRowProvider Plugin.\n\nTest: manual\nChange-Id: I68cb23ea2cada30cc6e930fa8c03e0aa4014dfe2\n"
    },
    {
      "commit": "43c2cd1a4071e152e9f4aa9044b03a29cd5ada31",
      "tree": "44dc37c836f119591b36d823b1b08e5d7bcf83f3",
      "parents": [
        "1597e0540d67d439c370b398ee12604c6f179bc8"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Dec 12 21:05:13 2016 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Wed Jan 25 12:23:29 2017 -0800"
      },
      "message": "Create + implement plugin for NotificationSettingsIconRow\n\nThis will allow plugins to supply additional menu options to the\nmenu \"behind\" a notification.\n\nThis CL does not include behavior for when one of these new menu\nitems is tapped, this will be added in a separate CL.\n\nTest: manual\nChange-Id: I322f9f39d33b043bd23dcbede5dd15e6afa73fc1\n"
    },
    {
      "commit": "20ff3f9255c86a3747aa55746788d4bde1d12753",
      "tree": "0d683a35e12060cca41a9ffca8550b8257be18e2",
      "parents": [
        "4a65687b853a92268f4f0eb52f22e092b16f8ed3"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Mon Jan 09 15:13:23 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Mon Jan 23 16:28:03 2017 -0500"
      },
      "message": "SysUI fragments: Integrate new support for constructing\n\nUse a new system for constructing fragments so they can be swapped\nout in place maintaining state. This will allow easier integration\nwith plugin lifecycle as parents who have child plugin fragments\ncan depend on the class existing and won\u0027t have to listen to\nthe lifecycle.\n\nTest: runtest systemui\nChange-Id: I517f4ce3d114abd49b1b5baca388d19e929b8f90\n"
    },
    {
      "commit": "9c7844cb91b43929d0a86b1c90aa1efb37f5463a",
      "tree": "db416c8c446340878a028163408d414c45fdc73a",
      "parents": [
        "83d577581bf136def8fe03a31d1c1b71f65dd988"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Jan 18 15:21:53 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Mon Jan 23 12:55:53 2017 -0500"
      },
      "message": "Work on sysui dependencies\n\nOne of the many problems with PhoneStatusBar is that it holds\ndependencies for many other parts of SysUI. Fix this by creating\na static method of grabbing dependencies that are global to sysui\nthis cleans up a lot of chains of interdependence.\n\nAlso add easy way to inject mocks of these dependencies for the\npurpose of testing.\n\nTest: runtest systemui\nChange-Id: Ia0e947faea62d15b665facada47ac9916c99f895\n"
    },
    {
      "commit": "cd26af70540d8a88a61efafa0fbe63091c1f941a",
      "tree": "851e9abf79d21b9d4ed1247caae8ee34a2461613",
      "parents": [
        "ed76b34c4208beac201226c91c1511d2c1dfeadf"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Jan 11 14:32:58 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Jan 13 13:43:22 2017 -0500"
      },
      "message": "Move all time ticks to bg handlers, and post\n\nThis will hopefully avoid blaming sysui for ANRs when the system\nis hosed.\n\nTest: Manual, build, push, wait for time to change\nChange-Id: I1661ac1a997ad8917b449dd175229d8b77f583c9\n"
    },
    {
      "commit": "59d86ed2a80364aa27541d8117ccf80551b45e20",
      "tree": "a22d3ccd615982d52d36af27c3159ed2e9391367",
      "parents": [
        "fabf8e8187367a1ff9f2cbcc0a986b1e4b5242dc"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Jan 04 15:13:11 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Jan 11 11:29:17 2017 -0500"
      },
      "message": "Add one-shot plugin support\n\nShould have happened a while ago.\n\nTest: runtest systemui\nChange-Id: I0da4deb5c297e8030213810815a408364ec97e14\n"
    },
    {
      "commit": "5e6c0ffd3e91cf0c5872de3e2d99e225ad1468f4",
      "tree": "4a09f6c02d15ea03dacf4d5e2f2bd6c0a1251ab2",
      "parents": [
        "f1941775b6e0d4a47ce1cf895a0ea7b41bbaaaeb"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Thu Jan 05 12:57:06 2017 -0500"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Fri Jan 06 09:22:02 2017 -0500"
      },
      "message": "Create a global registry for system message IDs\n\nPort all system UI notifications to use the registry.  Retain stable\ninteger IDs where they exist. Assign new stable IDs where resource IDs\nwere previously used.\n\nUsing \"message\" rather than \"notification\" since we may eventually\nwant to include dialogs and toasts.\n\nBug: 32584866\nBug: 30995038\nTest: runtest systemui\nChange-Id: Iec4d7cebbd88683e339ada29a279315222699942\n"
    },
    {
      "commit": "26bc8996c88cfc828afa95e22efee0fed82d8780",
      "tree": "528f1a68bd0be4eee0b47b059c65d47c68f209a0",
      "parents": [
        "467085866ff85739b4edce5b634489dee7f7ad55"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Jan 04 14:17:47 2017 -0500"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Jan 04 15:57:30 2017 -0500"
      },
      "message": "Add notifications for incorrect plugin versions\n\nTest: runtest systemui\nChange-Id: Ic59a583202a8a20fbfc6fb504e6ab60ecc71ce78\n"
    },
    {
      "commit": "40db029cfeb263b5b672ca687c347e58ed2ad2ae",
      "tree": "650bf836d03ab543cd8066ae34493c8505e777d8",
      "parents": [
        "eddb8b0cf4abf12e662dd7032275d54485da1fe9"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Mon Jun 27 17:58:03 2016 -0700"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Thu Dec 08 13:52:41 2016 -0800"
      },
      "message": "Light navigation bar support (1/2)\n\nTest: Open an app that has this flag set.\n\nTest: android.systemui.cts.LightBarTests\n\nBug: 29058491\nChange-Id: Idaff65fdd5c59b68ae9920726c9ea50b53f96675\n"
    },
    {
      "commit": "40e978e0d13bdbd6a7e0ab06ba25f55e813fd44a",
      "tree": "befee5a023e6bd9740a940d7d21310f115e1eaa0",
      "parents": [
        "9efa5ded7102a972ed2d34de75d0c9d6fdadd3a7"
      ],
      "author": {
        "name": "Xiaohui Chen",
        "email": "xiaohuic@google.com",
        "time": "Tue Nov 29 15:10:04 2016 -0800"
      },
      "committer": {
        "name": "Xiaohui Chen",
        "email": "xiaohuic@google.com",
        "time": "Fri Dec 02 13:51:49 2016 -0800"
      },
      "message": "sysui: fix navbar button view orientation\n\nBefore navbar assumes rotation 0 means portrait and rotation 90\nmeans landscape.  This is not necessarily true, in certain devices\nthe natural orientation (0) is landscape.  Here we removed that\nassumption and make sure we use the right inflater at all times.\n\nBug: 32516898\nTest: Locally on test device\nChange-Id: I3db44dcb35d8511fb9d42b147b2bd137ff0750f7\n"
    },
    {
      "commit": "f9d13f6d7a6fda22620cd4eab74ec98cafdbd147",
      "tree": "b85319e23b49aa7e6c27865f77c7b86375771bd1",
      "parents": [
        "1e151b81c9df141701682e3b3847c50710bd50ff"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Nov 08 15:42:20 2016 -0800"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri Nov 18 15:59:00 2016 -0800"
      },
      "message": "Doze: Add plugin hook\n\nTest: mmm vendor/google_experimental/users/roosa/DozePlugin/\nChange-Id: I7ea55954f0c07be932e8ee7037e03b7c01cc1108\n"
    },
    {
      "commit": "f4e019aaad6f9da3165e8f35966299c43d5cfebf",
      "tree": "3f5e0f00b6814acd62aa8bd5b98dd01e908a6b42",
      "parents": [
        "0ceef211875515c2a7531f9baeae46339e700f3a"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Nov 03 09:07:20 2016 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Nov 11 11:19:52 2016 -0500"
      },
      "message": "Plugin fragment support\n\nAllows fragments to be easily switched over to plugins and a provides\na convenient base class for plugins to use that makes sure the layout\ninflater and context point at the plugin\u0027s and not sysui\u0027s.\n\nBug: 32609190\nTest: runtest systemui\n\nChange-Id: I6503947e980f66ddcd826f6ca9a92b591ce0eb1e\n"
    },
    {
      "commit": "0ceef211875515c2a7531f9baeae46339e700f3a",
      "tree": "1372169a7f3741b5a46987d1bda98aac0b98d9ad",
      "parents": [
        "bbac121e44a2bc6dc3ef9d779685fc29907b245b"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Nov 02 14:05:23 2016 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Nov 11 11:19:16 2016 -0500"
      },
      "message": "Move QS to a fragment\n\nThere is now a bit too much of the view/layout logic touching the\nfragment, but sort out that later and get something over to fragments\nfor now.\n\nBug: 32609190\nTest: Manual\nChange-Id: Icf677f4a70e6b92892a0fc27a0e673940ebc7a73\n"
    },
    {
      "commit": "fe62a154afce0ab7e023b6c290360179a16184a7",
      "tree": "e5d1e1b540515030266829a799ea0f778ac089df",
      "parents": [
        "a27884236fe1eade93a124f00f0b843997b40a31"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Nov 04 15:31:11 2016 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Nov 04 15:31:11 2016 -0400"
      },
      "message": "Don\u0027t include the example plugin in mk\n\nIt might accidentally get built by mm.\n\nTest: manual\nChange-Id: I1be30af36b3c392217cd5d723d19918b0adda22c\n"
    },
    {
      "commit": "fe762344f4475a3a336bb46aef2d59c1fabf32ab",
      "tree": "2f87b8eac7b250e10f1332b79468d5cf6bd14ee4",
      "parents": [
        "0863156efddcef3895bb175403c91b089be5e8dc"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Thu Oct 13 14:33:27 2016 +0200"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Tue Nov 01 13:53:32 2016 -0700"
      },
      "message": "The big keyguard transition refactor (1/n)\n\nThe heart of this change are two things:\n1) Instead of using the force hide mechanism to hide windows behind\nKeyguard, we actually make the activities invisible in activity manager.\n2) When Keyguard is going away, we change the visibilities in activity\nmanager and run an app transition.\n\nAt the very core we move the responsibility of hiding activities to\nActivityStack, which checks whether Keyguard is showing, and then\nhides all non-show-when-locked activities. For that, we need to check\nwhether any window of an activity has SHOW_WHEN_LOCKED set. We\nintroduce a callback from WM -\u003e AM in case these Keyguard flags have\nchanged.\n\nFurthermore, we decide whether to occlude Keyguard in KeyguardController,\nwhich just checks whether the top activity has SHOW_WHEN_LOCKED set. When\nthis state changes, we prepare an occlude/unocclude app transition, and\nin PWM we just inform the Keyguard about the animation so SysUI can play\nalong this animations in a mostly synchronized manner.\n\nSince we now use an app transition when unlocking the phone, we get\nlockscreen launch animations for free - window manager automatically\nwaits until the activity is drawn, or directly executes the transition\nif there is nothing to animate. Thus, we can remove all the infrastructure\naround \"waitingForActivityDrawn\".\n\nThe logic to show/hide non-app windows is moved to policy, and we add the\nability to run animations on non-app windows when executing an app\ntransition.\n\nTest:\n1) runtest frameworks-services -c com.android.server.wm.AppTransitionTests\n2) Manually test unlocking Keyguard:\n2a) Without security\n2b) With security\n2c) With security but trusted\n2d) Portrait while activity behind is in landscape\n3) Test launching things from Keyguard\n3a) Without security\n3b) With security\n3c) Launch camera without security\n3d) Launch camera with security\n3e) Launch camera with securtiy and trusted\n3f) Launch voice affordance\n4) Set no notifications on lockscreen, drag down, make sure you get\nthe correct animation\n5) Test clicking \"emergency\" on bouncer\n5b) Test \"Emergency info\" on emergency dialer\n5c) Test clicking edit button on emergency info, should show pattern on\nKeyguard\n\nBug: 32057734\nChange-Id: Icada03cca74d6a612c1f988845f4d4f601087558\n"
    },
    {
      "commit": "6a652a4442c1894da212f2ba43026b16776ecf12",
      "tree": "4b4b452576353cddffba72aa4d2535fd64b33c03",
      "parents": [
        "d371f9828b0365638c409f30994b202398959618"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Oct 26 15:23:09 2016 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Oct 28 10:14:20 2016 -0400"
      },
      "message": "Make plugins have an application context\n\nSo things that use them don\u0027t crash.\n\nTest: Plugin that uses getApplicationContext\nChange-Id: I8673cb95544280f593479b014cd2620c2d02bf80\n"
    }
  ],
  "next": "d371f9828b0365638c409f30994b202398959618"
}
