)]}'
{
  "log": [
    {
      "commit": "115418b3c0ad77a6910d3490a071182d68aca2ea",
      "tree": "8f54d866bff14a0e5285918066d226f84cfd30fd",
      "parents": [
        "06b5923bf678bafb9a35a2e632e2d7771a0287d8"
      ],
      "author": {
        "name": "Aravind Sreekumar",
        "email": "aravinds@google.com",
        "time": "Thu Apr 05 15:13:34 2018 -0700"
      },
      "committer": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Fri Apr 13 11:17:36 2018 -0700"
      },
      "message": "Migrate MediaComponents to androidx.\n\nTest: make MediaComponents\nBug: 76692459\nChange-Id: I013659d10c5c7dd97704f3d31bd2ee72c2779473\n"
    },
    {
      "commit": "262081a2dd8e3fdc1e1eddeb1a39a097235e0376",
      "tree": "3321d1ddf4da912546a3446b29b38eaa5802ea88",
      "parents": [
        "ef3dbdbf730a1921aa387eec81f0cd0d46f9260b"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Mar 09 16:08:49 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Apr 06 23:26:19 2018 -0700"
      },
      "message": "Exclude MediaComponents from the build.\n\nJava Media2 APIs are now hidden in P and extractor\nplug-ins exists in /system/lib...\n\nTest: build and boot with aosp and non-aosp build\nBug: 67908547\nChange-Id: Ic3465ada867133aa118f78d874adfd38c4c959dd\n"
    },
    {
      "commit": "0c2e7237654f1e92a97583ecc7838d3a92997624",
      "tree": "a046f8e4a2944ffb1d6dcc462eb1b119f60f2fe4",
      "parents": [
        "498e03debdb0431a80c3a2aa9fe629651d66c9e6",
        "81e36fc64bb03ff03b96d215c6bf83b44dcccef3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 29 04:50:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 04:50:59 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Change isTrusted() usages to isTrustedForMediaControl\" into pi-dev"
    },
    {
      "commit": "498e03debdb0431a80c3a2aa9fe629651d66c9e6",
      "tree": "7499759ba34d3287860c661b04a585bc0f59f17c",
      "parents": [
        "6dc6d938c33db5ef1f5d17779040bf3c7dd25d3f",
        "179713cce15b5a18a11294e1ac45031afe2f2eac"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 29 04:07:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 04:07:36 2018 +0000"
      },
      "message": "Merge \"VideoView2: Handles viewType attribute\" into pi-dev"
    },
    {
      "commit": "81e36fc64bb03ff03b96d215c6bf83b44dcccef3",
      "tree": "bbced254b72511bcfb4657dc13f3fe29dde54ee3",
      "parents": [
        "2ad6e528d603fe45d170ecb56ed522fe467244fd"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 29 08:33:47 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 29 08:33:47 2018 +0900"
      },
      "message": "MediaSession2: Change isTrusted() usages to isTrustedForMediaControl\n\nBug: 75500592\nTest: Builds successfully\nChange-Id: Ifbc2423e5170e54dc96607e250474132b0c3dcad\n"
    },
    {
      "commit": "2ad6e528d603fe45d170ecb56ed522fe467244fd",
      "tree": "fd429373bc125a9ad601158c3f4727ce6875fe8f",
      "parents": [
        "04ba822e09c6daf7f4a5e8a8af6a7e453d5b2916",
        "561a8f47d27dd6e8fe11531a6cc8e3d5e3a1be4c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 28 09:35:10 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 09:35:10 2018 +0000"
      },
      "message": "Merge \"MediaControlView2: Add support for Minimal Mode\" into pi-dev"
    },
    {
      "commit": "04ba822e09c6daf7f4a5e8a8af6a7e453d5b2916",
      "tree": "8e759ea35d6b1298677e81a1f861f4b6829b3875",
      "parents": [
        "7b4ab78876db058155bc075385c4db9e33e42a25",
        "d7049e10ee51dc3d02fe7fb06d3ceecc1850ec4e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 28 06:44:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 06:44:38 2018 +0000"
      },
      "message": "Merge \"MediaControlView2: Add Music UX\" into pi-dev"
    },
    {
      "commit": "4a7b86426b7139dae80d1362eddb842e675bc069",
      "tree": "298052254e36dd280ce395643dcc8c4d6a4d5c5c",
      "parents": [
        "d5b878d0cf0c987caf18be697a0e1637fb632d66"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 09:39:56 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 17:15:12 2018 +0900"
      },
      "message": "MediaPlayerBase: Add PlayerEventCallback#onSeekCompleted()\n\nPlayerEventCallback#onSeekCompleted() will be called when the\nMediaPlayerBase#seekTo() is completed. Following callbacks are also\nadded to listen the event.\n  - SessionCallback#onSeekCompleted()\n  - ControllerCallback#onSeekCompleted()\n\nBug: 74370608\nTest: Build\nChange-Id: Ib99a3cdfabe34378d0ea6b86a2ae1c9dd99c13c8\n"
    },
    {
      "commit": "d5b878d0cf0c987caf18be697a0e1637fb632d66",
      "tree": "4854dd6caf04e39912f82b5d17bfc54a24711a8f",
      "parents": [
        "076d7da0936e85fc5243761ffd393d5c2beeee20"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 09:13:57 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 17:14:50 2018 +0900"
      },
      "message": "MediaSession2: Pull out Command/CommandGroup from the MediaSession2\n\nBug: 74648408\nTest: Build\nChange-Id: Ie688f4ccc2e26ed99e9f6d931d0fdcf87574cb54\n"
    },
    {
      "commit": "076d7da0936e85fc5243761ffd393d5c2beeee20",
      "tree": "aac44b7e1a5464ffdf84e98dec4288400c75e638",
      "parents": [
        "f5e5100455d16c991b12dcc89233857a507aa141"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 23 18:03:19 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 16:48:25 2018 +0900"
      },
      "message": "MediaController2: Add fastForward() / rewind()\n\nFollowing CLs are included\n  - Add MediaController2#fastForward() / rewind()\n  - Add MediaSession2.SessionCallback#onFastForward() / rewind()\n\nBug: 74724709\nTest: Build\nChange-Id: Ic987132d69bd3d3ec707ede82c006fd001fb8de3\n"
    },
    {
      "commit": "561a8f47d27dd6e8fe11531a6cc8e3d5e3a1be4c",
      "tree": "677822d6fe7991d8238fcc1154e86f70f38cfd73",
      "parents": [
        "d7049e10ee51dc3d02fe7fb06d3ceecc1850ec4e"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Thu Mar 22 17:21:42 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Tue Mar 27 16:27:46 2018 +0900"
      },
      "message": "MediaControlView2: Add support for Minimal Mode\n\nThis CL adds UX for Minimal mode.\n  - Minimal mode is triggered when the minimum width required for\n    Embedded mode is smaller than the current View width.\n  - Create an MinimalExtraView to place FullScreen button for\n    Minimal mode.\n\nThis CL also adds gradient background color for TitleBar and\nimplements onCallCompleted() callback to update MediaControlView2\nafter successfully seeking.\n\nBug: 74506210\nTest: VideoViewTest.apk\nChange-Id: I6cd35af473d0f796cd35ae8759171cc1722fc679\n"
    },
    {
      "commit": "d7049e10ee51dc3d02fe7fb06d3ceecc1850ec4e",
      "tree": "7d8e85dc0df20b1ad8a8cf6b13bff4a829f38628",
      "parents": [
        "a5e13d9fceb8bf5cebb70686a2376eafe1e81266"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Thu Mar 15 17:50:33 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Tue Mar 27 16:24:45 2018 +0900"
      },
      "message": "MediaControlView2: Add Music UX\n\n1. Create Music View inside VideoView2\n   - Dynamically change layouts based on size and orientation\n   - Disable touch when Full size mode\n2. Create Music Mode button settings inside MediaControlView2\n\nBug: 73873457\nTest: Manually run VideoViewTest.apk\nChange-Id: Iba47ab40b7eb24147c09efbe997bd8e765719d69\n"
    },
    {
      "commit": "0de7babb75683eba98af2db52101d262372235da",
      "tree": "db3a669c169612e4ebffd3fc179295540528dda7",
      "parents": [
        "a5e13d9fceb8bf5cebb70686a2376eafe1e81266"
      ],
      "author": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Thu Mar 22 19:43:30 2018 +0900"
      },
      "committer": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Tue Mar 27 13:22:32 2018 +0900"
      },
      "message": "Remove unneeded context\n\nBug: 76001644\nTest: compile\nChange-Id: Ia3647a78ae7b06aa8fa638f9694450f3cb81e07b\n"
    },
    {
      "commit": "bebc764c6b3e90024a56c9af4517a1a68713f3e7",
      "tree": "725d73a0e82d0c7c991c6b0b863e58b3893e663a",
      "parents": [
        "b466a4c7dac3d7ed866274e38ce3a42f649ea9b6",
        "c13a4e4c0dad7438ac53db24a1c8e2705ba05484"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 10:55:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 10:55:30 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Change return type of CommandGroup#getCommands()\" into pi-dev"
    },
    {
      "commit": "b466a4c7dac3d7ed866274e38ce3a42f649ea9b6",
      "tree": "e3610b7570a4ab53a7fa2773f32f3373ea3daa1b",
      "parents": [
        "b23f7190b84d22ae1e88014ff086112a61d4579f",
        "edcbd37d4aa81d66aed7fcbf86486a59df2b4944"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 10:53:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 10:53:24 2018 +0000"
      },
      "message": "Merge \"MediaMetadata2: Remove radio constants\" into pi-dev"
    },
    {
      "commit": "b23f7190b84d22ae1e88014ff086112a61d4579f",
      "tree": "f53becb217e31005f48c9d35415cc93731729e17",
      "parents": [
        "abfaf7ae5aaf2bbce65dd094b54a662f34b32e5b",
        "54936be442ba7153667cb582fb9d2035f9f1f63c"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 10:52:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 10:52:22 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Revisit command code\" into pi-dev"
    },
    {
      "commit": "abfaf7ae5aaf2bbce65dd094b54a662f34b32e5b",
      "tree": "c8d4fa9adfce23c260675439f547011bd62377e4",
      "parents": [
        "73d344a69447e475a85901129740af63feadeb1c",
        "483a9330a7fb62bd288cacf3e606e9d826d0a67d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 26 10:36:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 10:36:26 2018 +0000"
      },
      "message": "Merge \"MCV2: Add contentDescriptions to buttons\" into pi-dev"
    },
    {
      "commit": "73d344a69447e475a85901129740af63feadeb1c",
      "tree": "d83218cdebc447fc2d92b5a713d55d804b085cda",
      "parents": [
        "a1c392eb2dbd6ad1c31da7f4f2a99bd77e62f06b",
        "d8c3b38bc2403e00f2170aeec32b170287a2818a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 26 09:19:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 09:19:30 2018 +0000"
      },
      "message": "Merge \"SessionPlaylistAgent: Handle setDataSource\" into pi-dev"
    },
    {
      "commit": "c13a4e4c0dad7438ac53db24a1c8e2705ba05484",
      "tree": "d210954b643e40535027f5bffde8c78646093d94",
      "parents": [
        "a1c392eb2dbd6ad1c31da7f4f2a99bd77e62f06b"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 20 16:12:41 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 17:18:01 2018 +0900"
      },
      "message": "MediaSession2: Change return type of CommandGroup#getCommands()\n\nBug: 74648408\nTest: Build\nChange-Id: Ie6a54d95ce5142d477665a8e9f132fc871ec7179\n"
    },
    {
      "commit": "179713cce15b5a18a11294e1ac45031afe2f2eac",
      "tree": "a5e9571a523caf816fa2fc2fd2d09b451ae08998",
      "parents": [
        "a1c392eb2dbd6ad1c31da7f4f2a99bd77e62f06b"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Mar 15 14:47:32 2018 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Mon Mar 26 15:47:02 2018 +0900"
      },
      "message": "VideoView2: Handles viewType attribute\n\nBug: 70539851\nTest: run \u0027atest VideoView2Test\u0027\nChange-Id: Ic5b797027c838829e49e5ad4fba1b6e26909c1bc\n"
    },
    {
      "commit": "54936be442ba7153667cb582fb9d2035f9f1f63c",
      "tree": "2477f9ab932298cff0365cb0574c739b1a755ff0",
      "parents": [
        "a1c392eb2dbd6ad1c31da7f4f2a99bd77e62f06b"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 20 17:05:54 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 15:28:26 2018 +0900"
      },
      "message": "MediaSession2: Revisit command code\n\nBug: 74648408\nTest: Build\nChange-Id: If647ce1e23f831d2950508b5649bcd94b027e9f8\n"
    },
    {
      "commit": "edcbd37d4aa81d66aed7fcbf86486a59df2b4944",
      "tree": "545b213f3c02e1a866d1dbe7af1c03b4ead0ecd6",
      "parents": [
        "aec686dc2994ae6e70211cdde96b08a20a609df7"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 14:16:16 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 14:16:16 2018 +0900"
      },
      "message": "MediaMetadata2: Remove radio constants\n\nRemoveing radio constants until their names are finalized.\n\nBug: 75500592\nTest: Build\nChange-Id: I10ffed456faa220ae24290ca9dcee6a67e751892\n"
    },
    {
      "commit": "a1c392eb2dbd6ad1c31da7f4f2a99bd77e62f06b",
      "tree": "2d0efe2ccf34ea33d0280b7a348e232696d37f5b",
      "parents": [
        "aec686dc2994ae6e70211cdde96b08a20a609df7",
        "fcfde5fa27d3a415bed47fd2e83398dfce88fbe3"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 05:12:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 05:12:18 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Match APIs with MediaPlayerBase\" into pi-dev"
    },
    {
      "commit": "d8c3b38bc2403e00f2170aeec32b170287a2818a",
      "tree": "03e55e833a47279d072e4ee0231ca064d49fc36c",
      "parents": [
        "fab385292538d1125b7e99a5837a135f1650461a"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Tue Mar 20 17:00:15 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Mon Mar 26 13:50:03 2018 +0900"
      },
      "message": "SessionPlaylistAgent: Handle setDataSource\n\nBug: 74090741\nTest: SessionPlaylistAgentTest\nChange-Id: If2d97a1836c9ec1064294180489988eb2fe4e2f0\n"
    },
    {
      "commit": "aec686dc2994ae6e70211cdde96b08a20a609df7",
      "tree": "908955c4cd383612d6e0cd1f6ae36f7d4f874b54",
      "parents": [
        "af5a727e3b276c3a00bba61f0974ff253a3902ba",
        "1fe063606ecf3ef1fd71496bc2bcdd0d8ce8342d"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 02:07:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 02:07:57 2018 +0000"
      },
      "message": "Merge \"MediaController2: Match APIs with MediaPlayerBase\" into pi-dev"
    },
    {
      "commit": "af5a727e3b276c3a00bba61f0974ff253a3902ba",
      "tree": "6d2bd45b39429a8fce1a9856896c627f0175a56a",
      "parents": [
        "fab385292538d1125b7e99a5837a135f1650461a",
        "cf1e1332e0b6880b4776d0bab31506092163423f"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 01:24:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 01:24:21 2018 +0000"
      },
      "message": "Merge \"MediaController2: Remove MediaPlaylistAgent in the ControllerCallback\" into pi-dev"
    },
    {
      "commit": "fcfde5fa27d3a415bed47fd2e83398dfce88fbe3",
      "tree": "19193554521b9820e937d343b9d1dc5d65540072",
      "parents": [
        "ec57d7b565e1352e2c76040fb5df7614a164b157"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 23 16:08:27 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 23 16:08:27 2018 +0900"
      },
      "message": "MediaSession2: Match APIs with MediaPlayerBase\n\nBug: 75500592\nTest: Build\nChange-Id: I4c5394a732e988095e779522ebab746eda3eb019\n"
    },
    {
      "commit": "dc740bccd7795f05f36eec6e59e827c805af02d4",
      "tree": "44378a278dbfc314c66b28a2d00d56d646eb7834",
      "parents": [
        "ec57d7b565e1352e2c76040fb5df7614a164b157",
        "0738f27674e6d6818951d01eb3a724f7f60b80a7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 23 07:08:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 07:08:08 2018 +0000"
      },
      "message": "Merge \"Use SessionPlaylistAgent in MediaSession2Impl\" into pi-dev"
    },
    {
      "commit": "cf1e1332e0b6880b4776d0bab31506092163423f",
      "tree": "c75b4860ef1d076a4522e9cb34462a3affc5d90c",
      "parents": [
        "694a72d3ef5f40aa06fb3b43f7bc52eeedd50fed"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 20 00:02:23 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 23 15:16:10 2018 +0900"
      },
      "message": "MediaController2: Remove MediaPlaylistAgent in the ControllerCallback\n\nBug: 75500592\nTest: Run CTS with MediaComponents/runcts.sh\nChange-Id: I81e73103130781b94a27d56c696144ba5e7a4a29\n"
    },
    {
      "commit": "1fe063606ecf3ef1fd71496bc2bcdd0d8ce8342d",
      "tree": "e913711aa8095fe2bdac4a8e246ebbf524aae524",
      "parents": [
        "694a72d3ef5f40aa06fb3b43f7bc52eeedd50fed"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 23 13:50:37 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 23 15:03:03 2018 +0900"
      },
      "message": "MediaController2: Match APIs with MediaPlayerBase\n\nBug: 74370608\nTest: Build\nChange-Id: I54921140eccc502803f50dd1187311fcf8a784c9\n"
    },
    {
      "commit": "483a9330a7fb62bd288cacf3e606e9d826d0a67d",
      "tree": "82efd5c61d798c248001114a643f9d8ee3d48512",
      "parents": [
        "fd0ccd539c4e13080b4e977f951f8613ec39267a"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Tue Mar 20 11:01:46 2018 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Fri Mar 23 13:47:34 2018 +0900"
      },
      "message": "MCV2: Add contentDescriptions to buttons\n\nBug: 74501732\nTest: Checked using Accessibility Scanner app\nChange-Id: Id194637dfb49a8a41fc8e32ddf1e99d66a8f3ab6\n"
    },
    {
      "commit": "0738f27674e6d6818951d01eb3a724f7f60b80a7",
      "tree": "9cdc8a6a7a539c844adac625f6968e3be2c9f92a",
      "parents": [
        "f247a89ef809d77e0ff34c8bb05e00e4473c1a65"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Mar 21 08:52:42 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Fri Mar 23 08:59:09 2018 +0900"
      },
      "message": "Use SessionPlaylistAgent in MediaSession2Impl\n\nBug: 74090741\nTest: SessionPlaylistAgentTest\nChange-Id: I9ea059f99e940f71f173ae5d0248253a26292304\n"
    },
    {
      "commit": "7a20d306e41c3cec1153923ca793cafdc685eb83",
      "tree": "cd752978b308630eb7fe96886bf3fabdd5008a13",
      "parents": [
        "b3aae29d8ba006682d6b031e51a3488ff2b84a8c"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 22 22:04:28 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 22 22:04:28 2018 +0900"
      },
      "message": "MediaSession2: Protect MediaSessionManager APIs with permission\n\nBug: 73226436\nTest: Locally created custom CTS methods and run\nChange-Id: I02a4b6f56961b1c4bfece22e4061e2b30094935a\n"
    },
    {
      "commit": "337272811a792a9a6b2eac4e3796d365f80cd0d2",
      "tree": "7948f91ddfb8467319ce89860f8ef9d7e667fc30",
      "parents": [
        "fd0ccd539c4e13080b4e977f951f8613ec39267a"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Fri Mar 09 00:02:40 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Tue Mar 20 16:44:24 2018 +0900"
      },
      "message": "Introduce SessionPlaylistAgent\n\nBug: 74090741\nTest: SessionPlaylistAgentTest\nChange-Id: I7fdff75e9f42e3d38f4bb08ca904706b25ecc884\n"
    },
    {
      "commit": "df10580d240ef1590d9d41907385f23e055967ed",
      "tree": "9e9005e122573fb80cf0f64998e9b9ba95f585d3",
      "parents": [
        "9c87f279288507210209bc3b98138d2c6b94f34a",
        "6ae7465a068f4a63d679423a83c786f77e034b3c"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Mar 19 11:02:39 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 11:02:39 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Complete MediaSession2#notifyError()\" into pi-dev"
    },
    {
      "commit": "9c87f279288507210209bc3b98138d2c6b94f34a",
      "tree": "4840d2d9d8d088a324a7fc44a7e9058f0e1bede6",
      "parents": [
        "7a5178fb8fbfa0c1dba10663c13742164c93731d",
        "3c47591b1fef5de0e63dd1d83cf40d398f710b3f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 19 10:45:03 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 10:45:03 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Implement fastForward() / rewind()\" into pi-dev"
    },
    {
      "commit": "7a5178fb8fbfa0c1dba10663c13742164c93731d",
      "tree": "b37daecf1bf68548c78ba38e4357bb3d11040da1",
      "parents": [
        "92fd9a9e07a33a01d12ef9c47f73b2c7193a5fd9",
        "8163228dab6c940933d3c1fb142b053d57216a22"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Mon Mar 19 07:42:45 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 07:42:45 2018 +0000"
      },
      "message": "Merge \"MediaControlView2: Add Support for Embedded Size\" into pi-dev"
    },
    {
      "commit": "6ae7465a068f4a63d679423a83c786f77e034b3c",
      "tree": "cc2d4829da7848e5abc8a6a3c7099b2149f9c15f",
      "parents": [
        "92fd9a9e07a33a01d12ef9c47f73b2c7193a5fd9"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Mar 19 15:22:35 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Mar 19 15:56:53 2018 +0900"
      },
      "message": "MediaSession2: Complete MediaSession2#notifyError()\n\nBug: 74924989\nTest: Passed CTS\nChange-Id: I8932ad3edb7d1726dfae96d64d41b06e087c1088\n"
    },
    {
      "commit": "3c47591b1fef5de0e63dd1d83cf40d398f710b3f",
      "tree": "e2153a27b200902882eff7de606327e9fccc1c95",
      "parents": [
        "92fd9a9e07a33a01d12ef9c47f73b2c7193a5fd9"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 15 20:31:43 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 19 13:44:30 2018 +0900"
      },
      "message": "MediaSession2: Implement fastForward() / rewind()\n\nBug: 74724709\nTest: Run CTS with MediaComponents/runcts.sh\nChange-Id: Id586dd48b26fe6be08c1a5a06f96c97e2eefb941\n"
    },
    {
      "commit": "8163228dab6c940933d3c1fb142b053d57216a22",
      "tree": "950165ddd9ee03272a94d5b7e7a3b795b60710bf",
      "parents": [
        "fbf6b4990aced38376f8d9f2c0b836a9ffb17089"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Fri Mar 09 14:42:45 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Mon Mar 19 13:35:12 2018 +0900"
      },
      "message": "MediaControlView2: Add Support for Embedded Size\n\n   - Detect Orientation change and change to embedded size when portrait\n   mode.\n   - Make SettingsWindow size dynamic.\n   - Make TransportControls location dynamic.\n\nBug: 74506210\nTest: manually\nChange-Id: Ia7ed9e33b4b27f5c7430f430b52ef5db4e64864d\n"
    },
    {
      "commit": "92fd9a9e07a33a01d12ef9c47f73b2c7193a5fd9",
      "tree": "e93f61bc47a8b2cb65b69ff9f8457e78753f6a3a",
      "parents": [
        "7dccfdd8f0752db2717d554d0cf1925c34202639"
      ],
      "author": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Thu Mar 15 20:27:36 2018 +0900"
      },
      "committer": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Sat Mar 17 13:07:34 2018 +0900"
      },
      "message": "Remove Context requirement from updatable\n\nBug: 74843539\nTest: runtest-cts-MediaComponents \u0026\u0026 atest VideoView2Test\nChange-Id: I1e377435556bdb786322165e3a0563a54bd8fab6\n"
    },
    {
      "commit": "7dccfdd8f0752db2717d554d0cf1925c34202639",
      "tree": "8b48169925475d7f2c0e42ed23fa36a96cab6dc5",
      "parents": [
        "44648206f6a9c66f9f9478a8091685cb702349ee"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 15 13:55:27 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 16 18:02:31 2018 +0900"
      },
      "message": "MediaSession2: Implement getPlayerState/Position/BufferedPosition\n\nBug: 74578458\nTest: Passed CTS\nChange-Id: If6f7254af58ffdf1990517bd2108e21479031be9\n"
    },
    {
      "commit": "44648206f6a9c66f9f9478a8091685cb702349ee",
      "tree": "1bd949ae08e9de9bf2b95337b4e09544184dc3d2",
      "parents": [
        "00f7a005bc588c943b16d68bc576beee6be54971"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Mar 14 20:40:22 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 16 12:39:43 2018 +0900"
      },
      "message": "MediaSession2: Implement PlaylistParams replacements\n\nThis includes following changes\n  - Remove PlaylistParams\n  - Implement PlaylistParams replacements. Here\u0027s the list.\n    - get/setShuffleMode()\n    - get/setRepeatMode()\n    - Note: Playlist metadata APIs are already submitted (b/74174649)\n\nBug: 74116823, Bug: 74118768\nTest: Run CTS with MediaComponents/runcts.sh\nChange-Id: I712a2c3fe959b8496f3d80310579af872419f486\n"
    },
    {
      "commit": "00f7a005bc588c943b16d68bc576beee6be54971",
      "tree": "8c6cee30a82163266d47add703e5a46884ba825f",
      "parents": [
        "b1add7fb3f05503154290eb4f2c1b70266a6e0b0"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 15 16:17:22 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 16 11:01:40 2018 +0900"
      },
      "message": "MediaSession2: Remove MediaSession2#registerPlayerEventCallback()\n\nBug: 74157064\nTest: Run CTS with MediaComponents/runcts.sh\nChange-Id: Ib43f841d3989c363296a81224a5e2e8d33a0fab0\n"
    },
    {
      "commit": "0ce4352b6402066df7b2d8aab1ae2cf65e6acc42",
      "tree": "bf0e5e2681809972492e850a46c47ffd0916f99e",
      "parents": [
        "e21503511b2cb71df96b3287990f191304465781"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Mar 14 20:30:04 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 15 20:37:14 2018 +0900"
      },
      "message": "MediaSession2: Convert DataSourceDesc to MediaItem2 in MyPlayerEventCallback\n\nBug: 74506462\nTest: Passed CTS\nChange-Id: I4dd81eb3e7d9d1c10514ef8303024bc6502fb3d9\n"
    },
    {
      "commit": "e21503511b2cb71df96b3287990f191304465781",
      "tree": "6c0a2f26500cb8a0bcc6c58d2e8f1177030a378a",
      "parents": [
        "44240378a982c8efce62b02ee2f5a0056e929a6a",
        "54d638619dc3473e35a2aa61738fb6034d77b8de"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 15 10:15:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 10:15:07 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Implement skipTo APIs\" into pi-dev"
    },
    {
      "commit": "54d638619dc3473e35a2aa61738fb6034d77b8de",
      "tree": "289c37c8024cb11f0d9248d0b785cf60f062a05f",
      "parents": [
        "e3a071d355b85a6bc363a97385158cef6d8a6871"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 13 15:49:23 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 15 19:13:24 2018 +0900"
      },
      "message": "MediaSession2: Implement skipTo APIs\n\nThis implements following APIs from both session and controller.\n  - skipToPlaylistItem()\n  - skipToNextItem()\n  - skipToPreviousItem()\n\nBug: 74175632\nTest: Run CTS with MediaComponents/runcts.sh\nChange-Id: I3a806ca5a069a5e35e828fda0ba118ad1e165d55\n"
    },
    {
      "commit": "44240378a982c8efce62b02ee2f5a0056e929a6a",
      "tree": "0025d219f448df12cfec4a9b07712460ea43dd14",
      "parents": [
        "9caa96cafd434e8edae91f2811dc1eb6bc268f76",
        "8cd24124009a7f6343a4991b58c7db23f16fa973"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Mar 15 09:25:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 09:25:49 2018 +0000"
      },
      "message": "Merge \"VideoView2: Copy closed caption related code inside of updatable\" into pi-dev"
    },
    {
      "commit": "8cd24124009a7f6343a4991b58c7db23f16fa973",
      "tree": "db4a1f50051d4eba9adb506abb3e6bb590a0d565",
      "parents": [
        "ae7e509940740213eb4cf693873dbe7303a392bf"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Wed Mar 14 14:20:43 2018 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Mar 15 12:34:48 2018 +0900"
      },
      "message": "VideoView2: Copy closed caption related code inside of updatable\n\nBug: 72720750\nTest: manually VideoViewTest app\nChange-Id: I2119a8e3b34d21817011337f480d180cc5029344\n"
    },
    {
      "commit": "e260dc4ffb81d48b099808b907eb908816a78e85",
      "tree": "ca2a09b757e96e8d370d24b6cf70bf2962d121ac",
      "parents": [
        "c5678c492d97e45b3ff2af44523001046224f704"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 13 21:35:15 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Mar 14 20:45:22 2018 +0900"
      },
      "message": "MediaSession2: Refactor outgoing calls from the MediaSession2Stub\n\nBug: 74581821\nTest: Run CTS tests with MediaComponents/runcts.sh\nChange-Id: Id96184b5083ee4392c371969c16d0060df543a9e\n"
    },
    {
      "commit": "41965571999c7e5ad3a6c8de78c76b6b2824155b",
      "tree": "8eccb22438afcc044531c0150ca76aba41e985b4",
      "parents": [
        "9d3824e06b07300a5b20b7d6bf024b3f3b0a177f"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 13 16:48:40 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Mar 14 15:18:23 2018 +0900"
      },
      "message": "MediaSession2: Refactor incoming binder calls to the MediaSession2Stub\n\nThis CL refactors methods in MediaSession2Stub that handles incoming\nbinder calls from the controller by adding methods to do followings\nin one place.\n  1. Check if the session hasn\u0027t closed.\n  2. Check if the controller is allowed for the command\n  3. Call SessionCallback#onCommandRequest() for APIs that would be\n     sent directly to the MediaPlayerBase or MediaPlaylistAgent if\n     allowed.\n\nThis CL also adds missing command code for setRating().\n\nBug: 74581821\nTest: Run CTS tests with MediaComponents/runcts.sh\nChange-Id: I22ba0eae11b6b63b96b56abebf350b223faf4d39\n"
    },
    {
      "commit": "9d3824e06b07300a5b20b7d6bf024b3f3b0a177f",
      "tree": "a670c06eeef97415137ab04547b50f4400f53bf4",
      "parents": [
        "03ea73cb4f9422fc729add946f535d6179eb5100",
        "79f5e126cb9a8c6f72904d8cb4c611ee69405993"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Mar 13 12:03:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 12:03:55 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Replace PlaybackState2\" into pi-dev"
    },
    {
      "commit": "03ea73cb4f9422fc729add946f535d6179eb5100",
      "tree": "68edda10760867ac627d3dfa96b410cd06c2fd74",
      "parents": [
        "fc5cde258009488530b4101be07d7a2965b170be",
        "a868d26f259c231fcc6735bac319f411aa6c6e63"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 13 09:35:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 09:35:25 2018 +0000"
      },
      "message": "Merge \"MediaControlView2: Add Minor UX fixes\" into pi-dev"
    },
    {
      "commit": "79f5e126cb9a8c6f72904d8cb4c611ee69405993",
      "tree": "c57d2aa67f953353c5e499344be80798b9335f23",
      "parents": [
        "fc5cde258009488530b4101be07d7a2965b170be"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Mar 07 10:49:18 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Mar 13 17:48:08 2018 +0900"
      },
      "message": "MediaSession2: Replace PlaybackState2\n\nThis CL removes PlaybackState2 and replaces it with other APIs.\n\nBug: 74370608, Bug: 73971431\nTest: Passed CTS\nChange-Id: I2eb1238261cb8db0b13282da77b92354b5104242\n"
    },
    {
      "commit": "fc5cde258009488530b4101be07d7a2965b170be",
      "tree": "0f13cd3bc47a535db197d0cbf98778b0b0e6801c",
      "parents": [
        "0ab252cbff321b183dd2fa410e55011472519931",
        "98f280314350160874af3bc3fd660aa3e9a0fabe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 13 08:32:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 08:32:19 2018 +0000"
      },
      "message": "Merge \"Rename IMediaSession2Callback to IMediaController2\" into pi-dev"
    },
    {
      "commit": "0ab252cbff321b183dd2fa410e55011472519931",
      "tree": "b55bb86da27de686744fef652313296d69aaa1a9",
      "parents": [
        "35f4f64f02901b4006339149f3f25f685af7272d",
        "9e49771db018773d86a46d93ca8ed33fdd80ed77"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 13 07:51:00 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 07:51:00 2018 +0000"
      },
      "message": "Merge \"MediaControlView2: Final Settings UX addition\" into pi-dev"
    },
    {
      "commit": "98f280314350160874af3bc3fd660aa3e9a0fabe",
      "tree": "724cbcdd89a000436c41cd09dac989f81ce59292",
      "parents": [
        "35f4f64f02901b4006339149f3f25f685af7272d"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Tue Mar 13 09:53:13 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Tue Mar 13 14:07:13 2018 +0900"
      },
      "message": "Rename IMediaSession2Callback to IMediaController2\n\nBug: 74567527\nTest: build\nChange-Id: Idce5eec84821bc1fb41786d501f93c550c2003c7\n"
    },
    {
      "commit": "35f4f64f02901b4006339149f3f25f685af7272d",
      "tree": "7b583ee1e83df1b5f91da62f514cff083346d782",
      "parents": [
        "b34fe171c3368b946a6f6def49fc97b153656052",
        "24ab94cf1e42ea5bcfedebff29fd7a237641f6df"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 13 04:30:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 04:30:50 2018 +0000"
      },
      "message": "Merge changes from topics \"session2_additem\", \"session2_playlistmetadata\", \"session2_getplaylist\" into pi-dev\n\n* changes:\n  MediaSession2: Implement add/remove/replacePlaylistItem()\n  MediaSession2: Implement update/getPlaylistMetadata()\n  MediaSession2: Implement get/setPlaylist()\n"
    },
    {
      "commit": "24ab94cf1e42ea5bcfedebff29fd7a237641f6df",
      "tree": "170f017338c871ed12e7380ec271fe2cf9affb17",
      "parents": [
        "df4f8498f40e995abeedbbdf6053c252c0fa3350"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 12 18:04:09 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 13 11:59:37 2018 +0900"
      },
      "message": "MediaSession2: Implement add/remove/replacePlaylistItem()\n\nBug: 73149584\nTest: Run CTS with MediaComponents/runcts.sh\nChange-Id: I89b9bb3f3a1f81d3849d1f594d21ad68b1e1ed6b\n"
    },
    {
      "commit": "df4f8498f40e995abeedbbdf6053c252c0fa3350",
      "tree": "50e502b11fe9016219bd743239e136a6835288d2",
      "parents": [
        "e0a38c69b26945394936922dd837cc7e9fa37d3c"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 12 10:50:57 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 13 11:55:58 2018 +0900"
      },
      "message": "MediaSession2: Implement update/getPlaylistMetadata()\n\nBug: 74174649\nTest: Run CTS with MediaComponents/runcts.sh\nChange-Id: Iec6460a21044d5ad03a777a99ba7c7e153b7af84\n"
    },
    {
      "commit": "8053b6e6cba9ffa4286efa2d6546cdf864d004e5",
      "tree": "7450066cdccfb16a0fde99a9e4b49b40866d26a3",
      "parents": [
        "dce7559514917e7975a0d2dcc11aaa97d770367a"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Mar 12 19:08:54 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Mar 12 20:09:16 2018 +0900"
      },
      "message": "MediaSession2: Make SessionCallback.onDisconnected be called\n\nBug: 74223159\nTest: Passes CTS\nChange-Id: I1aadc4ed2a887f9eff7cd819ab1d409b264506e4\n"
    },
    {
      "commit": "e0a38c69b26945394936922dd837cc7e9fa37d3c",
      "tree": "11f6af3368c9992bb818c915c2556da387ed35d4",
      "parents": [
        "dce7559514917e7975a0d2dcc11aaa97d770367a"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 08 22:16:31 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 12 19:06:37 2018 +0900"
      },
      "message": "MediaSession2: Implement get/setPlaylist()\n\nBug: 74326040\nTest: Run CtsMediaTests for MediaSession2\nChange-Id: I64b8e0c0f83d1fcb5f1668bf66141d575a3386c1\n"
    },
    {
      "commit": "a868d26f259c231fcc6735bac319f411aa6c6e63",
      "tree": "d62f9b926187a74e19e295cc5965924c971aa99c",
      "parents": [
        "9e49771db018773d86a46d93ca8ed33fdd80ed77"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Thu Mar 08 18:33:39 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Mon Mar 12 16:16:21 2018 +0900"
      },
      "message": "MediaControlView2: Add Minor UX fixes\n\nThis CL adds the following changes:\n\n1) Support for Mute/Unmute button\n2) Make SeekBar entirely buffered for local files\n3) Update Subtitle and VideoQuality buttons to have an equal size.\n\nBug: 73094639\nTest: Run VideoViewTest.apk\nChange-Id: I1d21fe62e8ba93e3f258c8afefdcc109a1ea679a\n"
    },
    {
      "commit": "dce7559514917e7975a0d2dcc11aaa97d770367a",
      "tree": "0be9f295dcf6fc281df0b3c181d960264c2ccaa9",
      "parents": [
        "58a73fc8445db7fc587e4ef494e59bf5663f8b77"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 09 20:03:34 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Sun Mar 11 14:10:03 2018 +0900"
      },
      "message": "MediaSession2: Add a way to only build test and run test in runcts.sh\n\n\u0027--test\u0027 is added for only rebuild test and run MediaSession2 related\nCTS.\n\nBug: 74424357\nTest: Run the test with the option\nChange-Id: I13d0a78340b88ba6fe0c6f08c81214f1f8401f3c\n"
    },
    {
      "commit": "ecff3f95aece364d5b35600c6cfda1b04af52a7c",
      "tree": "91ae688f5c560166eca9b273b9d967816c5b38a6",
      "parents": [
        "b3ee0c8ba072dc157a24263f0060d31e019a2810",
        "05625413ac93a2fcec0e96781745c0815ec59fb9"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 09 08:28:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 08:28:08 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Ensure NonNull/Nullable for parameters of public methods\" into pi-dev"
    },
    {
      "commit": "05625413ac93a2fcec0e96781745c0815ec59fb9",
      "tree": "15f735491ac475e6b98b95c432d7d2bfc16aa534",
      "parents": [
        "b6b349550ffb505fd466f0f5aea635a52a569e13"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Mar 05 13:58:31 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 09 15:33:37 2018 +0900"
      },
      "message": "MediaSession2: Ensure NonNull/Nullable for parameters of public methods\n\nBug: 73863865\nTest: runtest-MediaComponents\nChange-Id: I29933367441471f7cfd6d7656e2410d2ce70beb7\n"
    },
    {
      "commit": "b3ee0c8ba072dc157a24263f0060d31e019a2810",
      "tree": "2af4686365cb9b892f5f5668e67986baf92ea238",
      "parents": [
        "d793957b0b89b747f004c7d1caad7972712d86fb",
        "ff169f45f86fb6e4da4a7513f920506716d0a375"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 09 06:33:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 06:33:13 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Remove tests from frameworks/av\" into pi-dev"
    },
    {
      "commit": "c940e6e76d82e4a0090e92d8f03214a633983dbe",
      "tree": "4a5fd050edc4da5ae98cc616ebb4ac23b352fee9",
      "parents": [
        "de95aaa1f545827ab9e1ca3c52592e43b4222efa",
        "058c635085daa5dd2f230a7a0e644d1aca919e49"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 09 05:02:37 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 05:02:37 2018 +0000"
      },
      "message": "Merge \"Implement methods of MediaPlaylistAgentImpl\" into pi-dev"
    },
    {
      "commit": "9e49771db018773d86a46d93ca8ed33fdd80ed77",
      "tree": "11fa8ddac4253385eefbd507d030a140b907a523",
      "parents": [
        "de95aaa1f545827ab9e1ca3c52592e43b4222efa"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Fri Feb 23 16:11:46 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Fri Mar 09 13:58:25 2018 +0900"
      },
      "message": "MediaControlView2: Final Settings UX addition\n\nThis CL does the following things:\n\n1. Make the check button visibility in Settings window dynamic\n2. Send command to VideoView2 when choosing item for Subtitle, Audio\nTrack, and Playback Speed.\n3. Make pressing Subtitle \u0026 Video Quality buttons open Settings\nwindow.\n4. Place Subtitle \u0026 Video Quality buttons outside the Settings\nwindow.\n\nAlso, this CL remove Aspect Ratio button (function support has been punted)\n\nBug: 73703113\nTest: manually run VideoViewTest.apk\nChange-Id: I9c8ca3f7e3c6aae8c69ca6b6ff0973a3377a88fa\n"
    },
    {
      "commit": "ff169f45f86fb6e4da4a7513f920506716d0a375",
      "tree": "b1f6fc2f083b0300625c04d549a9bc635bd2d27b",
      "parents": [
        "b6b349550ffb505fd466f0f5aea635a52a569e13"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 09 13:36:16 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 09 13:36:16 2018 +0900"
      },
      "message": "MediaSession2: Remove tests from frameworks/av\n\nSince the same tests exist in CTS, this CL removes duplicated tests.\n\nBug: 72533540\nTest: Builds successfully\nChange-Id: Ia48943e546f1698d59cf7dc9b664c807e3ed6c7d\n"
    },
    {
      "commit": "058c635085daa5dd2f230a7a0e644d1aca919e49",
      "tree": "83cdbef92e8841ea7e64a36cb43aa4d042abc2cd",
      "parents": [
        "32edcf9e0e96e04d9274fe1f7b8122fc8dd16b93"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Thu Mar 08 23:53:59 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Fri Mar 09 11:42:49 2018 +0900"
      },
      "message": "Implement methods of MediaPlaylistAgentImpl\n\nBug: 74372183\nTest: Pass MediaComponent CTS\nChange-Id: I46ebe4ee64b3c6b6065d5cb1dd9fded7b2a8a423\n"
    },
    {
      "commit": "e1cf5e5d9358c6ad6f39d4edb371d242454644ba",
      "tree": "70ecda540df2bd3da532add6230b8f801347da9e",
      "parents": [
        "6fd4657ec95d780d9ca8a89e5f16c1cc157a229e"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 08 17:48:46 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 09 11:29:55 2018 +0900"
      },
      "message": "MediaSession2: Implement MediaSession2#updatePlayer()\n\nBug: 74364873\nTest: Run MediaSession2Test in CTS\nChange-Id: I206cdcc55c72f549927a04b61e5d11b08af17d38\n"
    },
    {
      "commit": "a297137ad12d56bcf56c2dfd190ed727ee28e87c",
      "tree": "054f1d3ce3d3a4a58bf3751ea8e5cbdf037493d2",
      "parents": [
        "32edcf9e0e96e04d9274fe1f7b8122fc8dd16b93",
        "99e1fcf9dfb4963347dcb9d72df4e42d859b8887"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Mar 08 13:18:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 13:18:25 2018 +0000"
      },
      "message": "Merge \"frameworks/av: Set LOCAL_SDK_VERSION where possible.\" into pi-dev"
    },
    {
      "commit": "32edcf9e0e96e04d9274fe1f7b8122fc8dd16b93",
      "tree": "f0fb250df9f0840d25a8576c83def87c963eb578",
      "parents": [
        "8cf0d38498dd04ad3398b88acced533e1e919f3c",
        "5348b91dcfd87be1f9339f7765f778ad890fc8dc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 08 12:08:47 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 12:08:47 2018 +0000"
      },
      "message": "Merge \"Make MediaPlaylistAgent updatable\" into pi-dev"
    },
    {
      "commit": "8cf0d38498dd04ad3398b88acced533e1e919f3c",
      "tree": "e34a13159eaa00ee65748daa151eef3184fa13e2",
      "parents": [
        "99495369d669f72db25646dfe3f2e1b8b7718e6b",
        "1516ee939bcfe12cbcfdcdede894dc63c8912da8"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 08 11:38:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 11:38:25 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Add script to minimally run cts test\" into pi-dev"
    },
    {
      "commit": "99e1fcf9dfb4963347dcb9d72df4e42d859b8887",
      "tree": "2a93e64e64e3454650c90b98edbcb251f08f66d5",
      "parents": [
        "cda259fbfd8e64cde11251d6a8dea89c907789db"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 23 17:21:46 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Mar 08 10:56:45 2018 +0000"
      },
      "message": "frameworks/av: 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: I616c59eede8627f73ed79c77b3a45c52eec1cd80\nMerged-In: I616c59eede8627f73ed79c77b3a45c52eec1cd80\n"
    },
    {
      "commit": "5348b91dcfd87be1f9339f7765f778ad890fc8dc",
      "tree": "11dc8d71ae2c26d076dfe537aef57e8884c9703d",
      "parents": [
        "fee84b36c24efda32200fcf4e9dc653071651f97"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Thu Mar 08 15:15:04 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Thu Mar 08 18:12:56 2018 +0900"
      },
      "message": "Make MediaPlaylistAgent updatable\n\nBug: 74366050\nTest: Pass MediaComponents test\nChange-Id: Id4d213e84b4c6081e177d2f297cbf6444f9f50b2\n"
    },
    {
      "commit": "1516ee939bcfe12cbcfdcdede894dc63c8912da8",
      "tree": "32dbd243d0551ef2e26b3a93d4608ae57dba2a90",
      "parents": [
        "873deb0c896a42ba2e82844b611c85eeebc852b8"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 08 17:49:13 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 08 17:49:13 2018 +0900"
      },
      "message": "MediaSession2: Add script to minimally run cts test\n\nThis script runs CTS tests minimally to only includes MediaComponents\nrelated tests. This would save time.\n\nBug: 72533540\nTest: Use the script to run tests\nChange-Id: I0ceb1afcd45cb3b19134acdd8610468059f00efa\n"
    },
    {
      "commit": "fee84b36c24efda32200fcf4e9dc653071651f97",
      "tree": "fb7b35b6b310aaea0bd6c7a326e4137cb9779ca4",
      "parents": [
        "c8508bf04576790230c5a32b329a4b47468ac7fb"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Thu Feb 08 15:24:34 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Thu Mar 08 13:56:36 2018 +0900"
      },
      "message": "VideoView2Impl: Implement RoutePlayer\n\nBug: 72527212\nTest: manually using VideoViewTest\nChange-Id: Ia162f880d0d399641e6821e27f38c7dde98d954b\n"
    },
    {
      "commit": "c8508bf04576790230c5a32b329a4b47468ac7fb",
      "tree": "f114512fca69b7e49e73e180f7d5625abaf84345",
      "parents": [
        "fa97d22b9463a9ad4c2d4e16b6644ab97da150d4"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 08 10:49:02 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Thu Mar 08 13:54:27 2018 +0900"
      },
      "message": "MediaSession2: Clean up TODOs under frameworks/base\n\nThis change includes\n  - Addressed trivial TODOs (takes less than 1min)\n  - Renamed playlist controller to playlist agent\n  - Renamed mplc to playlistAgent\n  - Renamed mpb to player\n  - Assigned buganizer issues for TODOs\n\nBug: 74361045\nTest: Run MediaComponentsTest\nChange-Id: I44b4c7b543ac513914632e3ee235d3151840d3e0\n"
    },
    {
      "commit": "fa97d22b9463a9ad4c2d4e16b6644ab97da150d4",
      "tree": "e24e1919cddc4c9c9121f08242491ae6d70edcb0",
      "parents": [
        "96fa7ff5c44bc2abbc824c3b300dd53f7189f60c",
        "7094f5451cef80d34dba4a459380a162d39afb1f"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Mar 08 01:09:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 01:09:28 2018 +0000"
      },
      "message": "Merge \"VideoView2: Initial integrated version with MediaPlayer2\" into pi-dev"
    },
    {
      "commit": "c83a248be36a565aa9a8d65cf27a464428bb6851",
      "tree": "7dc572a1daf33b310d8d56d148635aa5da319f2d",
      "parents": [
        "44da223a0d322b58e53ae65d58c4b7151879cb70",
        "e0e207174080d93a97b5c0ab84dcf84dd47c730c"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Mar 07 12:42:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 12:42:27 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Implement setAllowedCommands()\" into pi-dev"
    },
    {
      "commit": "44da223a0d322b58e53ae65d58c4b7151879cb70",
      "tree": "bbdf6d8d6aab1e7da6324d839025b2813e2ac702",
      "parents": [
        "873deb0c896a42ba2e82844b611c85eeebc852b8",
        "0e9c2d441fb790e580c3885205778f01f4fccf4f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 07 11:23:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 11:23:29 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Fix random NPE in MediaBrowser2Test\" into pi-dev"
    },
    {
      "commit": "e0e207174080d93a97b5c0ab84dcf84dd47c730c",
      "tree": "8879a2d343636aaa8a31f54af87ffb942bc1ec91",
      "parents": [
        "873deb0c896a42ba2e82844b611c85eeebc852b8"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Mar 06 13:57:07 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Mar 07 19:29:01 2018 +0900"
      },
      "message": "MediaSession2: Implement setAllowedCommands()\n\nBug: 73148658\nTest: Passed MediaSession2Test and PermissionTest\nChange-Id: Id151dd5de601186e2ab51ff0a9e6ce67a95921c1\n"
    },
    {
      "commit": "873deb0c896a42ba2e82844b611c85eeebc852b8",
      "tree": "e8a26f1b7de30ff934bbdde658217851e2763a86",
      "parents": [
        "ee19f10ecc303d6c02edbbb5b0632f7b92f3d22d"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Mar 07 14:58:54 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Mar 07 16:54:49 2018 +0900"
      },
      "message": "Remove MediaPlaylistController, add MediaPlaylistAgent\n\nBug: 64098437\nTest: build\nChange-Id: I6382634e5d3e02e1bae36d9eb02dd1a859ffc072\n"
    },
    {
      "commit": "ee19f10ecc303d6c02edbbb5b0632f7b92f3d22d",
      "tree": "64680beb1ee4308fa818cec1d89a4f59e14f9c02",
      "parents": [
        "20e21fd7110d016ef1a8bd01e0c9e092bf9ef193"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 06 15:43:25 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Mar 07 16:40:21 2018 +0900"
      },
      "message": "MediaSession2: Add onDataSourceMissingHelper\n\nThis allows a developer to create DataSourceDesc when the item is about\nto be played. Typical example of the usages are,\n\n    1. For a playlist consists of FileDescriptors, its developer may not\n        want to open all files when MediaSession2.setPlaylist() is\n        called.\n    2. A controller has called setPlaylist(), addPlaylistItem(), or\n        replacePlaylistItem(). Controller cannot know the\n        DataSourceDesc, and only the session developer can know about\n        it.\n\nBug: 64098437\nTest: Run MediaComponents test\nChange-Id: Ic109408f838405f5aec94dfba94c47ca97bc65c5\n"
    },
    {
      "commit": "18b0f4bfc652f02815fd390919bb4a2ae59f508b",
      "tree": "f62e3bdad2d0a506bc8dffcb5137b3f2428108c6",
      "parents": [
        "b9332a43b873c95958a390a5ce5a3e65b831a5bf",
        "1d753af5c56bd8ba413a77ea1f80d33fe5f92407"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Mar 07 00:02:09 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 00:02:09 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Add MediaPlaylistController.PlaylistEventCallback\" into pi-dev"
    },
    {
      "commit": "b9332a43b873c95958a390a5ce5a3e65b831a5bf",
      "tree": "f0e72bb1deffaad656c2a779a2be6ed3d3a296df",
      "parents": [
        "9f0cfbc8e914c414b227fd174e4f205ecf95353d",
        "2476e0419c86bb08850e0525a79204fc6d22ce1e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 06 23:06:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 23:06:18 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Ask server whether a controller is trusted\" into pi-dev"
    },
    {
      "commit": "0e9c2d441fb790e580c3885205778f01f4fccf4f",
      "tree": "b1190386b9e6693cc096a20d355649ea5f903a84",
      "parents": [
        "149eb6afa90f56697bcd1f14868191d1428a54b5"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 06 19:49:07 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 06 19:49:07 2018 +0900"
      },
      "message": "MediaSession2: Fix random NPE in MediaBrowser2Test\n\nMediaSessionService#getSession() may be null until the\nMediaSessionService#onCreate(), and its session callback can be called\nbefore that. (e.g. System service can try connecting to the session\nin another thread)\n\nDon\u0027t use MediaSessionService#getSession() when it\u0027s unclear whether\nthe MediaSessionService#onCreate() is finished.\n\nBug: 74177171\nTest: Run MediaComponents test 10 times\nChange-Id: I86ded320d4adc88a610749d23e116c833e207b17\n"
    },
    {
      "commit": "9f0cfbc8e914c414b227fd174e4f205ecf95353d",
      "tree": "b0d44dbbcfd4459cc65c59b67b34ddda4d2d7ff4",
      "parents": [
        "7c1236a0348c5a4af53e99ad0cd78664cf0b743f",
        "e5a7b36ee3da0e49efb0216027dfe1e8049eadc1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 06 08:59:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 08:59:13 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Update Builder\" into pi-dev"
    },
    {
      "commit": "7094f5451cef80d34dba4a459380a162d39afb1f",
      "tree": "59fcfe01c9dc8f2c4c118dbe5aef365c6de35bb5",
      "parents": [
        "bb32f8706f7c7b15c9d1822e9514494864883bd0"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Tue Mar 06 15:38:41 2018 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Tue Mar 06 17:27:27 2018 +0900"
      },
      "message": "VideoView2: Initial integrated version with MediaPlayer2\n\nBug: 72721322\nTest: manually VideoViewTest app\nChange-Id: I41597b4a3a30d615cacb3a92ab31fb1cbe3fde81\n"
    },
    {
      "commit": "e5a7b36ee3da0e49efb0216027dfe1e8049eadc1",
      "tree": "ec7abda8d5648cbaa356cb939938ab09fb5ae957",
      "parents": [
        "149eb6afa90f56697bcd1f14868191d1428a54b5"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Mar 06 15:37:24 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Mar 06 15:56:44 2018 +0900"
      },
      "message": "MediaSession2: Update Builder\n\nThis CL updates following APIs of session builder:\n - setPlayer\n - setPlaylistController\n - setVolumeController\n\nBug: 74093082\nTest: runtest-MediaComponents\nChange-Id: I55d76400a6e18427955d4b5f9d5451007633e40c\n"
    },
    {
      "commit": "1d753af5c56bd8ba413a77ea1f80d33fe5f92407",
      "tree": "7d4dac80997bd8dcf5b779ddfcba42bcf0712fb4",
      "parents": [
        "149eb6afa90f56697bcd1f14868191d1428a54b5"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 05 16:09:27 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 06 15:28:46 2018 +0900"
      },
      "message": "MediaSession2: Add MediaPlaylistController.PlaylistEventCallback\n\nThis includes following changes per offline discussion\n  - Add MediaPlaylistController.PlaylistEventCallback\n  - Add following APIs to the MediaPlaylistController\n    * registerPlaylistControllerCallback() /\n      unregisterPlaylistControllerCallback()\n    * getRepeatMode() / setRepeatMode()\n    * getShuffleMode() / setShuffleMode()\n    * setPlaylist() with metadata\n    * setPlaylistMetadata() / getPlaylistMetadata()\n  - Add following APIs to the SessionCallback\n    * onMediaPrepared()\n    * onPlayerStateChanged()\n    * onBufferingStateChanged()\n  - Remove following methods from ControllerCallback\n    * onPlaylistChanged()\n\nBug: 64098437\nBug: 74157064\nTest: passed MediaComponentTest\nChange-Id: I5ad12a9a5d6a7d9e23a577dca8ea26fbacb8f259\n"
    },
    {
      "commit": "e3aa65d131bbbb0ff48fd1f00a3fdd8614d24c04",
      "tree": "4373e83e85d59d7fecf19ae4251214acbeca36d9",
      "parents": [
        "bb32f8706f7c7b15c9d1822e9514494864883bd0"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Mon Mar 05 13:40:29 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Tue Mar 06 15:16:09 2018 +0900"
      },
      "message": "VideoView2: Move MediaControlView2\u0027s hidden constants\n\nBug: 74173212\nTest: VideoViewTest app\nChange-Id: I7038130e91f48b7d9b4e70d08221f6397e4e3317\n(cherry picked from commit 1afda1905dffbc9833779b80a01de0b113346ba8)\n"
    },
    {
      "commit": "2476e0419c86bb08850e0525a79204fc6d22ce1e",
      "tree": "bc607ed786e0c80f98677c032be36fbe82d91e3c",
      "parents": [
        "149eb6afa90f56697bcd1f14868191d1428a54b5"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 05 17:53:28 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 06 14:14:13 2018 +0900"
      },
      "message": "MediaSession2: Ask server whether a controller is trusted\n\nBug: 73150040\nTest: Run all MediaComponents tests once\nChange-Id: Ice3db9baeaf4c1cd258ae380c3f1f9e92bade291\n"
    },
    {
      "commit": "b95a5989190a427a7ea092dc18741af524009bdb",
      "tree": "efcfacaa1fc3845955dc7b90b0383203041f9095",
      "parents": [
        "911aa0fa2b497a13199f023618044d93cf6d2ebc",
        "98fdf3583d3bfd1178ef1e0102e3de6d2b1dd2bc"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Mar 05 05:44:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 05 05:44:41 2018 +0000"
      },
      "message": "Merge \"MediaController2: Ensure NonNull for parameters of public methods\""
    },
    {
      "commit": "911aa0fa2b497a13199f023618044d93cf6d2ebc",
      "tree": "61b765a0cf475f14839dc346cc04a95624ac7c3d",
      "parents": [
        "adab3c90df0b7c55cee87df4613aafc250be0d88",
        "1a3ee2f72f9e49e84a978392e428542ad95e589f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 05 05:42:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 05 05:42:24 2018 +0000"
      },
      "message": "Merge \"MediaControlView2: Add Additional UX for Settings\""
    },
    {
      "commit": "1a3ee2f72f9e49e84a978392e428542ad95e589f",
      "tree": "c0f1cf59e1a619d24064fb22a2d86648990ad647",
      "parents": [
        "f8cdcb8311f14f8df081f4ac1fffe50e6c6decf8"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Wed Feb 21 19:55:58 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Mon Mar 05 13:23:12 2018 +0900"
      },
      "message": "MediaControlView2: Add Additional UX for Settings\n\nThis CL adds additional UX for Settings, adding a second ListView to\nshow the view for choosing CC, audio track, video quality, and\nplayback speed.\n\nAlso, this CL allows video \u0026 audio track information to be\nsent to MediaControlView2 from VideoView2.\n\nBug: 73703113\nTest: manually\nChange-Id: Ic5f7223b2688fe7a11e0ef46fc3aec0bb900f5ac\n"
    },
    {
      "commit": "98fdf3583d3bfd1178ef1e0102e3de6d2b1dd2bc",
      "tree": "4d23de9530003f0ea11b0fc2f4b8922beff106d8",
      "parents": [
        "adab3c90df0b7c55cee87df4613aafc250be0d88"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Feb 28 17:26:26 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Mar 05 11:40:55 2018 +0900"
      },
      "message": "MediaController2: Ensure NonNull for parameters of public methods\n\nBug: 73863865\nTest: Passed MediaBrowser2Test\nChange-Id: I38287881502c70d12da414b574b49d80834d8e43\n"
    },
    {
      "commit": "adab3c90df0b7c55cee87df4613aafc250be0d88",
      "tree": "02ff208d2ecf45fa5a6d839c5ad7f8392d140587",
      "parents": [
        "bcc63b1434f2d8d2dee9e921151bf27485669ab6"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 02 14:11:53 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Sun Mar 04 19:17:34 2018 +0900"
      },
      "message": "MediaSession2: Clean up TODOs under frameworks/base/media\n\nThis CL includes following changes\n  - Remove outdated TODOs\n  - Added buganizer issue if the remaining work take more than 5m\n\nTest: Run MediaComponents tests\nChange-Id: Ie8a005ee74a2959abc6844471f314559b1cfcf49\n"
    }
  ],
  "next": "417b528deb0cdbb54f801888bed2622a77e6d169"
}
