)]}'
{
  "log": [
    {
      "commit": "3d9b0fc96349666765a9e1da7152107853bf3306",
      "tree": "9ac7ebbb1001da18cde47821a2f93f80927dcdf7",
      "parents": [
        "96b3e880465734e732b1743d4f532c99b71df5f0",
        "23289ef7b6b96cbbe663b1eb5a1790d48b127ed0"
      ],
      "author": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Sat Dec 01 05:04:02 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 01 05:04:02 2018 +0000"
      },
      "message": "Merge changes from topic \"biometric-refactor\"\n\n* changes:\n  3/n: For passive modalities, add plumbing for \"try again\"\n  2/n: Multi-modal support for BiometricPrompt\n  1/n: Move BiometricDialog management to BiometricService\n"
    },
    {
      "commit": "8d0446d54481032386bf4ae427b7603cb42ba9a9",
      "tree": "ee0870deccc681b9c6bae96101cbac76c9ed440b",
      "parents": [
        "122c0879cdf41aacb3df461c475e4aaf1b90f49f",
        "b1a8130d73d9454da3091b7f54a837858757d513"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Dec 01 04:10:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 01 04:10:36 2018 +0000"
      },
      "message": "Merge \"Fixed a crash where we were getting the viewstate\""
    },
    {
      "commit": "b1a8130d73d9454da3091b7f54a837858757d513",
      "tree": "cfd6bc521f1a805845aa02b8c05aea3401c1295f",
      "parents": [
        "e59ac13c375ce1c04d05429826a3d993fea4d9a2"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Fri Nov 30 14:41:32 2018 -0800"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Fri Nov 30 14:41:32 2018 -0800"
      },
      "message": "Fixed a crash where we were getting the viewstate\n\nBecause we\u0027re now getting the viewstate directly from the\nview, this was introducing an issue where the viewstate\nbeing null was actually a symbol of the view being null,\nwhich now lead to a nullpointer.\n\nChange-Id: I1d171449034422d25a6e7ba7dca5154db3ce20b3\nFixes: 120230161\nTest: remove last notification, no crash\n"
    },
    {
      "commit": "e1b9672d80117119abbcf43e2b8ef180d0190c07",
      "tree": "8c0403970edcb12002b55d3d6e07eef569dd0c2c",
      "parents": [
        "f8f70e10efb19c66d0bd2e7c081983727b18fb9c",
        "82ad059b13db0fe1c959a663861fd02bde5ec72c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 30 19:59:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 30 19:59:18 2018 +0000"
      },
      "message": "Merge \"Updates NotificationInfo layout/buttons.\""
    },
    {
      "commit": "23289ef7b6b96cbbe663b1eb5a1790d48b127ed0",
      "tree": "386a4091b4b461be63708ce5ec117ff56c7478d0",
      "parents": [
        "87f257a9e591b96dc64c7b2b8f3004800e6fc115"
      ],
      "author": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Wed Nov 28 16:32:36 2018 -0800"
      },
      "committer": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Fri Nov 30 11:34:35 2018 -0800"
      },
      "message": "3/n: For passive modalities, add plumbing for \"try again\"\n\nWhen \"try again\" is showing, authentication is canceled internally.\nBiometricService caches the client\u0027s info so that authentication can\nbe restarted when \"try again\" is pressed. Because authentication\nis not running when \"try again\" is showing, BiometricService also needs\nto have a TaskStackListener so that BP can be dismissed and an error can\nbe sent to the client when the app loses focus.\n\nIBiometricServiceReceiver has been split into two. One for BiometricPrompt\nto receive messages from BiometricService, and another for BiometricService\nto receive messages from SystemUI/\u003cBiometric\u003eServices.\n\nWhen we get locked out, don\u0027t send the last onAuthenticationFailed\nto the client, since \"Authentication failed\" will be shown briefly\nand be replaced by \"Device locked out\" which is janky\n\nBug: 111461540\n\nTest: Tested with requireConfirmation enabled/disabled\nTest: Tested onConfigurationChange corner cases, e.g. when \"try again\"\n      or \"confirm\" buttons are showing, rotate the device. Buttons\n      persist correctly and don\u0027t appear when unexpected\nTest: Tested task stack corner cases, e.g. when \"try again\" is showing,\n      press home button. BP dismisses and client receives ERROR_CANCELED\nTest: BiometricPromptDemo receives all callbacks\n\nChange-Id: I62126708ce8db8b358c666a07aa7c39607642c9d\n"
    },
    {
      "commit": "5b1d16409a639f82d76dc1d0802d584bf3de717d",
      "tree": "ee49063d0c2f560988fecebcc3f2d1796482e777",
      "parents": [
        "94da729e426ec8f806411cf63b3e783d0b1c5838",
        "9f1866457126712821c6a226e68e179529713038"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Fri Nov 30 18:44:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 30 18:44:48 2018 +0000"
      },
      "message": "Merge \"Fixed an issue where the notification could be blank\""
    },
    {
      "commit": "82ad059b13db0fe1c959a663861fd02bde5ec72c",
      "tree": "075389e9e5119477434dd487a505cca45b849bb6",
      "parents": [
        "188e91405a0e02c3f281ff52b94c0f2be515729c"
      ],
      "author": {
        "name": "Gus Prevas",
        "email": "kprevas@google.com",
        "time": "Wed Nov 28 14:27:40 2018 -0500"
      },
      "committer": {
        "name": "Gus Prevas",
        "email": "kprevas@google.com",
        "time": "Fri Nov 30 11:30:51 2018 -0500"
      },
      "message": "Updates NotificationInfo layout/buttons.\n\nThis change modifies the UI displayed when the new interruption model is\nenabled after long pressing a notification or tapping the settings icon\nin the notification side menu.  The text links for blocking the channel,\ntoggling its importance, or canceling out of the dialog are replaced\nwith buttons with icons and clearer text descriptions.\n\nTest: atest NotificationInfoTest\nBug: 116622974\nChange-Id: I06ead5c4da77319df3ebe4c48d863dede37bf2f4\n"
    },
    {
      "commit": "26fc2c9e463fa1fc1fda58057f14ddf79f4c2a6f",
      "tree": "4f27da266634e25875ce17c86058f2c2c52dd12c",
      "parents": [
        "b24884e3051c7411ca53fbb0966788d0ef3c9b99"
      ],
      "author": {
        "name": "Issei Suzuki",
        "email": "issei@google.com",
        "time": "Fri Nov 30 15:43:37 2018 +0100"
      },
      "committer": {
        "name": "Issei Suzuki",
        "email": "issei@google.com",
        "time": "Fri Nov 30 16:28:07 2018 +0100"
      },
      "message": "Stop the window manager acquiring a sleep token in dozing state.\n\nThis logic is not necessary anymore, and makes transition of the\nwindows manager flaky.\n\nBug: 119217735\nTest: atest CtsActivityManagerDeviceTestCases:KeyguardTransitionTests\nChange-Id: I953b40737f6673b83d27b096dd1f8e81b0cc6e46\n"
    },
    {
      "commit": "11cf88e2959b9c38a83d6d53d184a0474e2571f5",
      "tree": "da91aafc0abd84bba0f52f0323db39126a912ac6",
      "parents": [
        "83fc1328d7e5ed14010130f40ca0f593295bf113",
        "9dfb388d99f51fd21d0f31133d13e9382bb460ac"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Fri Nov 30 00:16:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 30 00:16:41 2018 +0000"
      },
      "message": "Merge \"Fade other text out properly when transforming messages\""
    },
    {
      "commit": "9f1866457126712821c6a226e68e179529713038",
      "tree": "cc1e83ce19c502e2bb1c48721774dd2203f2316e",
      "parents": [
        "ab4a8d2eb702d417ec7633baad2f6ea6dfe8b148"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Thu Nov 29 15:47:40 2018 -0800"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Thu Nov 29 15:47:40 2018 -0800"
      },
      "message": "Fixed an issue where the notification could be blank\n\nBecause we were changing the visible type but not actually\nmaking it visible, the view could remain blank for a while\nuntil another layout selection came in.\n\nChange-Id: Ica5a5ff806311429883c0a0212e33efccfd8d460\nFixes: 117272628\nTest: Add headsup , ambient and let them time out, observe regular notifications\n"
    },
    {
      "commit": "6487ebffd574a188336c0e710fe97c61b2df21d2",
      "tree": "594af39bdd56d6d21ed7a7244ed71facd071a23f",
      "parents": [
        "cce6c22e767ec5ddef78f5c4edda40a73b058798"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Wed Nov 28 18:57:40 2018 -0800"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Thu Nov 29 21:52:58 2018 +0000"
      },
      "message": "Fixed the inline launch animation for notification groups\n\nWhen launching a child of a group there would be strange artifacts\nfrom the clipping. These are now fixed. Also made sure that\nthe notification can\u0027t be launched if the parent is translated.\n\nTest: launch child in a group, observe normal animation\nChange-Id: Iee8e4b49462e140d3eaffe5b2504caa1b67d04e2\nFixes: 110093221\n"
    },
    {
      "commit": "54ff93c6b285927f6912fdfa871da15271b1ff25",
      "tree": "cecf2457197ad769c993bd298f7b75aad45faa4b",
      "parents": [
        "f8d769ef29b4f49087a7f8136e44c1ab366d8bfa",
        "4c8c3274dae088923fe3f7db60c5ab6ac25285b6"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Thu Nov 29 20:44:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 20:44:13 2018 +0000"
      },
      "message": "Merge \"Ambient wallpaper API feedback\""
    },
    {
      "commit": "eb2f7b6b0bb974e59c7d1c1bdd168703e31fd385",
      "tree": "e73076d4ca6880f403c6b1d9621db44577bf2a76",
      "parents": [
        "70f3f5b9825d52a9eb22b860b87a0d22a154a2a3",
        "a0cbcf942cbe78efc47b850878fdc6156ef5dea4"
      ],
      "author": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Thu Nov 29 18:58:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 18:58:19 2018 +0000"
      },
      "message": "Merge \"Correct context for TB on disabled tiles\""
    },
    {
      "commit": "d6abc33e0c3c7b4416c067065ff6fb5cea3dd28b",
      "tree": "42ce45aced33515c57309e38164a826cf236d2c5",
      "parents": [
        "76dc026c0f67c7c0696ad596ee4a56941e6d1675",
        "511e8b9e1aeabf72f81a72e9da08cbabe47d1613"
      ],
      "author": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Thu Nov 29 18:57:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 18:57:59 2018 +0000"
      },
      "message": "Merge \"Fix starting animator on detached view\""
    },
    {
      "commit": "4c8c3274dae088923fe3f7db60c5ab6ac25285b6",
      "tree": "bca090f4622b148579484647ba1568353a8249f2",
      "parents": [
        "4d20bac002d7995dfaf3bdb091fb0b72509450e2"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Tue Nov 06 17:47:48 2018 -0800"
      },
      "committer": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Thu Nov 29 17:38:11 2018 +0100"
      },
      "message": "Ambient wallpaper API feedback\n\nMaking this api a @SystemApi, protecting it with a permission and\nchanging boolean animation parameter to a long.\n\nChange-Id: Ife6aac2806a5590288a801751f22d85c3cfd4622\nFixes: 116117810\nTest: atest DozeWallpaperStateTest\nTest: atest WallpaperServiceTest\nTest: set image wallpaper\nTest: set AOD wallpaper that holds permission\nTest: set AOD wallpaper that doesn\u0027t hold permission\n"
    },
    {
      "commit": "511e8b9e1aeabf72f81a72e9da08cbabe47d1613",
      "tree": "5845332d0e4d752afabee0aa6fc74101fac6be38",
      "parents": [
        "82b6b06fabe19187a069246dc6f0a8d7d49105a9"
      ],
      "author": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Wed Oct 10 12:31:35 2018 -0400"
      },
      "committer": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Thu Nov 29 11:30:14 2018 -0500"
      },
      "message": "Fix starting animator on detached view\n\nTest: atest passing\nFixes: 117511410\nChange-Id: I037e6d43f7813c44a31d3c46b79cf6b79ce9b481\n"
    },
    {
      "commit": "8ce7d1d99238272d586d9e89b9dd10d22341f646",
      "tree": "4d520e9066701cec346936dec6700845d9b96960",
      "parents": [
        "f4f922b1a4e9e2af09d0ff01eab183902ac2493d",
        "7d4b3a5f19a3834ed75a3e61d4fdd20b0b64f9cb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 15:43:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 15:43:29 2018 +0000"
      },
      "message": "Merge \"Add onActionClicked in NotificationAssistantService\""
    },
    {
      "commit": "a0cbcf942cbe78efc47b850878fdc6156ef5dea4",
      "tree": "16a25725e91fe5b5bf5ab74bd41c685bd8e13184",
      "parents": [
        "82b6b06fabe19187a069246dc6f0a8d7d49105a9"
      ],
      "author": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Thu Nov 29 09:53:57 2018 -0500"
      },
      "committer": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Thu Nov 29 09:53:57 2018 -0500"
      },
      "message": "Correct context for TB on disabled tiles\n\nTest: Manual\nChange-Id: I739a71684fd0e38b611b60558025a64396bea372\nFixes: 120164679\n"
    },
    {
      "commit": "afd7c69060debde328496d2fde4d791b8bbd9cec",
      "tree": "89f3b2b01f529d5dd9a9a8dd327654bc3ddd039a",
      "parents": [
        "24a579db2630e2f0a78f9cb572826c576759e114",
        "5129bf1dc946eff38108b124f0fbb02954ef1bc6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 13:04:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 13:04:33 2018 +0000"
      },
      "message": "Merge \"Fix comment on VisibilityLocationProvider\""
    },
    {
      "commit": "7d4b3a5f19a3834ed75a3e61d4fdd20b0b64f9cb",
      "tree": "424936685375d691148d16b761a867c1d43f930c",
      "parents": [
        "d8a9db84862b7f9a8d2dc50373e7642b818862f4"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Tue Nov 27 17:29:36 2018 +0000"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Thu Nov 29 11:43:53 2018 +0000"
      },
      "message": "Add onActionClicked in NotificationAssistantService\n\nThis is added to report clicks on actions buttons to NAS.\n\nBUG: 119010281\nTest: atest SystemUITests\nTest: atest RemoteViewsTest\nTest: atest NotificationManagerServiceTest\nTest: Manual. Tapped on the action (both normal and contextual) and\n      observed the log.\n\nChange-Id: I381994737d8c3185d3fabf9b6c481fd01a89a634\n"
    },
    {
      "commit": "24a579db2630e2f0a78f9cb572826c576759e114",
      "tree": "074709d895a41ef6735bf12e666f1af6e55be771",
      "parents": [
        "8456ec9ec1679fbb50d3ee2fc4a997753a34fe91",
        "bf2fbd5b68b82838e36eae085c82fa9165038ecd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 10:28:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 10:28:35 2018 +0000"
      },
      "message": "Merge \"Only register debug hooks when requested\""
    },
    {
      "commit": "1ef848753bccc0f4593667585ff4eca97a7189e2",
      "tree": "3b29d1830e70fa4a6bd0086fd091d9607454aee2",
      "parents": [
        "99e225d4259aad41fdc5344b52598f0755f76d32",
        "5e00c9860423529bfbcdd4b81b11006df411e180"
      ],
      "author": {
        "name": "Rhed Jao",
        "email": "rhedjao@google.com",
        "time": "Thu Nov 29 04:12:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 04:12:16 2018 +0000"
      },
      "message": "Merge \"Update pip menu to use a11y api for ui timeout value.\""
    },
    {
      "commit": "7a96ccdb097333e266e2f79309dac82eaee79991",
      "tree": "87941c5b9d7799b8aec9c952697f7fac1da68c23",
      "parents": [
        "d3a1b265fb90901381389ae5b50b229cfb5cf1d6",
        "ceced17a2470a2cd144dd74f207551297f9a3bde"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 01:22:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 01:22:55 2018 +0000"
      },
      "message": "Merge \"Use secure settings to enable / disable types of auto bubbling\""
    },
    {
      "commit": "258fdb10d692cf353c98f8c7efaec67324cd040d",
      "tree": "271ddaac7037038dca99b7c9955af3bd8846fa54",
      "parents": [
        "1dbe2b20920b1beea85034561d0e0f3403c79ecf",
        "1cf6eac24dadd03d3cd8547a9fb91710254d997e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 28 23:42:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 23:42:28 2018 +0000"
      },
      "message": "Merge \"Prototype settings can remap the gestures and actions\""
    },
    {
      "commit": "9dfb388d99f51fd21d0f31133d13e9382bb460ac",
      "tree": "e5d678c19ec553c334ce4edf00606c13b74a26c3",
      "parents": [
        "10bbc0ea784fa74c0851b1ee8a0dad92424ef0fd"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Wed Nov 21 19:34:43 2018 -0800"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Wed Nov 28 15:38:20 2018 -0800"
      },
      "message": "Fade other text out properly when transforming messages\n\nTest: send message and then image, observe normal transformation\nFixes: \t110855884\nChange-Id: I21eef8c0e23bd21dbe761d428f0757c8bc4538ea\n"
    },
    {
      "commit": "1cf6eac24dadd03d3cd8547a9fb91710254d997e",
      "tree": "361a72c1e93a95062f10b66b35311f8e5e4eaec2",
      "parents": [
        "9d7964b973aaa5179b9c29356d04bca07a2b719b"
      ],
      "author": {
        "name": "Matthew Ng",
        "email": "ngmatthew@google.com",
        "time": "Tue Nov 27 15:06:55 2018 -0800"
      },
      "committer": {
        "name": "Matthew Ng",
        "email": "ngmatthew@google.com",
        "time": "Wed Nov 28 13:37:07 2018 -0800"
      },
      "message": "Prototype settings can remap the gestures and actions\n\nIntroduced a way for prototype settings to be able to remap the gestures\nto actions via a controller. Also the back action is not restricted to a\nbutton drag anymore. Back button visibility from prototype settings\nwill also signal when to hide the back button immediately.\n\nBug: 112934365\nTest: atest QuickStepControllerTest\nChange-Id: Ib5215162edb50162d6f492c5e8a07786c1e2223b\n"
    },
    {
      "commit": "87f257a9e591b96dc64c7b2b8f3004800e6fc115",
      "tree": "27d8e23b9452ffc5fb45acff7c4035a50867d309",
      "parents": [
        "e92cdae2773ff29502781670e35eaf882d5e36c6"
      ],
      "author": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Tue Nov 27 16:26:07 2018 -0800"
      },
      "committer": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Wed Nov 28 13:01:29 2018 -0800"
      },
      "message": "2/n: Multi-modal support for BiometricPrompt\n\nPart 2 of decoupling BiometricDialog lifecycle from AuthenticationClient\nlifecycle. This change introduces cookies which are used to keep track\nof clients within BiometricService and \u003cBiometric\u003eServices. This allows\n\n1) Much easier support for BiometricPrompt to authenticate using more than\n   one modality\n2) Much easier to support \"continue\" button on BiometricPrompt for passive\n   modalities, which should be pressed before authentication continues\n\nBug: 111461540\n\nTest: BiometricPromptDemo works, error messages are propagated to clients\nTest: Keyguard/Settings smoke test\nTest: ConfirmDeviceCredentials works\n\nChange-Id: Iaa246488fb027c3397a3191841524b389145b281\n"
    },
    {
      "commit": "bf2fbd5b68b82838e36eae085c82fa9165038ecd",
      "tree": "755e9f65a71dbd46205abe641d4bcf54e6e4d60b",
      "parents": [
        "7c94c8417daecf48611833bec9c570625f412b49"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Wed Nov 28 17:14:54 2018 +0100"
      },
      "committer": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Wed Nov 28 17:22:12 2018 +0100"
      },
      "message": "Only register debug hooks when requested\n\nAlways registering them was causing ANRs because of blocking binder calls,\nregistering on a background thread also isn\u0027t ideal beacuse wake locks might\nbe released and let the device sleep.\nLet\u0027s only register them when explicitly required.\n\nChange-Id: I52c45fcb38c277903ece662afdd5e6c35cf2aac4\nFixes: 119436283\nTest: adb shell setprop debug.aod_brightness 1\n"
    },
    {
      "commit": "5a70a4e07c57aaa058ebf3551e5d6cf110cc04d1",
      "tree": "180048bf197514852547e2998a7c2f497dfc9fcf",
      "parents": [
        "6cb11aeb4adbd42e5af31de063dc6822b81087fb"
      ],
      "author": {
        "name": "Gus Prevas",
        "email": "kprevas@google.com",
        "time": "Mon Nov 26 17:16:05 2018 -0500"
      },
      "committer": {
        "name": "Gus Prevas",
        "email": "kprevas@google.com",
        "time": "Wed Nov 28 11:21:19 2018 -0500"
      },
      "message": "Updates buttons in notification menu row.\n\nThe new design for the notification menu row with the new interruption\nmodel enabled is to have nothing on the left side, and to have a single\nbutton for interruption settings on the right which opens the guts (instead\nof multiple buttons which take immediate action).  This change implements\nthat design and removes the mechanism for buttons taking immediate action.\n\nTest: manual\nBug: 116622974\nChange-Id: Ibcb2e10453ab490e8de69b00f37aed498a314808\n"
    },
    {
      "commit": "18439804f48198ef77bb80ff19b60fca6e824450",
      "tree": "3cb43c0e10a3fe58f5794c1a0066546ff71c9f65",
      "parents": [
        "e30fc89f6ef268e45c3879a03c4d294ca4f1ba1c",
        "ea6e7f0401018e9b859658ceb8bb94f47e837339"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 28 11:42:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 11:42:24 2018 +0000"
      },
      "message": "Merge \"Support hasNavigationBar per display(1/2)\""
    },
    {
      "commit": "447e2dad1d1fc19edfd67b36cfe97bb985584f2f",
      "tree": "bfe0d10106c7e2a4fe201523b40a397ddc75c1ad",
      "parents": [
        "7c94c8417daecf48611833bec9c570625f412b49",
        "6067dfbc235903f66cf85f14364e3362bbbd3be8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 28 09:57:39 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 09:57:39 2018 +0000"
      },
      "message": "Merge \"Add test for stack scroller padding.\""
    },
    {
      "commit": "ea6e7f0401018e9b859658ceb8bb94f47e837339",
      "tree": "d3c7e2447ec78cafb3899f69530299c0f96d83b0",
      "parents": [
        "88dbb1b2d4418be219822247479c1ca4d865383e"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "charlesccchen@google.com",
        "time": "Mon Nov 19 21:37:45 2018 +0800"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "charlesccchen@google.com",
        "time": "Wed Nov 28 15:22:44 2018 +0800"
      },
      "message": "Support hasNavigationBar per display(1/2)\n\nThis change is to support Auto case.\nAuto may need to support displays without navigation bar by default,\nbecause the display may be far away from driver.\nNote: currently, hasNavigationBar is global since it\u0027s from config.\n  In future patches, it will also check hasSystemDecorations() on\n  secondary display.\nTODO: We may find a way to make OEMs set hasNavigationBar() for each\n  display.\n\nFixes: 119584629\nTest: atest WmTests\nTest: atest InputMethodManagerServiceTests\nTest: atest SystemUiTests\nChange-Id: I427f8ad1f3da644a2bf79ee5b777830378515348\n"
    },
    {
      "commit": "6a5df0026e205dc67f5f452eb60bbc3dda905a46",
      "tree": "6bc6b48ce1adbd96438badc5df774ee5b26a5982",
      "parents": [
        "36491d6cc13ddac39b735e3fea9f1444e14d4e59",
        "a4d195d2e17f018d0b984c50282c7d0fa49ca481"
      ],
      "author": {
        "name": "Ned Burns",
        "email": "pixel@google.com",
        "time": "Wed Nov 28 00:37:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 00:37:57 2018 +0000"
      },
      "message": "Merge \"Refactor ExpandableView to maintain its own ExpandableViewState.\""
    },
    {
      "commit": "e92cdae2773ff29502781670e35eaf882d5e36c6",
      "tree": "2d64b9e0adcede8551f063470b49ecfa3fb7f68d",
      "parents": [
        "2ca566b525dba8b9da8a917ca999c2df0caa0de0"
      ],
      "author": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Wed Nov 21 16:35:04 2018 -0800"
      },
      "committer": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Tue Nov 27 16:26:19 2018 -0800"
      },
      "message": "1/n: Move BiometricDialog management to BiometricService\n\nThe BiometricDialog management was done in AuthenticationClient, but\nthis is not great for the following reasons\n1) The dialog lifecycle should not be 1:1 tied to the client monitor,\n   since this restricts flexibility\n2) Devices with multiple biometrics implemented on BiometricDialog\n   will require extra work. Moving the dialog management up one layer\n   should solve this limitation\n\nBiometricService now sends both its own receiver and the client\u0027s receiver\nto the appropriate \u003cBiometric\u003eService. When the client is actually started\nby the \u003cBiometric\u003eService, it will forward the client\u0027s (BiometricPrompt\u0027s)\nreceiver to BiometricService. Lifecycle management is currently still in\n\u003cBiometric\u003eService since the platform still uses \u003cBiometric\u003eService\ndirectly. AuthenticationClient for BP is now started with the wrapper\nreceiver, which allows BiometricService to handle messages before deciding\nif it should forward the message to the client.\n\nMoving lifecycle management to BiometricService is currently not a great\nidea since framework doesn\u0027t always go through BiometricService.\n\nAlso merged IBiometricPromptReceiver with IBiometricServiceReceiver\n\nBug: 111461540\n\nTest: Negative button works (error received by demo app)\nTest: Cancelling via back or tapping gray area works (error received\n      by demo app), and hardware is no longer authenticating\nTest: Dismissing BP via negative button or gray area returns only a single\n      error and is not followed by ERROR_CANCELED (as expected)\nTest: Error messages are delayed when BP is showing, not delayed\n      when BP is not showing (pre-auth check errors e.g. no hardware)\nTest: Lockout works\nTest: Lockout counter resets upon successful auth\nTest: Keys are unlocked properly for both implicit and explicit modes\n\nTODO: Figure out multi-modal BiometricService / \u003cBiometric\u003eService\n      synchronization. Likely we keep the bundle in BiometricService\n      and send random numbers (identifier) to \u003cBiometric\u003eService. When\n      each \u003cBiometric\u003eService is ready, it should return the number. Once\n      BiometricService receives all identifiers, it can then notify\n      all \u003cBiometric\u003eService to start authenticating.\n\nChange-Id: I2b6fa57ed3c3cbccc7b0be30279f80fa46a8e917\n"
    },
    {
      "commit": "cc64dadb05513a72467f7eb4527aa46f9df16d57",
      "tree": "b8f68082504d47ba24d7440569b75c47359fdc72",
      "parents": [
        "dbbcf07ec5f59f7359a6b9466286509011b7b314",
        "bb68be0ccf2b195ebf5686bb526e0119582a9d87"
      ],
      "author": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Tue Nov 27 22:37:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 22:37:46 2018 +0000"
      },
      "message": "Merge \"Adjusted margins of Ongoing App Ops Dialog\""
    },
    {
      "commit": "a4d195d2e17f018d0b984c50282c7d0fa49ca481",
      "tree": "0e44fca9113bbbff17185ed8cf88e672481dbc5b",
      "parents": [
        "18b665d4cd40155e0008d699503d07ef892fcd00"
      ],
      "author": {
        "name": "Dave Mankoff",
        "email": "mankoff@google.com",
        "time": "Fri Nov 16 13:33:27 2018 -0500"
      },
      "committer": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Tue Nov 27 17:04:26 2018 -0500"
      },
      "message": "Refactor ExpandableView to maintain its own ExpandableViewState.\n\nBug: 119282834\nTest: atest SystemUITests (and manual)\nChange-Id: I2067488482d9f48767d8e2c9b37c69a40c3b0d88\n"
    },
    {
      "commit": "5129bf1dc946eff38108b124f0fbb02954ef1bc6",
      "tree": "ea8f0152a7003eca4dec797816986a2a1278cd66",
      "parents": [
        "9449285d67c88fd12b0c44d0a834d426c5839dd8"
      ],
      "author": {
        "name": "Evan Laird",
        "email": "evanlaird@google.com",
        "time": "Tue Nov 27 16:29:37 2018 -0500"
      },
      "committer": {
        "name": "Evan Laird",
        "email": "evanlaird@google.com",
        "time": "Tue Nov 27 16:31:17 2018 -0500"
      },
      "message": "Fix comment on VisibilityLocationProvider\n\nForgot to push this up before clicking \u0027autosubmit\u0027\n\nTest: read the comment\nChange-Id: I8c458b665668bfd5063d5667d172a9af3a42fdde\n"
    },
    {
      "commit": "67d97b4bf33882a9dc3afa1e234a9cc207b836b3",
      "tree": "ffaec8baef208a06f73cee60be53c29b8b0bd024",
      "parents": [
        "9e893a11fb456e72f16d30d67a32fcc314ddb8a5",
        "9449285d67c88fd12b0c44d0a834d426c5839dd8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 27 21:29:01 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 21:29:01 2018 +0000"
      },
      "message": "Merge \"Don\u0027t let everyone reach into NotificationData.Entry for its row\""
    },
    {
      "commit": "6067dfbc235903f66cf85f14364e3362bbbd3be8",
      "tree": "82d6a08d311f91eb8f63b451dc69f40e13dac00f",
      "parents": [
        "ce7357ad97b0e2af2e91ce1cda79f3ca8c1d6965"
      ],
      "author": {
        "name": "Robert Snoeberger",
        "email": "snoeberger@google.com",
        "time": "Tue Nov 27 15:50:13 2018 -0500"
      },
      "committer": {
        "name": "Robert Snoeberger",
        "email": "snoeberger@google.com",
        "time": "Tue Nov 27 15:50:13 2018 -0500"
      },
      "message": "Add test for stack scroller padding.\n\nAdding tests before changing the KeyguardClockPositionAlgorithm to deal\nwith positioning the stack scroller when a full screen custom clock is\npresent. The tests should help reduce the risk of regressions.\n\nBug: 120037316\nTest: KeyguardClockPositionAlgorithmTest passes locally\nChange-Id: I505d9402fd73697f4222138bd753bdfe32f87337\n"
    },
    {
      "commit": "bb68be0ccf2b195ebf5686bb526e0119582a9d87",
      "tree": "2c8eaa51ed6ccc88944729dcbc2a63e59c76e750",
      "parents": [
        "9ebc59e956dae017cb519c61277c56ecc2875b57"
      ],
      "author": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Mon Nov 19 12:58:01 2018 -0500"
      },
      "committer": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Tue Nov 27 15:38:15 2018 -0500"
      },
      "message": "Adjusted margins of Ongoing App Ops Dialog\n\nMargins adjusted according to updated mocks\n\nTest: Visual (show layout bounds)\nFixes: 120027803\nChange-Id: I052a5711f41087427833b1b6341e8d09b808a531\n"
    },
    {
      "commit": "f2ada528e4faa63bce51063a8a573793a63db824",
      "tree": "6f0fe3213bd6976849e3cc243370036edd4b34a8",
      "parents": [
        "20dbbf22b8ef69a9556ae729c2c60a12c60a3d8f",
        "b5625ac6f677e7ddbc3be735e3a17a0cae80daad"
      ],
      "author": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Tue Nov 27 19:55:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 19:55:22 2018 +0000"
      },
      "message": "Merge \"Fixes multi-user support\""
    },
    {
      "commit": "ceced17a2470a2cd144dd74f207551297f9a3bde",
      "tree": "6a2bac98f745a9f2fdd850f3636dcf75347b01cb",
      "parents": [
        "490db5dda0f147fd1dd689fde136d2214d7f3315"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Nov 27 11:18:39 2018 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Nov 27 11:54:35 2018 -0800"
      },
      "message": "Use secure settings to enable / disable types of auto bubbling\n\nOptions are:\n* Ongoing: ongoing notifications\n* Messaging: message style, inline reply, or message category\n* All: all notifications\n\nAll of these options ignore ranking information\nTest: manual - all of the flags false \u003d\u003e make sure no notifs bubble\n             - each of the flags on \u003d\u003e make sure expected notifs bubble\nBug: 111236845\n\nChange-Id: Ic7cc87681671fd8ab93bda55282eb8fb63bd4ad9\n"
    },
    {
      "commit": "20dbbf22b8ef69a9556ae729c2c60a12c60a3d8f",
      "tree": "82dcd2554bc3719d834213a93c21242de9feaf35",
      "parents": [
        "d30510904ed2297f3eb2381b59c0dc5cab0a3d5e",
        "299967040661f0722585c9a3a180069cdfb14d75"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 27 19:51:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 19:51:55 2018 +0000"
      },
      "message": "Merge \"Add onSuggestedReplySent in NotificationAssistantService\""
    },
    {
      "commit": "d30510904ed2297f3eb2381b59c0dc5cab0a3d5e",
      "tree": "e1850788418cecb634f0535782f31d114bd58b9e",
      "parents": [
        "2bad68cd1a4ee4cc9b4617507fa7884bfafec053",
        "b2d9f48fe16b896381f6d46784349e33d03ca563"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Tue Nov 27 19:36:56 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 19:36:56 2018 +0000"
      },
      "message": "Merge \"Wake-up sensors integration\""
    },
    {
      "commit": "299967040661f0722585c9a3a180069cdfb14d75",
      "tree": "b513aa77c8d48336caf4cd73cb08033129f29cd2",
      "parents": [
        "060248c3f94a21434291c60aaf0b4c608e7a0a80"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Mon Nov 26 16:23:34 2018 +0000"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Tue Nov 27 18:18:21 2018 +0000"
      },
      "message": "Add onSuggestedReplySent in NotificationAssistantService\n\nThis is added to report clicks on smart reply buttons to NAS.\n\nAlso refactored the code a bit by having SmartReplyView to use\nSmartReplies and SmartActions object, rather than passing a long list\nof arguments.\n\nTest: atest SystemUITests\nTest: Manual. Tapped on the reply and observed the log.\nBUG: 111437455\n\nChange-Id: I897fb46a304f4f7b80b2a6bc4db0ac39f6dc6e8f\n"
    },
    {
      "commit": "30968d9df74fbdf8491c116ca72e54ae54be16bd",
      "tree": "7a468aa5a4f13726dd385ea3380b0804e6a497ac",
      "parents": [
        "9d03c64c97ff453821ab9d41ab5d3d3b986c3fe3",
        "2aaf94484ebfd7a19a22b490b42925ee7d916795"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Tue Nov 27 17:24:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 17:24:07 2018 +0000"
      },
      "message": "Merge \"Keyguard: Fix leaking fingerprint registration\""
    },
    {
      "commit": "feb9de64f1c91a07a063a847bcb07c33e902a059",
      "tree": "990bdd047621abf535cb1e8fafb184e6c9f5b0c9",
      "parents": [
        "82fec85ccb5b8257acef34e2fdb4ddc3020af357"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Mon Nov 26 14:35:17 2018 -0800"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Tue Nov 27 16:44:49 2018 +0000"
      },
      "message": "PowerUI: poll thermal sensor in handler\n\nFixes: 120037422\nBug: 116866524\nTest: adb logcat |grep SystemUIBootTiming\nChange-Id: I2b76aa43bb093a884080809ef0f984de65ce4729\n"
    },
    {
      "commit": "2c80342081a0ae2f509e8ccff4a497f05cd4a204",
      "tree": "405fddfb6073666e45ac4955d6ed201cf0597dfe",
      "parents": [
        "a78918340150547a3ebc2f94fc8d79bcce4ebe5f",
        "5d44a4f42686c3dffba1788fd40269e3d989ffc4"
      ],
      "author": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Tue Nov 27 15:53:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 15:53:20 2018 +0000"
      },
      "message": "Merge \"Fixes strings\""
    },
    {
      "commit": "b5625ac6f677e7ddbc3be735e3a17a0cae80daad",
      "tree": "ebc36a8b0c46aa787dc83ec6a6a43d974fef5960",
      "parents": [
        "9ebc59e956dae017cb519c61277c56ecc2875b57"
      ],
      "author": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Wed Nov 21 08:56:55 2018 -0500"
      },
      "committer": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Tue Nov 27 09:56:04 2018 -0500"
      },
      "message": "Fixes multi-user support\n\nThe controller is probably not recreated on user changed, so it listens\nto intent broadcasts to update its current profiles list.\n\nTest: atest\nFixes: 120028217\n\nChange-Id: I8139827065fc61bc215870631f0215dd1bebe697\n"
    },
    {
      "commit": "9449285d67c88fd12b0c44d0a834d426c5839dd8",
      "tree": "f29ff4a2329c6fe0faedb4e816b1a7a9d923a5eb",
      "parents": [
        "ce7357ad97b0e2af2e91ce1cda79f3ca8c1d6965"
      ],
      "author": {
        "name": "Evan Laird",
        "email": "evanlaird@google.com",
        "time": "Thu Oct 25 13:43:01 2018 -0400"
      },
      "committer": {
        "name": "Evan Laird",
        "email": "evanlaird@google.com",
        "time": "Tue Nov 27 09:37:54 2018 -0500"
      },
      "message": "Don\u0027t let everyone reach into NotificationData.Entry for its row\n\nTest: atest SystemUITests\nChange-Id: I0b4b66769afcf39c35800d293c22263e31790788\n"
    },
    {
      "commit": "060248c3f94a21434291c60aaf0b4c608e7a0a80",
      "tree": "2e12f759bfecee2b6978392097891fa4d3c4a64b",
      "parents": [
        "18ff89613840fe451f93c0d1d476186e7f5fbad9",
        "627ad3780e3ea715179cd33dd6eeb4e5d4c33930"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 27 14:22:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 14:22:40 2018 +0000"
      },
      "message": "Merge \"Show DND icon on AOD whenever DND is on\""
    },
    {
      "commit": "2aaf94484ebfd7a19a22b490b42925ee7d916795",
      "tree": "39e2c385da4454e63c7ce741b88017f2c9174957",
      "parents": [
        "211af382c2b8eb171fb8995d0fc703fcd7089533"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Nov 20 16:57:33 2018 +0100"
      },
      "committer": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Tue Nov 27 14:47:38 2018 +0100"
      },
      "message": "Keyguard: Fix leaking fingerprint registration\n\nFixes an issue where the fingerprint registration could leak for the following\nsequence of requests:\n\n- shouldListen becomes true\n- updateListening (STOPPED -\u003e RUNNING)\n- shouldListen becomes false\n- updateListening (RUNNING -\u003e CANCELLING)\n- shouldListen becomes true\n- updateListening (CANCELLING -\u003e RESTARTING)\n- shouldListen becomes false\n- updateListening (nop, because RESTARTING is not considered a running state)\n- handleFingerprintError(reason\u003dCANCELLED) wrongly restarts listening\n\nBug: 119813074\nTest: Verify fingerprint unlocking still works. Verify fingerprint listening does not get stuck after unlocking via bouncer.\nChange-Id: Ibd1bf3a161164586466d2b1d965e53a648c7038b\n"
    },
    {
      "commit": "5e00c9860423529bfbcdd4b81b11006df411e180",
      "tree": "e368ebfd3d9c1997f89d90af2722516c10a33b28",
      "parents": [
        "1c32bcc762725b956a8e2a50496dfce6d3911b5b"
      ],
      "author": {
        "name": "Rhed Jao",
        "email": "rhedjao@google.com",
        "time": "Tue Nov 27 19:41:05 2018 +0800"
      },
      "committer": {
        "name": "Rhed Jao",
        "email": "rhedjao@google.com",
        "time": "Tue Nov 27 19:41:05 2018 +0800"
      },
      "message": "Update pip menu to use a11y api for ui timeout value.\n\nRemove never timeout in pip menu when a11y enabled. Using\napi introduced by A11yManager to get recommended ui timeout\nvalue instead.\n\nBug: 119893870\nTest: Launch PiP activity, ensure menu timeout respect to\nSettings-\u003eA11y-\u003eTime to take action.\n\nChange-Id: I10f765acf3c70cfcec476ac3056f8663598721d9\n"
    },
    {
      "commit": "627ad3780e3ea715179cd33dd6eeb4e5d4c33930",
      "tree": "3f9232375438ee605043c7ec16a0a914709d2156",
      "parents": [
        "211af382c2b8eb171fb8995d0fc703fcd7089533"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Tue Nov 27 10:28:25 2018 +0100"
      },
      "committer": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Tue Nov 27 10:31:19 2018 +0100"
      },
      "message": "Show DND icon on AOD whenever DND is on\n\nBefore, we\u0027d only show it if visual effects were off, and users\ndidn\u0027t quite understand the behavior.\n\nTest: manually toggle DND\nTest: atest KeyguardSliceProviderTest\nBug: 111405682\nChange-Id: I305883564c8d710497a5fc9a8ca0548c30b896f0\n"
    },
    {
      "commit": "f552a90039a447eab71169c48a8592506b62ce49",
      "tree": "69ca21587355fb41b8f2ff4cc0015048bbf05dca",
      "parents": [
        "23b82af43f9d0b5543a2ca6b3eb2bab823c7262c",
        "b6aff4300277d6e11f197e6b318611e2c34646c4"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "charlesccchen@google.com",
        "time": "Tue Nov 27 01:09:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 01:09:53 2018 +0000"
      },
      "message": "Merge \"Use the same logic to create navigation bars(1/2)\""
    },
    {
      "commit": "85a8f9f082347241b0e0a8962c13a003248df6ed",
      "tree": "464b2500f160f4b5aad0df22b608f532ba0ac95c",
      "parents": [
        "9d7964b973aaa5179b9c29356d04bca07a2b719b"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Wed Nov 21 13:58:27 2018 -0800"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Mon Nov 26 14:19:15 2018 -0800"
      },
      "message": "Added more logging about the notification view state\n\nTo determine the rootcause of a blank notification more logging\nabout the viewstate is added.\n\nTest: dump systemui\nBug: 117272628\nChange-Id: Ic4cfce21ddcb50b88d57522219884c2d7adc91fa\n"
    },
    {
      "commit": "b0851aef246026612aaefba7a6b7ce7431137454",
      "tree": "226506aa5eeab8f2e3d6447aef6518568edc35de",
      "parents": [
        "9a72ec33d78a43c8771bfa03061c0fc9d6e4225d",
        "761884ce27834a5fdc49c633d95a0451bb4c234a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 21:59:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 26 21:59:33 2018 +0000"
      },
      "message": "Merge \"Add Notification.Builder.setAllowSystemGeneratedContextualActions().\""
    },
    {
      "commit": "cd80ab8319d3ccaf9552ec588738edee0d21b5da",
      "tree": "a5bfc24e6fb77233741aa49d9dac10a7b05e8bab",
      "parents": [
        "05fa5e1ccff7dcf6baeb4b97a40aef65e8adf4df",
        "268647a748df445b7302bc477d37759c72d8d7e6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 20:10:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 26 20:10:53 2018 +0000"
      },
      "message": "Merge \"Proxy notification improvements\""
    },
    {
      "commit": "9ebc59e956dae017cb519c61277c56ecc2875b57",
      "tree": "99cbdd8d2d94b2cf51e55a669da1c074bbf4539b",
      "parents": [
        "6767eb2a7244f444f3e2e3e8c02ef5a7732c71f9",
        "dc10c9586e96ac37e3460d424c6cf903e7960320"
      ],
      "author": {
        "name": "Gus Prevas",
        "email": "kprevas@google.com",
        "time": "Mon Nov 26 18:26:45 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 26 18:26:45 2018 +0000"
      },
      "message": "Merge \"Inline \u0026 privatize methods in NotificationEntryManager\""
    },
    {
      "commit": "268647a748df445b7302bc477d37759c72d8d7e6",
      "tree": "4b5ddbe1eafb2797f59dafacb3884f7eb863e3e3",
      "parents": [
        "9ce0e27cb94480025f6703e0d15b799efb09ccdb"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Thu Oct 25 16:54:27 2018 -0400"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Mon Nov 26 11:13:16 2018 -0500"
      },
      "message": "Proxy notification improvements\n\n- Fix a bug where the notifications weren\u0027t being posted\n- Add attribution to the notification guts\n\nBug: 111452544\nTest: atest\nChange-Id: Id19e58cf66a62b179cb684783b264dad8a5371b0\n"
    },
    {
      "commit": "50f84e882913d3d1e140fa42d82fa046abc92eab",
      "tree": "277ab36399a57583f484031c86371fd944e67527",
      "parents": [
        "1215943a5590267077650a818545a2230478601a",
        "7b54d5796c127c140fa68a9c4ccb4efc304f0d26"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Mon Nov 26 02:47:41 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 26 02:47:41 2018 -0800"
      },
      "message": "Merge \"Fix the behavior of keyguard bouncer in a corner case\" am: 6997660506 am: 576351dbb4\nam: 7b54d5796c\n\nChange-Id: I85e1c04253438685424c3f1fd3d7690425e9ffce\n"
    },
    {
      "commit": "7b54d5796c127c140fa68a9c4ccb4efc304f0d26",
      "tree": "4c8109bba6481ebd3688684ce74a4941d99b03df",
      "parents": [
        "03c6d371aa91febe7beafcfb968d1de403615b12",
        "576351dbb410a7bc9fb49c25a25a4a03a74f35c6"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Mon Nov 26 02:38:27 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 26 02:38:27 2018 -0800"
      },
      "message": "Merge \"Fix the behavior of keyguard bouncer in a corner case\" am: 6997660506\nam: 576351dbb4\n\nChange-Id: Iefd1d3ae5e8b1688c339a8b91bbbcf5de2131767\n"
    },
    {
      "commit": "6997660506721b28203fcfb3b1f58b4845e10b33",
      "tree": "aa230ab19e00efeac3212056d512b518db7f6222",
      "parents": [
        "f928c1e4b9121d9b65dbcdd7932f1ffff25bffc3",
        "a2d94c581d486f0cacbdabb641d9f550bc714fe2"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Mon Nov 26 10:12:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 10:12:05 2018 +0000"
      },
      "message": "Merge \"Fix the behavior of keyguard bouncer in a corner case\""
    },
    {
      "commit": "761884ce27834a5fdc49c633d95a0451bb4c234a",
      "tree": "6aa5be96268bd53e5113b02ae3cfe50707c1fc53",
      "parents": [
        "5c4f214953d0b364df2a37d17cf1fc3d71655d05"
      ],
      "author": {
        "name": "Gustav Sennton",
        "email": "gsennton@google.com",
        "time": "Mon Nov 19 17:40:19 2018 +0000"
      },
      "committer": {
        "name": "Gustav Sennton",
        "email": "gsennton@google.com",
        "time": "Thu Nov 22 10:27:27 2018 +0000"
      },
      "message": "Add Notification.Builder.setAllowSystemGeneratedContextualActions().\n\nIf an app doesn\u0027t add any smart replies or smart (contextual) actions to\ntheir (message) notifications the Android platform fills in smart\nreplies and actions for the app.\nWith this CL we add a way to opt out of system generated contextual\nactions.\n\nBug: 119765729\nTest: atest NotificationContentViewTest\nChange-Id: I6190fd197f74b8353f7113f2d8ba86068c2b78ab\n"
    },
    {
      "commit": "7c610aaab3cbec1d3265a401a2621cfc4a1664a2",
      "tree": "99ec133c3dba828c6673401e57c9964f2fbf929c",
      "parents": [
        "0b69021d93f19bb2a9ddba302bd8d054598ddf80"
      ],
      "author": {
        "name": "Tiger Huang",
        "email": "tigerhuang@google.com",
        "time": "Sat Oct 27 00:01:01 2018 +0800"
      },
      "committer": {
        "name": "Tiger Huang",
        "email": "tigerhuang@google.com",
        "time": "Thu Nov 22 17:58:06 2018 +0800"
      },
      "message": "Let System UI show on external displays (1/3)\n\nLet each display have one status bar and one navigation bar. This is\nso on each display, status bar and navigation bar can be laid out with\napps and produce proper insets.\n\nBug: 117474929\nTest: atest com.android.server.wm\nTest: Watch YouTube video in fullscreen mode, and see if status bar\n      and navigation will be hidden as expected. Swipe on the edge\n      of screen and see if status bar and navigation bar are both\n      shown as expected.\n\nChange-Id: I1550659b7cd1dd1676bf04483c5b68376ef42905\n"
    },
    {
      "commit": "fa830752aa664027885ec2a47522f27113bee544",
      "tree": "b623c50a7e335e9655b760a8cdf4bb3f59e3e6fb",
      "parents": [
        "0a889e3fc659c27f675734fe837413248b1c7874",
        "eab5368d4f1cd21482fd3051f423def23b925ee8"
      ],
      "author": {
        "name": "Gustav Sennton",
        "email": "gsennton@google.com",
        "time": "Thu Nov 22 00:58:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 22 00:58:46 2018 +0000"
      },
      "message": "Merge \"Add smart actions to message notifications.\""
    },
    {
      "commit": "a9a37d84c17fda149ea8726700f436fb83aa2638",
      "tree": "4aa55af14f7f2b048f588334642dadd5c07501f2",
      "parents": [
        "3328a2ca259514902051a6f1d1f448dee35ec322",
        "bf05e6000cc0fe7142015c02903344341f4f647c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 21 21:53:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 21 21:53:29 2018 +0000"
      },
      "message": "Merge \"Add mock thermal service in PowerUI test\""
    },
    {
      "commit": "bf05e6000cc0fe7142015c02903344341f4f647c",
      "tree": "6b66c0aa8102a57706bcdccb3c0207fcb047de0e",
      "parents": [
        "37b175448a9771c091a2dc002c3053a208075f2f"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Wed Nov 21 11:46:48 2018 -0800"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Wed Nov 21 12:11:56 2018 -0800"
      },
      "message": "Add mock thermal service in PowerUI test\n\nThermal event might interfere with unit test.\n\nBug: 119873861\nTest: atest frameworks/base/packages/SystemUI/tests/src/com/android/systemui/power/PowerUITest.java\nChange-Id: If610d53355bf4e2c29b807acce887096489f62c8\n"
    },
    {
      "commit": "5d44a4f42686c3dffba1788fd40269e3d989ffc4",
      "tree": "3347857a5cd162eae1c5676fed1d40917e73b30d",
      "parents": [
        "8ef672a1b971c32b8db23897c5d68dceb81f60a9"
      ],
      "author": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Wed Nov 21 15:00:43 2018 -0500"
      },
      "committer": {
        "name": "Fabian Kozynski",
        "email": "kozynski@google.com",
        "time": "Wed Nov 21 15:01:10 2018 -0500"
      },
      "message": "Fixes strings\n\nBug: 119835271\nBug: 119835278\nBug: 119835773\nTest: visual\nChange-Id: Ifb860cfac3354d0a64d856c003fc33d112f2d0f8\n"
    },
    {
      "commit": "ebffde2e191a609298d342260abd0226a9bd1a59",
      "tree": "7c67c8044b1d8bc70d4c9908ccf751f2d77617a9",
      "parents": [
        "a5019f8d8a0fc00b95f923d590e5a020f01e7012",
        "0332379938c01cbcaba09915f4df5c163151d6d9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 21 19:48:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 21 19:48:25 2018 +0000"
      },
      "message": "Merge \"Fixes notification menu fade-in on swipe.\""
    },
    {
      "commit": "dc10c9586e96ac37e3460d424c6cf903e7960320",
      "tree": "96a76c004dff79fa1066d52847878c4b40371b23",
      "parents": [
        "2ca566b525dba8b9da8a917ca999c2df0caa0de0"
      ],
      "author": {
        "name": "Ned Burns",
        "email": "pixel@google.com",
        "time": "Wed Nov 21 14:36:21 2018 -0500"
      },
      "committer": {
        "name": "Ned Burns",
        "email": "pixel@google.com",
        "time": "Wed Nov 21 14:38:12 2018 -0500"
      },
      "message": "Inline \u0026 privatize methods in NotificationEntryManager\n\nInline two methods that were only ever called in one\nother place and didn\u0027t add much in terms of readability.\n\nChange many protected methods and members to private.\n\nTest: none\n\nChange-Id: I9609e76e928b977847fa652f94496c26b1ccd7cd\n"
    },
    {
      "commit": "0332379938c01cbcaba09915f4df5c163151d6d9",
      "tree": "f33f243ee8e35688cfba2fc2f4c868207698e507",
      "parents": [
        "d0f47278c4dae7274d6437942f2fca23c148f803"
      ],
      "author": {
        "name": "Gus Prevas",
        "email": "kprevas@google.com",
        "time": "Wed Nov 21 10:16:08 2018 -0500"
      },
      "committer": {
        "name": "Gus Prevas",
        "email": "kprevas@google.com",
        "time": "Wed Nov 21 13:22:37 2018 -0500"
      },
      "message": "Fixes notification menu fade-in on swipe.\n\nThis change modifies NotificationMenuRow to fade in the menu when it\nreceives the onSnapOpen() callback if it hasn\u0027t start fading it in yet.\nThis can occur on a fast enough swipe on a non-dismissable notification,\nor a fast leftward swipe on any notification with the new interruption\nmodel enabled.\n\nChange-Id: I4cfd01c436498d7b55e1f1f5a5584c577a699921\nFixes: 119824829\nTest: manually\n"
    },
    {
      "commit": "eab5368d4f1cd21482fd3051f423def23b925ee8",
      "tree": "881bc65d6db0b55ed2f3452f4fa2620cefb4f567",
      "parents": [
        "413ce3b609c00a1da306b45a00daff2023927f05"
      ],
      "author": {
        "name": "Gustav Sennton",
        "email": "gsennton@google.com",
        "time": "Thu Nov 01 16:30:23 2018 +0000"
      },
      "committer": {
        "name": "Gustav Sennton",
        "email": "gsennton@google.com",
        "time": "Wed Nov 21 15:35:43 2018 +0000"
      },
      "message": "Add smart actions to message notifications.\n\nSmart Action look similar to Smart Replies with an icon next to the\nbutton text.\nSmart Actions can be added either by an app, or by the framework itself\n(through NotificationAssistantService).\nThe idea is that Smart Actions are really actions relating to the\ncontent in the notification message.\n\nThe priority order of smart replies vs. actions will be dealt with in a\nfollow-up CL (i.e. whether we should prioritize showing smart actions\nover smart replies).\n\nExample notifications:\nSystem generated:\nhttps://screenshot.googleplex.com/f6p8uOMygeT.png\nApp generated:\nhttps://screenshot.googleplex.com/VR6On1eh4CW.png\n2 app generated actions:\nhttps://screenshot.googleplex.com/QuM5e792xhb.png\n\nBug: 111406942\nTest: manual tests \u003d add custom actions directly in sys ui and ensure\nthey\u0027re shown in message notifications.\nTest: atest SystemUITests\n\nChange-Id: I0ce959b74e89bcabc69b76c50c1877e70d6f06df\n"
    },
    {
      "commit": "f66699ae165ce30f1cda1cfd704027a75bf457d2",
      "tree": "80b330315e2ce7fbc31bdd04b105651265edf6ad",
      "parents": [
        "5d7e531cddb56290f8519d5a41c9468c17f50e5c",
        "da13cfa59aaa4c6bae76e6c3d0a4161342075d18"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 20 23:57:43 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 20 23:57:43 2018 +0000"
      },
      "message": "Merge \"Fixes background animation on dismiss.\""
    },
    {
      "commit": "8053ac5abdc7694bdde4cc6f640cba934208d12b",
      "tree": "de6eb08cc4b86f9c82997b1ea4c052541408bcf2",
      "parents": [
        "0a91bc975e73fa1999a57a3ad419cb0099a2f584",
        "4b8bbda21b67498c0199e88aca33ddb3b590dd5d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 20 22:33:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 20 22:33:17 2018 +0000"
      },
      "message": "Merge changes from topic \"alert-group-transfer-fix\"\n\n* changes:\n  Fix GroupAlertTransferHelper logic on update.\n  Fix heads up/ambient content inflation w/ groups.\n"
    },
    {
      "commit": "d4c3230d6b3b2b8fe4ae702f8191d81da56a350a",
      "tree": "d5116215c23fabdf26f90c925bfaaab42b31cc15",
      "parents": [
        "ff2ffece4bc5a1a344e593f801d51c9acd4c71a6"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Mon Nov 19 19:43:14 2018 -0800"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Tue Nov 20 12:22:50 2018 -0800"
      },
      "message": "Fixed an issue where notifications could be stuck empty\n\nWe still had some legacy code which would make sure that the alpha of\ndragged views would remain the same, but that isn\u0027t just unnecessary\nbut could lead to bugs where the view itself was stuck with alpha 0.\n\nTest: runtest systemui\nChange-Id: I36768bebcb2831aa422bafe7b18c92a4834e7745\nFixes: 80525283\n"
    },
    {
      "commit": "da13cfa59aaa4c6bae76e6c3d0a4161342075d18",
      "tree": "7a45fcb93654c9667c83d5ab28e276a82f39529d",
      "parents": [
        "d0f47278c4dae7274d6437942f2fca23c148f803"
      ],
      "author": {
        "name": "Gus Prevas",
        "email": "kprevas@google.com",
        "time": "Tue Nov 20 14:58:48 2018 -0500"
      },
      "committer": {
        "name": "Gus Prevas",
        "email": "kprevas@google.com",
        "time": "Tue Nov 20 14:58:48 2018 -0500"
      },
      "message": "Fixes background animation on dismiss.\n\nThis change modifies the logic in\nNotificationStackScrollLayout.updateFirstAndLastBackgroundViews() which\ndetermines if the first or last visible notification row has changed.\nThe \"old\" values were being read after the changes were applied, meaning\nthat the change was never detected, so an animation was never started.\n\nTest: manually\nChange-Id: I29869f5b0f78fd81a17d2c3dbe18c067f94fdb5e\nFixes: 119792278\n"
    },
    {
      "commit": "ff2ffece4bc5a1a344e593f801d51c9acd4c71a6",
      "tree": "2b24ceb7bbc1e06bae2c6734ded7abe430fd1b70",
      "parents": [
        "8f707bb8e5d638b5c8450e0c6b1c84ee132226ff"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Mon Nov 19 18:52:01 2018 -0800"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Tue Nov 20 11:54:24 2018 -0800"
      },
      "message": "Removed the shadow alpha property from notifications\n\nIt wasn\u0027t used anymore. Additionally are we also removing the\ndrag animation events that were originally created for the shadow\nalpha animations.\n\nTest: runtest systemui\nChange-Id: Ia5cbf7ecb2728fc1298c1b22f3f37bac6b531803\nFixes: 119791828\n"
    },
    {
      "commit": "4b8bbda21b67498c0199e88aca33ddb3b590dd5d",
      "tree": "41e5f99e7275385cc4f98f0d67861b30fbf8c6f7",
      "parents": [
        "01a53cbfcd6f44ccd1d3c1fcdf488822b5c66b0b"
      ],
      "author": {
        "name": "Kevin",
        "email": "kevhan@google.com",
        "time": "Mon Nov 19 14:36:31 2018 -0800"
      },
      "committer": {
        "name": "Kevin",
        "email": "kevhan@google.com",
        "time": "Tue Nov 20 10:58:00 2018 -0800"
      },
      "message": "Fix GroupAlertTransferHelper logic on update.\n\nPreviously, all transferred alerts were removed when the inflation was\naborted. This could cancel transfers when the child was simply updating.\nNow, this only occurs on remove. On update, the previous heads up/\nambient inflation flag is carried over and the helper determines if\nthe content should actually heads up after inflation.\n\nBug: 111809944\nTest: runtest systemui, manual\nChange-Id: Ic7c5414849e2bfa1978bb1c57ed314c4997b8ea2\n"
    },
    {
      "commit": "01a53cbfcd6f44ccd1d3c1fcdf488822b5c66b0b",
      "tree": "a92422b4042f122e0fed64a7cc1e0dc8f9e82be4",
      "parents": [
        "80c2e006363e3543b0d081b974d1eecbb6de9c51"
      ],
      "author": {
        "name": "Kevin",
        "email": "kevhan@google.com",
        "time": "Fri Nov 09 18:19:54 2018 -0800"
      },
      "committer": {
        "name": "Kevin",
        "email": "kevhan@google.com",
        "time": "Tue Nov 20 10:54:40 2018 -0800"
      },
      "message": "Fix heads up/ambient content inflation w/ groups.\n\nThis CL fixes lazy content inflation for alerting notifications in\ngroups by inflating them on the fly if we would transfer to a\nnotification that does not have its content inflated. We introduce a\nhelper class here to explicitly deal with the transfer logic,\nrefactoring a lot of the GroupManager code out.\n\nThis removes the previous workaround to always inflate heads up +\nambient views.\n\nBug: 111809944\nFixes: 111809944\nFixes: 117933032\nFixes: 117894786\nTest: runtest systemui\nTest: manual, posted groups that trigger a transfer and a transfer back.\nGroup alerts behaved as expected.\nChange-Id: I9b5ec4c8bdeea20707874d90213dcd1d22d8b503\n"
    },
    {
      "commit": "b39b469b1276dd3578b8a778d18de59cb9f7da20",
      "tree": "2563dd95613f617a8ec5c1fe253345dabad56f40",
      "parents": [
        "5e2f5f27ffb064b3d774c734b52a754e3682db48",
        "183271d1d240fb2a92628e00b132b4490461f59f"
      ],
      "author": {
        "name": "yuanjiahsu",
        "email": "yuanjiahsu@google.com",
        "time": "Tue Nov 20 18:44:55 2018 +0800"
      },
      "committer": {
        "name": "yuanjiahsu",
        "email": "yuanjiahsu@google.com",
        "time": "Tue Nov 20 20:55:49 2018 +0800"
      },
      "message": "resolve merge conflicts of 183271d1d240fb2a92628e00b132b4490461f59f to master\n\nBug: None\nTest: I solemnly swear I tested this conflict resolution.\nChange-Id: I219a85189fb4207a0605ca541f8ecc29f5ee6808\n"
    },
    {
      "commit": "183271d1d240fb2a92628e00b132b4490461f59f",
      "tree": "94b0cfa346588c8ba13b289514d6bd8d8b742ab9",
      "parents": [
        "c3f416b6cd3694db6d3c2ecc6a846c4dd3efe0e4",
        "4f4e52c1b94d5a76769e1ff672bc9f202ef01657"
      ],
      "author": {
        "name": "Yuanjia Hsu",
        "email": "yuanjiahsu@google.com",
        "time": "Mon Nov 19 23:12:33 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 19 23:12:33 2018 -0800"
      },
      "message": "Merge \"Modify feature flag of Personal Safety\" am: b4a197ca39\nam: 4f4e52c1b9\n\nChange-Id: Iebde195a7f6fd86cae357169fae76368df9727b4\n"
    },
    {
      "commit": "621a683ea749d50985433f4c955ccda2d1277daa",
      "tree": "27822668a64a0a71928bc22cfba18bad188fc720",
      "parents": [
        "69ae5f7daf992b360bf2b4457b6df5d811b896c8",
        "b3b9c265436983ea2770cd2f3d3bc1697ad5c96b"
      ],
      "author": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Tue Nov 20 04:50:52 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 20 04:50:52 2018 +0000"
      },
      "message": "Merge \"Add privileged API to control keyguard secure notifications\""
    },
    {
      "commit": "4c102acbf9ec0b5b3db4ac6dd683c97e04b8225d",
      "tree": "e82c8bd5b605d91af8c43eb86443308323455881",
      "parents": [
        "9734fa5330a5b6b84d8d92ebd02a7f19fe4c8881",
        "cd9b1308271cd1a3b907e9476ab5c07f22dc66aa"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Nov 20 02:12:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 20 02:12:50 2018 +0000"
      },
      "message": "Merge changes from topic \"initial-bubbs\"\n\n* changes:\n  Update scrim controller to bubble state when bubbles are expanded\n  Introduce scrim state for bubbles\n  Update PIP dismiss to work a little better for bubbles\n  Make status bar full screen when bubbles are present\n  Auto bubble some notifications (behind debug flag)\n  Introduce bubble controller \u0026 friends\n"
    },
    {
      "commit": "cd9b1308271cd1a3b907e9476ab5c07f22dc66aa",
      "tree": "978862dd5c0f0c43c04ae82a9c01f587005fd109",
      "parents": [
        "0c333774c87f50db7cf7fb02fed577de7927d503"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Nov 06 18:08:04 2018 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Nov 19 15:19:50 2018 -0800"
      },
      "message": "Update scrim controller to bubble state when bubbles are expanded\n\nThere\u0027s one issue with this where if you expand status bar\non top of the expanded bubble there is no scrim in between.\n\nTest: manual / existing tests pass (atest SystemUITests)\nBug: 111236845\nChange-Id: I2510758366999131ac7ffbb7505026727f4e40e1\n"
    },
    {
      "commit": "0c333774c87f50db7cf7fb02fed577de7927d503",
      "tree": "20e2dc37f932563ab00860af132b6eb4f23bfe13",
      "parents": [
        "2f01ed9a2ce480ae156f51826bec15ac041cde44"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Nov 06 18:05:54 2018 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Nov 19 15:12:32 2018 -0800"
      },
      "message": "Introduce scrim state for bubbles\n\nWhen bubbles are expanded we\u0027ll want to put a scrim behind them, this\nis the scrim state we\u0027ll use.\n\nSuper simple test to check that alpha / visibility state of scrims\nare as expected\n\nTest: atest frameworks/base/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java\nBug: 111236845\nChange-Id: I1ee8ff9e7ce35aae692cf75a912106255e0e9b5a\n"
    },
    {
      "commit": "2f01ed9a2ce480ae156f51826bec15ac041cde44",
      "tree": "b9a17f45d54f00db0db55910e099a0a7086a034a",
      "parents": [
        "d1c78b26fbc1b7f2529803bf1fb3c894e1afd722"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Wed Nov 07 09:24:04 2018 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Nov 19 15:12:32 2018 -0800"
      },
      "message": "Update PIP dismiss to work a little better for bubbles\n\n* Buzz when the view is dragged into the target\n* Adds showing / checking if bubble is dismissed to the touch handler\n\nTest: manual / existing tests pass (atest SystemUITests)\nBug: 111236845\nChange-Id: I7b99e0b81f22351dbc59025b37425a05f16a92a0\n"
    },
    {
      "commit": "d1c78b26fbc1b7f2529803bf1fb3c894e1afd722",
      "tree": "aa9ffc6ee1e6d44f263f0ceb3ad010d3ee97ffe8",
      "parents": [
        "5549dd2d3e59833e1a5012b9115509b83581aa44"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Nov 06 18:04:40 2018 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Nov 19 15:12:29 2018 -0800"
      },
      "message": "Make status bar full screen when bubbles are present\n\n* Adds new state \u0027bubblesShowing\u0027 to StatusBarWindowController\n* When bubbles are showing status bar will be full screen and\n  the touchable region will be updated\n\nTest: manual / existing tests pass (atest SystemUITests)\nBug: 111236845\nChange-Id: I6d28d0313104929fba49d326a72209f701eb78d5\n"
    },
    {
      "commit": "5549dd2d3e59833e1a5012b9115509b83581aa44",
      "tree": "984ff8cba23ed1c72f73403bd756b8bee3c0f6db",
      "parents": [
        "c3d6f7d386286a4e55a3e0644782827705db7168"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Nov 06 18:07:34 2018 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Nov 19 15:11:37 2018 -0800"
      },
      "message": "Auto bubble some notifications (behind debug flag)\n\nWhen the flag is flipped notifications that fulfill any\nof these will bubble:\n- use MessageStyle\n- have remote input\n- have an app overlay intent\n- have priority \u003e\u003d HIGH\n\nTest: atest SystemUITests (no new tests)\nBug: 111236845\nChange-Id: Iff86d78a24ab798ddb681a1ad59e1131136814d4\n"
    },
    {
      "commit": "c3d6f7d386286a4e55a3e0644782827705db7168",
      "tree": "d204a9a0f337fa85f3e00128a8bd99ee8cbe4232",
      "parents": [
        "2938bf7f773f982fceee54a17a3e933a8ffe8cf5"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Wed Nov 07 09:36:56 2018 -0800"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Mon Nov 19 15:11:34 2018 -0800"
      },
      "message": "Introduce bubble controller \u0026 friends\n\n* BubbleController manages adding / removing / state of the bubbles,\n  this is what other things should use to check what the state is.\n* BubbleStackView renders the stack and deals with expanding / collapsing\n  and any view stuff\n* BubbleView creates the circular bubble representation and holds the\n  notification entry for the bubble. BubbleStackView manages the\n  BubbleViews.\n* BubbleTouchHandler is where all the touch logic is, BubbleStackView\n  uses and so do BubbleViews if you\u0027re dragging out a BubbleView from the\n  stack to dismiss\n\n* Adding bubbles to the screen and dismissing them are not included in\n  this CL, there are later CLs including this logic\n\nTest: manual / working on proper ones\nBug: 111236845\nChange-Id: I07ae1202cc7019fcd7e00151ad3ca4a48e2e1350\n"
    },
    {
      "commit": "2c69b0b487e23d8213ba8bbc5db4f84cae5af4b0",
      "tree": "03fd86f5991a5f4c31c07c8a2d6cce1890f4826f",
      "parents": [
        "26213ed916e77831790adf4a1f71d8a5734c39af"
      ],
      "author": {
        "name": "yuanjiahsu",
        "email": "yuanjiahsu@google.com",
        "time": "Fri Nov 16 21:37:33 2018 +0800"
      },
      "committer": {
        "name": "Yuanjia Hsu",
        "email": "yuanjiahsu@google.com",
        "time": "Mon Nov 19 13:12:28 2018 +0000"
      },
      "message": "Modify feature flag of Personal Safety\n\n1.Remove feature flag and let Emergency Dialer Shortcut feature always\nenabled.\n2.Add feature flag for Safety Hub (the bug ID to clean up this feature flag is b/118848485).\n\nTest: Manually\nBug: 117128459\nBug: 118809382\nChange-Id: I0a3819629bc579d93c682451abdf271d0b36bf59\n"
    },
    {
      "commit": "7bba5072d48a5e6dcce189ca900aeafd980b7ef4",
      "tree": "983ea27c62bbeb78b0476028d634c6aa2136ea93",
      "parents": [
        "8c33a54824bf5c7fccb58e54fb0bf2f7f14caa13"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Nov 02 14:37:07 2018 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Nov 18 15:59:26 2018 -0700"
      },
      "message": "More robust persisting of screenshots.\n\nStart using the newly added APIs for contributing new media.  This\ngives us strong lifecycle around the \"pending\" state of the\nscreenshot while it\u0027s being written, before we eventually publish or\nabandon it.\n\nAll the previous ImageColumns fields are now filled in\nautomatically by MediaProvider once the image is persisted.\n\nBug: 115377970, 118167155\nTest: atest android.provider.cts.MediaStorePendingTest\nChange-Id: I0bd05336f3a309007c6d0f4fb711c5b467bc18ea\n"
    },
    {
      "commit": "b2d9f48fe16b896381f6d46784349e33d03ca563",
      "tree": "041fc7837c90b694ded8d8113a65aae26155fe72",
      "parents": [
        "b13f29edd05bbfd0252fade500513fc7cd974437"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Fri Nov 16 18:55:13 2018 -0800"
      },
      "committer": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Fri Nov 16 19:02:33 2018 -0800"
      },
      "message": "Wake-up sensors integration\n\nBug: 111414690\nBug: 111405682\nTest: manual\nChange-Id: I9db42b3e5f1964ebe1e52066b1eecf0754e6e3b7\n"
    },
    {
      "commit": "b1dbcc285c14e978c3b7659390d7c0dc691046be",
      "tree": "be4c8bac548d4c70bb0979064ceae5bd20af6283",
      "parents": [
        "22b4fc7c3cb71cc5d6e58ea7e4e78df8e613ac4b",
        "797561c893f37694a838094b1cb469a74d25cb69"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Sat Nov 17 00:19:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 17 00:19:21 2018 +0000"
      },
      "message": "Merge \"Keyguard debug flags\""
    },
    {
      "commit": "86e1d8f3070185a4905d50e2f09528c3b339c243",
      "tree": "e280ab993319bea7cb1fa264e83f390abaac413a",
      "parents": [
        "3b9fb703c9dfa332d7ddd6ef895a464cb2f4108b",
        "c8a01350d3961e8eb0f49a5d9247fc633da2cb44"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 16 23:09:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 16 23:09:32 2018 +0000"
      },
      "message": "Merge \"Keep PluginManager reference to avoid NPE\""
    },
    {
      "commit": "b3b9c265436983ea2770cd2f3d3bc1697ad5c96b",
      "tree": "8e19430efabf2cd799870c81c5f15b3e30e585e1",
      "parents": [
        "33ac9a434e5c8d53f08b075e9aa2b93814dc843b"
      ],
      "author": {
        "name": "Zimuzo",
        "email": "zezeozue@google.com",
        "time": "Wed Oct 31 11:54:20 2018 +0000"
      },
      "committer": {
        "name": "Zimuzo",
        "email": "zezeozue@google.com",
        "time": "Fri Nov 16 22:00:43 2018 +0000"
      },
      "message": "Add privileged API to control keyguard secure notifications\n\nI688e87cf09ad206f4f517a7be960c2aa01af8fc4, restricted privileged apps from silently becoming Device Admins.\n\nIa4e1ce9b81756e7f84ed0aa22d97e0b968cd8d89 added privileged APIs for locking the device and resetting the password.\nWe continue that work by providing an alternative for DevicePolicyManager#setKeyguardDisabledFeatures guarded by android.permission.CONTROL_KEYGUARD_SECURE_NOTIFICATIONS\n\nBug: 111153365\nBug: 112601004\nTest: Secure notifications can be redacted on keyguard\nChange-Id: If81cecf6e74f7abcff581a122c4b68cc04ff57c6\n"
    },
    {
      "commit": "5ed7b13a05d74a39108cfd916700c868245bf101",
      "tree": "8c0dfa044454f525c263c7f1ac961659ddde3e6b",
      "parents": [
        "058b70588367efbfcf6d25f61987892e2cfeda57",
        "bd348a8de4bb9a8cc40498a6a5876bb22a00e2eb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 16 19:45:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 16 19:45:20 2018 +0000"
      },
      "message": "Merge \"Adds block and silence/alert buttons to notification menu.\""
    },
    {
      "commit": "c8a01350d3961e8eb0f49a5d9247fc633da2cb44",
      "tree": "9d9371b4f29229be8dc77b86d07c67c8b2f20a6a",
      "parents": [
        "b13f29edd05bbfd0252fade500513fc7cd974437"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Fri Nov 16 11:31:33 2018 -0800"
      },
      "committer": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Fri Nov 16 11:31:33 2018 -0800"
      },
      "message": "Keep PluginManager reference to avoid NPE\n\nTest: manual\nChange-Id: Ie7ff3eca7a9a02afff0a12d64ec8e40f136ed8d4\nFixes: 118969577\n"
    },
    {
      "commit": "797561c893f37694a838094b1cb469a74d25cb69",
      "tree": "bfe40264c8211c33cd7dca8e47c68259ea32af24",
      "parents": [
        "b13f29edd05bbfd0252fade500513fc7cd974437"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Thu Nov 15 19:20:28 2018 -0800"
      },
      "committer": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Fri Nov 16 11:11:35 2018 -0800"
      },
      "message": "Keyguard debug flags\n\nThese are temporary flags that let our UX team test various\ninteraction patterns. This CL will be reverted once we decide\nhow to move forward.\n\nBug: 111405682\nTest: manual with setprop\nChange-Id: I9235e1e56b0e355c32e808beb32ebd21538ca89d\n"
    },
    {
      "commit": "b6661f3615dd9433472bce6298804108c2788040",
      "tree": "059906991543306576f4c0d4eb94fe364d4c1de9",
      "parents": [
        "a7d9f269d614fe3d38ca51c2c2fc276a8ddb7547",
        "51425313dbcbdf2eac39ccc94e8143247323c19e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 16 17:40:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 16 17:40:31 2018 +0000"
      },
      "message": "Merge \"Swaps position of expand button and bell icon.\""
    }
  ],
  "next": "08bafa97583e540d14de0af190caace6136989c0"
}
