)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "commit": "417b528deb0cdbb54f801888bed2622a77e6d169",
      "tree": "78e91980bdadf1102e8a9ae76a3c6dad8c7fb43a",
      "parents": [
        "c9685f39f807c64176ad8ea4db5bae0369817b86",
        "d3d75358db7e3fe87805f1d91aa53abe1b0c2e92"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 03 00:54:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 03 00:54:31 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Add caller to the callback methods\""
    },
    {
      "commit": "18c5a769d57b3420b899db1b9e29e244da8f4093",
      "tree": "c553a531d065eb16d5b0296ebc1df65e4e858e85",
      "parents": [
        "cdf22ce8143ac4cc84c890eec49b213fc1db7231",
        "598c981ff4282327555558a83472f86d9d9ceebf"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 23:58:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 23:58:14 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Add reset() to the MediaPlayerBase\""
    },
    {
      "commit": "3859e62d88d3abd8ed5679e56c6e73804ff3c9a4",
      "tree": "db44a84f3fc1f267140d4804ac8144739df31acc",
      "parents": [
        "7a8977a853343f2f21522c2501de846b2a416bc1",
        "ba467eed41a4363d91dfa08ed58bd2ae785f3435"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 15:57:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 15:57:40 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Complete [add|remove]OnSessionTokensChangedListener\"\"\""
    },
    {
      "commit": "d3d75358db7e3fe87805f1d91aa53abe1b0c2e92",
      "tree": "2678f39d8754fd9ddc46a93eb7fe4b7ff4ccaf59",
      "parents": [
        "cb3b84b517492879d442cc76765c88807154b8da"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 02 19:24:56 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 02 23:39:36 2018 +0900"
      },
      "message": "MediaSession2: Add caller to the callback methods\n\nThis is to follow MediaPlayer2 and MediaPlayerBase\u0027s API style.\n\nBug: 64098437\nTest: make update-api\nChange-Id: Id73558634087712d2d01284d0c944d9590d693cf\n"
    },
    {
      "commit": "cb3b84b517492879d442cc76765c88807154b8da",
      "tree": "6ff1c575ca9d82e97a1f3dd826dea78a03df38d5",
      "parents": [
        "818473f7f6e01ef8469ff562b190f899ae1fab17",
        "483261f98e9eeb6191d42873970a2ae9709ac1fc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 14:05:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 14:05:20 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Reject calls from a Controller that haven\u0027t allowed\""
    },
    {
      "commit": "818473f7f6e01ef8469ff562b190f899ae1fab17",
      "tree": "30f092ac186d27b5ae94ee6804cd6627b75ade17",
      "parents": [
        "0706cb6c427513b6f762cf45b1f715cf0602269b",
        "7cda0f098a62cc0297d63f9c9dfa6b5345c7fbf9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 09:42:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 09:42:31 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Avoid binding from system service if able\""
    },
    {
      "commit": "598c981ff4282327555558a83472f86d9d9ceebf",
      "tree": "daa2249bf7f846387bd150b964f5f4543567a2ea",
      "parents": [
        "0706cb6c427513b6f762cf45b1f715cf0602269b"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 02 17:52:35 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 02 17:52:35 2018 +0900"
      },
      "message": "MediaSession2: Add reset() to the MediaPlayerBase\n\nThis would be used in response to\n  - MediaController2#play()\n  - KEYCODE_MEDIA_STOP\n\nBug: 64098437\nTest: passed MediaComponentTest\nChange-Id: I5c0d93bb3f7bff7939bdf90e3a3ec54aaf4e6cea\n"
    },
    {
      "commit": "0706cb6c427513b6f762cf45b1f715cf0602269b",
      "tree": "be8090aa7bf5002d90273c81fcf1312efbe14904",
      "parents": [
        "7c9123d1bc697dc0496374908281b7a76914574a",
        "70bc195988e97be10006df4faf2eff1f443c79e1"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 02 08:22:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 08:22:21 2018 +0000"
      },
      "message": "Merge \"Move MediaItem2 Builder to updatable\""
    },
    {
      "commit": "7cda0f098a62cc0297d63f9c9dfa6b5345c7fbf9",
      "tree": "cf8b492da85c86325cc3160a777467faeb44362b",
      "parents": [
        "006b7eebe4c86eba7a67471d99b061b6b76177f5"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Feb 28 22:07:08 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 02 17:12:26 2018 +0900"
      },
      "message": "MediaSession2: Avoid binding from system service if able\n\nMediaController2 had bounded to session service whenever it\u0027s created.\nIt was to increase binding counter for a session service to keep it\nrunning while any controller exists, but it doesn\u0027t make sense for the\nsystem service which creates controllers only to monitor changes in a\nsession.\n\nAvoid binding from system service if able.\n\nBug: 73872399\nTest: Run all MediaComponents tests\nChange-Id: I16c81d67771e3716b646c8a48df5411bb4cf0527\n"
    },
    {
      "commit": "483261f98e9eeb6191d42873970a2ae9709ac1fc",
      "tree": "99a2d0f62c747d4bc2259be5e04a5adc13e7a18d",
      "parents": [
        "62abf5a3ec693c1c8d853e56b4e253798d09fb58"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Feb 20 11:45:12 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 02 16:28:28 2018 +0900"
      },
      "message": "MediaSession2: Reject calls from a Controller that haven\u0027t allowed\n\nThis CL prevent session from accepting unwanted commands.\n\nRemaining work is for controller to not sending command to prevent\nunnecessary binder calls. Note that we need protection logic from the\nsession because an evil app may make fake binder interface and call any\nAPI.\n\nBug: 72618604\nTest: Run MediaComponentsTest\nChange-Id: I08401e99eb03b83b3b41321dca860c10990d78c4\n"
    },
    {
      "commit": "ba467eed41a4363d91dfa08ed58bd2ae785f3435",
      "tree": "e0e75c3d5bc0d267ab704c59a313427f746fa666",
      "parents": [
        "ca791b98577f2843c9fe8bc7ed28aadf02fb255c"
      ],
      "author": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Thu Mar 01 10:10:00 2018 +0000"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Fri Mar 02 11:24:58 2018 +0900"
      },
      "message": "Revert \"Revert \"Complete [add|remove]OnSessionTokensChangedListener\"\"\n\nThis reverts commit 73b80b064ee813474e03b7bdb1e7aff4289ec06b.\n\nBug: 73226650\nTest: runtest-MediaComponents\nChange-Id: Ibed89af52a1d759cec56a53284651dfdb5e26d91\n"
    },
    {
      "commit": "9f0cbec1d758ba70627b6b4fa1bb12250b92677e",
      "tree": "3f8f56c978559ac4f27328239101a07cb69b32e2",
      "parents": [
        "885f29b814ecfd1c858572a3661f6f51fc791188",
        "73b80b064ee813474e03b7bdb1e7aff4289ec06b"
      ],
      "author": {
        "name": "Clara Bayarri",
        "email": "clarabayarri@google.com",
        "time": "Thu Mar 01 10:44:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 10:44:41 2018 +0000"
      },
      "message": "Merge \"Revert \"Complete [add|remove]OnSessionTokensChangedListener\"\""
    },
    {
      "commit": "73b80b064ee813474e03b7bdb1e7aff4289ec06b",
      "tree": "54fff7206b48bd7123929128a4fc1e2b1d0a44d4",
      "parents": [
        "ed81df47141bae55ab061de90aaacd2bf3c9144d"
      ],
      "author": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Thu Mar 01 10:10:00 2018 +0000"
      },
      "committer": {
        "name": "Esteban Talavera",
        "email": "etalavera@google.com",
        "time": "Thu Mar 01 10:10:00 2018 +0000"
      },
      "message": "Revert \"Complete [add|remove]OnSessionTokensChangedListener\"\n\nThis reverts commit ed81df47141bae55ab061de90aaacd2bf3c9144d.\n\nReason for revert: Broke several targets on git_master\n\nChange-Id: Ic2433f8ccc1cf973ae11b6c3f3298398b2cf6cbb\n"
    },
    {
      "commit": "885f29b814ecfd1c858572a3661f6f51fc791188",
      "tree": "3442be794ae7b85418dd13fe7863f73d2dfda2b1",
      "parents": [
        "5b09b829e12b0385c8c0307f0df1aebae7a24978",
        "ed81df47141bae55ab061de90aaacd2bf3c9144d"
      ],
      "author": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Thu Mar 01 07:54:03 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 07:54:03 2018 +0000"
      },
      "message": "Merge \"Complete [add|remove]OnSessionTokensChangedListener\""
    },
    {
      "commit": "5b09b829e12b0385c8c0307f0df1aebae7a24978",
      "tree": "3f8f56c978559ac4f27328239101a07cb69b32e2",
      "parents": [
        "1a113d3f14c9d7e474c413bfb5d42d8d0edecea7",
        "b1685c5ddaaa878b07ac44f81f4035003cfdc367"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 01 07:28:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 07:28:35 2018 +0000"
      },
      "message": "Merge \"MockPlayer: rename setVolume to setPlayerVolume\""
    },
    {
      "commit": "b1685c5ddaaa878b07ac44f81f4035003cfdc367",
      "tree": "f1a3ab667d8c91b7f850b3637b59e18b4b25e9d1",
      "parents": [
        "414ef561baf181397ecab5aac0e4a3ce66a9fd96"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 28 21:55:09 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 28 21:55:09 2018 -0800"
      },
      "message": "MockPlayer: rename setVolume to setPlayerVolume\n\nTest: compiles\nBug: 63934228\nChange-Id: I528b1494a31cda976381810ce83cc532b585d10b\n"
    },
    {
      "commit": "f82f720c00cf35a8f0f9a6135551ee47855dd6a0",
      "tree": "357c5c9a64879e498dadde1f56aad0f91ecc4d52",
      "parents": [
        "414ef561baf181397ecab5aac0e4a3ce66a9fd96"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Feb 28 01:21:49 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Thu Mar 01 11:01:12 2018 +0900"
      },
      "message": "MediaSession2: Refine APIs\n\nBug: 64098437\nTest: MediaComponentTest\nChange-Id: I7eee77186fc0d468903efa22793931f956717f7a\n"
    },
    {
      "commit": "ed81df47141bae55ab061de90aaacd2bf3c9144d",
      "tree": "54b4766833ef827e22ce43863597297fc56948d5",
      "parents": [
        "006b7eebe4c86eba7a67471d99b061b6b76177f5"
      ],
      "author": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Wed Feb 28 18:12:51 2018 +0900"
      },
      "committer": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Wed Feb 28 22:03:52 2018 +0900"
      },
      "message": "Complete [add|remove]OnSessionTokensChangedListener\n\nTest: runtest-MediaComponents\nBug: 73226650\nChange-Id: I44b83feeac0fdba4d70370533881920dc0940ab4\n"
    },
    {
      "commit": "414ef561baf181397ecab5aac0e4a3ce66a9fd96",
      "tree": "5859b82501e02235c951a6d11f34fd2b3f8123e6",
      "parents": [
        "b97f6a974a822cf4dcd58602be93cec321d36072"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Feb 27 20:39:01 2018 -0800"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Feb 28 20:20:59 2018 +0900"
      },
      "message": "MediaSession impl update for MediaPlayerBase\n\nUpdate the MediaSession implementation after MediaPlayerBase\n  API update.\n\nBug: 64098437\nTest: MediaSession CTS\nChange-Id: I3d1e25ea3d00e77a90f0b9bcd14ac0a2c9e3ddd1\n"
    },
    {
      "commit": "70bc195988e97be10006df4faf2eff1f443c79e1",
      "tree": "b3664886a6738674d8c414cc670fa95ebfdccd86",
      "parents": [
        "006b7eebe4c86eba7a67471d99b061b6b76177f5"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Feb 28 11:31:38 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Feb 28 16:28:08 2018 +0900"
      },
      "message": "Move MediaItem2 Builder to updatable\n\nThis CL also removes the public constructor of MediaItem2, which was\nsuggested by API reviewers.\n\nBug: 73971203\nTest: Passed MediaBrowser2Test (CTS)\nChange-Id: Ie7fce70682bba2952287b3e7baf90edd18453caf\n"
    },
    {
      "commit": "f1146f307b4c32e8ef0d23d13e43a5ce3a3458fb",
      "tree": "88318c6b84c6b06a1fcbd2bebbdc250569265a7e",
      "parents": [
        "b5f6e7b351a5e0df11e7a7def404baba84ece571"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Feb 28 00:14:23 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Feb 28 00:21:34 2018 +0900"
      },
      "message": "VideoView2Impl: Apply API changes\n\nBug: 64293205\nTest: build\nChange-Id: Ie7fb5e0b01214360f26c2313b6f022f0581bae5f\n"
    },
    {
      "commit": "b5f6e7b351a5e0df11e7a7def404baba84ece571",
      "tree": "b138628703e86ca981e46a4ea8ddfd9634f0fa38",
      "parents": [
        "91b22e5cb1413fbbd80374f0220d2877c83476ef"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Tue Feb 27 23:25:05 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Feb 28 00:20:10 2018 +0900"
      },
      "message": "MediaControlView2Impl: Apply API changes\n\nTest: build\nChange-Id: I516e5a312fe209f94704d302f0da2126d9920da4\n"
    },
    {
      "commit": "81c1b87234bdab435259acd355ba2df4730da3ce",
      "tree": "cd1dfd9e10026a879b4c8d9f9ca1bcbff4ccd676",
      "parents": [
        "218f8e3bec0070731bff41513b19f64d481dad24"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Feb 22 21:52:59 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 26 23:56:56 2018 +0900"
      },
      "message": "MediaSession2: Unhide APIs\n\nBug: 64098437\nTest: make update-api\nChange-Id: Ifb0f76f3a75b099485392e2b137cca39e1f35d0a\n"
    },
    {
      "commit": "218f8e3bec0070731bff41513b19f64d481dad24",
      "tree": "28499c0b4ec90efc56fff5a2faaf13057f8648bb",
      "parents": [
        "d89b871a64b2ae037e46a7fd6441387ad2928533",
        "87ed6334338c686a41113ec97818d96879c3c0e1"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 26 14:50:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 26 14:50:48 2018 +0000"
      },
      "message": "Merge \"MediaMetadata2: Add radio frequency and callsigns\""
    },
    {
      "commit": "d89b871a64b2ae037e46a7fd6441387ad2928533",
      "tree": "dcd1ad20a5f902d8bcb5b1d390335cb07dbaa099",
      "parents": [
        "4e16cbf73f08f1c4525021efea473d48814cc7de",
        "f8cdcb8311f14f8df081f4ac1fffe50e6c6decf8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 26 14:38:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 26 14:38:19 2018 +0000"
      },
      "message": "Merge \"MediaControlView2: Add UX for Settings\""
    },
    {
      "commit": "87ed6334338c686a41113ec97818d96879c3c0e1",
      "tree": "83a5d2fb386f801d46a5a1139ef74bf2c387801d",
      "parents": [
        "4e16cbf73f08f1c4525021efea473d48814cc7de"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Feb 22 16:47:40 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 26 22:36:53 2018 +0900"
      },
      "message": "MediaMetadata2: Add radio frequency and callsigns\n\nThis is request from the Android Auto Embeded, where the Android is\nrunning on the car kit and needs support radio application\n\nTest: Run all MediaComponents tests once\nChange-Id: I7a38cd41aa1d37162d4b494fdbbe45a46a556463\n"
    },
    {
      "commit": "4e16cbf73f08f1c4525021efea473d48814cc7de",
      "tree": "04012c56db9b2c7aae2e1772aac31a5028a3e889",
      "parents": [
        "ac7c7dbd519edb31eff023c651a53ae788dc0d82",
        "e38637402cf0426808f77b47483b83096112be5f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 26 11:58:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 26 11:58:16 2018 +0000"
      },
      "message": "Merge \"Remove MediaSession2Record\""
    },
    {
      "commit": "e38637402cf0426808f77b47483b83096112be5f",
      "tree": "f66bc6ba1b450584e993baee94250ba4f29e361f",
      "parents": [
        "643825e4943995bbefd13d55c58bffd5e6904e90"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Feb 14 13:59:28 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Mon Feb 26 19:21:17 2018 +0900"
      },
      "message": "Remove MediaSession2Record\n\nTest: passed MediaComponentsTest\nChange-Id: Iec56106877da82ba7466a83ac26727e2498bae23\n"
    },
    {
      "commit": "f8cdcb8311f14f8df081f4ac1fffe50e6c6decf8",
      "tree": "334497a820643c23769f6334478c61e016b2a78e",
      "parents": [
        "c9969aff776321b0319d1447d88dd71855413c73"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Tue Feb 13 15:25:58 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Mon Feb 26 17:41:41 2018 +0900"
      },
      "message": "MediaControlView2: Add UX for Settings\n\nThis CL adds the UX for Settings by using ListView. The next CL\nwill include updating the data dynamically.\n\nBug: 73703113\nTest: manually run VideoViewTest.apk\nChange-Id: Iff0677cbabc2965ccc72275b58592355557e4ac0\n"
    },
    {
      "commit": "ac7c7dbd519edb31eff023c651a53ae788dc0d82",
      "tree": "6c0608970bdf8e8867e63402ea475ff1b6c0f060",
      "parents": [
        "643825e4943995bbefd13d55c58bffd5e6904e90"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Feb 22 17:10:34 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 26 11:07:41 2018 +0900"
      },
      "message": "MediaBrowser2: Fix naming inconsistencies\n\nThis CL modifies following APIs:\n\n1. getLibraryRoot() related\n - onGetRoot \u003d\u003e onGetLibraryRoot\n - onGetRootResult \u003d\u003e onGetLibraryRootDone\n\n2. getItem() related\n - onLoadItem \u003d\u003e onGetItem\n   - Also renamed argument: itemId \u003d\u003e mediaId\n - onItemLoaded \u003d\u003e onGetItemDone\n\n3. getChildren() related\n - notifyChildrenChanged/onChildrenChanged\n   - Renamed argument: childCount \u003d\u003e itemCount\n - onLoadChildren \u003d\u003e onGetChildren\n - onChildrenLoaded \u003d\u003e onGetChildrenDone\n\n4. getSearchResult() related\n - onLoadSearchResult \u003d\u003e onGetSearchResult\n - onSearchResultLoaded \u003d\u003e onGetSearchResultDone\n\nBug: 73711101\nTest: Passed MediaBrowser2Test\nChange-Id: I7f59686e21f4de9d4512cd19067c944e49faad39\n"
    },
    {
      "commit": "c9969aff776321b0319d1447d88dd71855413c73",
      "tree": "a4bddef4e7542913da146aa6d5ec2f3c8595de25",
      "parents": [
        "467af1dd89332bf711bfba43a7a09474ff30157b"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Fri Feb 09 16:49:09 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Fri Feb 23 05:34:05 2018 +0000"
      },
      "message": "MediaControlView2: Add Support for Ad\n\nThis CL adds additional UX for showing the remaining time and the\nunskippable time. Also disable NEXT button for the first 5 seconds\nand disable SEEK throughout the whole duration of the advertisement.\n\nAlso, this CL adds a listener to TitleBar so that when the layout of\nVideoView2 is changed the layouts of the TitleBar is also changed to\navoid overlapping text.\n\nBug: 73136129\nTest: run VideoViewTest.apk\nChange-Id: Ic91b3f285343f4b6bbca2900ce499fb1f0d54bf6\n"
    },
    {
      "commit": "38ff0001bf84583a3144e977d939a3896273dd4a",
      "tree": "a403b94a667188ee1ab54c2f33ed2d72d1cffe61",
      "parents": [
        "9f303ea2df9d0f51ce661fe32384c60ed6f62d53"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 19 20:40:42 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Feb 22 02:04:21 2018 +0900"
      },
      "message": "MediaSession2: Add a way to notify errors between session and player\n\nThis is proposed during the offline meeting\n\nTest: Run all MediaComponents tests once\nChange-Id: I2cbd980275bf88af840eb9f1933363c3ad8ff2e3\n"
    },
    {
      "commit": "9f303ea2df9d0f51ce661fe32384c60ed6f62d53",
      "tree": "818a6207d11d6ea88fc1a7932aa9fbda2cb389f4",
      "parents": [
        "4ae300c57e84feca3992bf9b1bf5f319549df1d0"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 19 17:47:55 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Feb 22 02:03:49 2018 +0900"
      },
      "message": "MediaSession2: Implement MediaLibrarySession#notifyChildrenChanged()\n\nTest: Run all MediaComponents tests once\nBug: 72787989\nChange-Id: If9dd119667e74cc7c77288f3777be551b02ca462\n"
    },
    {
      "commit": "4ae300c57e84feca3992bf9b1bf5f319549df1d0",
      "tree": "4554f5a5efc21972142ad80262be7cdcba92ef11",
      "parents": [
        "1de57c63e9d29730815f1969a9cf19c8cc39d4d4"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 19 15:03:59 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Feb 22 02:03:04 2018 +0900"
      },
      "message": "MediaSession2: Implement subscribe/unsubscribe\n\nBug: 72786292\nTest: Run all MediaComponents tests\nChange-Id: Ie6ea4a3cec2c31961de4e0ba618a254023f1ee2e\n"
    },
    {
      "commit": "1de57c63e9d29730815f1969a9cf19c8cc39d4d4",
      "tree": "3d805cfb1d4b71ed60134283abb1c9a9c37c8fc9",
      "parents": [
        "1d64b51f3ee015b668cdce2948386240b2b0c3a5"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Feb 21 15:29:52 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Feb 22 02:02:58 2018 +0900"
      },
      "message": "MediaSession2: Remove rating style from session\n\nBug: 73615699\nTest: Passed MediaController2Test\nChange-Id: I6656c81f0b251adb80d3fb93c7c897a595dc8649\n"
    },
    {
      "commit": "1d64b51f3ee015b668cdce2948386240b2b0c3a5",
      "tree": "f4b748ef17daabc83bd058a032be18fefa69bcf0",
      "parents": [
        "048fdab04ae255ff347299d0e714f4f3201f97a9",
        "3b587ea61221604584e74b1929225341280b22ec"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 21 16:32:37 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 21 16:32:37 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Remove SessionPlayer2\""
    },
    {
      "commit": "048fdab04ae255ff347299d0e714f4f3201f97a9",
      "tree": "92f101bb07a1935eec24b1a660c358e426d767a2",
      "parents": [
        "73ad28c7a9a27f00cb154d77f0388f2a7d13076b"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Feb 21 19:10:15 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Feb 21 19:46:15 2018 +0900"
      },
      "message": "MediaBrowser2: Rearrange API arguments in relevant order\n\nTest: Passed MediaBrowser2Test\nChange-Id: I466f17c33a89c483ae3f3ff28a03984e516b5868\n"
    },
    {
      "commit": "3b587ea61221604584e74b1929225341280b22ec",
      "tree": "421c3cdd74eb5365062cdd0be6a450c02a61d98f",
      "parents": [
        "73ad28c7a9a27f00cb154d77f0388f2a7d13076b"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Feb 21 18:51:10 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Feb 21 18:51:10 2018 +0900"
      },
      "message": "MediaSession2: Remove SessionPlayer2\n\nMediaPlayer2 will provide implementation of MediaPlayerInterface\n\nTest: Run all MediaComponents test once\nChange-Id: Ib00ef954fcc6aea080a40d92f59f8fb67f71a020\n"
    },
    {
      "commit": "5b0c25fc17415b09f4838de65a003b83b61292e9",
      "tree": "e99cc4e6764055a3affd6517c98d53a40a75a012",
      "parents": [
        "eaf29912e82a3e93024d414761b9e468e60d60c3",
        "546a99d28b76740a13df41c4392d3a7e8227152a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 21 03:41:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 21 03:41:55 2018 +0000"
      },
      "message": "Merge \"MediaLibrarySession: Add notifySearchResultChanged\""
    },
    {
      "commit": "eaf29912e82a3e93024d414761b9e468e60d60c3",
      "tree": "b7c6490e392d09aa5222d7a70e503a342ed6e5b8",
      "parents": [
        "8b1198da31ba7a8e1a178cf12268c84ce0e9c529",
        "af063f1179a5046c13b55710a42aaba993e19fcb"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Feb 21 01:35:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 21 01:35:40 2018 +0000"
      },
      "message": "Merge \"MediaController2: Implement setRating()\""
    },
    {
      "commit": "546a99d28b76740a13df41c4392d3a7e8227152a",
      "tree": "05f226779557652beefcdae061d98e1188418966",
      "parents": [
        "bc05249d386b29b24607af23c7d541d48047b729"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Feb 14 11:23:00 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Feb 20 14:12:54 2018 +0900"
      },
      "message": "MediaLibrarySession: Add notifySearchResultChanged\n\nThis CL also adds tests for search()/getSearchResult().\n\nBug: 72786724\nTest: Passed MediaBrowser2Test\nChange-Id: I3b232e1f959aa2d56fdc1caa46bf8d2775262bf1\n"
    },
    {
      "commit": "0c4a83577120afa4b5877a49f9765900746ffb4f",
      "tree": "4d9e2d388b078efcd54663a8eeb2618ecbbd8d89",
      "parents": [
        "7c9dbd5440e8119ca439e4b9315843bd348b991f"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Mon Feb 19 19:01:11 2018 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Mon Feb 19 19:01:11 2018 +0900"
      },
      "message": "VideoView2: Remove redundant listeners\n\nBug: 73598418\nTest: build\nChange-Id: Id3fcaa31375c815729af7e4080d7d34903ba68c7\n"
    },
    {
      "commit": "7c9dbd5440e8119ca439e4b9315843bd348b991f",
      "tree": "ba7ba4d9680d0a5e457a11838d6e70235021edb0",
      "parents": [
        "e7e6c5a82245d27625d6ff4e131515bb8a27aa17",
        "479c5da9a621964828562c43c52b1520d39ac47d"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Mon Feb 19 09:04:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 19 09:04:06 2018 +0000"
      },
      "message": "Merge \"VideoView2: Call listeners with Executor\""
    },
    {
      "commit": "af063f1179a5046c13b55710a42aaba993e19fcb",
      "tree": "586b9a4521d457fa731a198cfdad408c84e8ebac",
      "parents": [
        "bc05249d386b29b24607af23c7d541d48047b729"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Feb 19 14:51:24 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Feb 19 16:21:05 2018 +0900"
      },
      "message": "MediaController2: Implement setRating()\n\nBug: 73146284\nTest: Passed MediaController2Test\nChange-Id: I639d410c610aaf7ad7c953851aad5db9fc87d65a\n"
    },
    {
      "commit": "e7e6c5a82245d27625d6ff4e131515bb8a27aa17",
      "tree": "a7ca87225edaf4b2fd4cef0f9cf3037bca44644c",
      "parents": [
        "f1b411c5dd2570b9b5b79f497cf87d50b354a33a"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 19 14:25:26 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 19 14:25:26 2018 +0900"
      },
      "message": "MediaSession2 test: Close sessions after uses\n\nThis fixes following test failure\nMediaController2Test#testConnectToService_libraryService\n\nTest: Confirmed that the test now success\nChange-Id: Ie8c4d6a896a02a81a7167a8f9eee3306a8443f8d\n"
    },
    {
      "commit": "f1b411c5dd2570b9b5b79f497cf87d50b354a33a",
      "tree": "ed8fe86a37931c07b240efa9ac2340d3755e2e06",
      "parents": [
        "cc120dd6edf846f900d8ffa0c226196ca960479a"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 19 14:24:28 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 19 14:24:28 2018 +0900"
      },
      "message": "MediaSession2: Don\u0027t reject connection requests from trusted apps\n\nThis also fixes following test failure\nMediaSessionmanager_MediaSession2#testGetSessionTokens_sessionRejected\n\nTest: Confirmed that the test now success\nChange-Id: Iffd4f10c78cf341e5c8ef63fe21a30f6a6562343\n"
    },
    {
      "commit": "cc120dd6edf846f900d8ffa0c226196ca960479a",
      "tree": "5f348515feaedade267271657a1b249a15d1b45d",
      "parents": [
        "bc05249d386b29b24607af23c7d541d48047b729"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Feb 13 22:05:37 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 19 14:22:59 2018 +0900"
      },
      "message": "MediaSession2: Re-enable MediaSessionManager releated tests\n\nSome tests were  previously disabled because the server didn\u0027t recognize\ntest apk installation. Re-enable those tests.\n\nSome tests were broken while they had been hidden, and later CLs will\nfix failures.\n\nBug: 72613128\nTest: Run all MediaComponents tests. Following failures will be fixed\n      in next CLs\n        - MediaSessionmanager_MediaSession2\n            #testGetSessionTokens_sessionRejected\n        - MediaController2Test#testConnectToService_libraryService\nChange-Id: Ib312aa55403f9ba67644389873c009b7e31c0b00\n"
    },
    {
      "commit": "479c5da9a621964828562c43c52b1520d39ac47d",
      "tree": "91d121583dc8efedd6345e53f4877dfe0f047777",
      "parents": [
        "d8d4ef440fe25095d34e535e591edd8fa1457307"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Mon Feb 12 20:29:46 2018 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Mon Feb 19 11:23:12 2018 +0900"
      },
      "message": "VideoView2: Call listeners with Executor\n\nBug: 72721602\nTest: build\nChange-Id: Iebd611e1d0169caec712530e01935fa75096102d\n"
    },
    {
      "commit": "eb9d054a490afad6abf0b2e1dfa969196600338f",
      "tree": "45161cc024c0e2d77ab42695f04efcbd7aaf4e0d",
      "parents": [
        "248c4892bceb529573a0514e603a95ff36fadd38",
        "bd396d85b6fb4ab8ad25c403ba06789a55edb020"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 14 08:07:11 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 14 08:07:11 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Remove initialization in library session impl constructor\""
    },
    {
      "commit": "bd396d85b6fb4ab8ad25c403ba06789a55edb020",
      "tree": "7ec1647f91df14c33959e5fde33c6432f7a7a485",
      "parents": [
        "e4767e3911d3e31c31ab558819a9e8960dbbbdd6"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Feb 14 15:11:43 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Feb 14 15:20:28 2018 +0900"
      },
      "message": "MediaSession2: Remove initialization in library session impl constructor\n\nThis fixes crash when framework tries to connect to the library session\nimpl when the session\u0027s super constructor is finished but mCallback\nisn\u0027t set yet.\n\nBug: 73327626\nTest: Run all MediaComponents test once\nChange-Id: I42776925fc45b907072c39bc6dbc0dc86a896e0f\n"
    },
    {
      "commit": "f62d73ab511d4268d137c7f072976b7077838b78",
      "tree": "c39007c83ad2df044c4ac294181ddc238f9c6d86",
      "parents": [
        "acdc3e6774af93fb946888638e80dff97daf04df",
        "887adabbe26479b216f976095d3cd0d8cc4b9a49"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Feb 14 01:49:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 14 01:49:07 2018 +0000"
      },
      "message": "Merge \"Fix PDK build\""
    },
    {
      "commit": "887adabbe26479b216f976095d3cd0d8cc4b9a49",
      "tree": "6eff9fab800ceebba4d6520d82255e61566aec55",
      "parents": [
        "57c91e1e527e271fb8fc385d672922c4c8261424"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Feb 13 18:30:25 2018 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Feb 13 19:09:34 2018 +0800"
      },
      "message": "Fix PDK build\n\nThis commit disables \"MediaComponents\" in PDK builds because\n\"MediaComponents\" depends on classes from \"frameworks/base/core/java\"\nwhich are not in PDK builds as well.\n\nTest: Build a target (described in http://b/72961456) with\n`platform.zip` built from master FSK source tree.\n\nBug: 72961456\nChange-Id: I79ff96b84d8d7865c83b186490f7587d2a89fbdc\n"
    },
    {
      "commit": "e4767e3911d3e31c31ab558819a9e8960dbbbdd6",
      "tree": "35dc593d001c34a9380b78e82f718bbfe5da0501",
      "parents": [
        "1a8cac04007e9dadf26a09249e4edbd003999116",
        "2f60a419d2a886ddbfa8e174c31303a91b017f12"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Feb 13 10:52:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 10:52:06 2018 +0000"
      },
      "message": "Merge \"MediaBrowser2: Implement search()/getSearchResult()\""
    },
    {
      "commit": "1a8cac04007e9dadf26a09249e4edbd003999116",
      "tree": "3c06a11da362308b2073bbb65411495a039dff5a",
      "parents": [
        "5f23b9982bdcc62ce6125c1179aa40348c31371d",
        "9ddc2096deaae0fa940d1d80d0f415ddb1ba32b8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 13 08:15:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 08:15:55 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Fix bug in SessionToken2 constructor\""
    },
    {
      "commit": "2f60a419d2a886ddbfa8e174c31303a91b017f12",
      "tree": "296e69aacdbda1868586b2701577c7ffdf737df6",
      "parents": [
        "e65b694a101ae6dd0386f48ac3cc9548c8991242"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Feb 13 11:16:47 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Feb 13 17:13:12 2018 +0900"
      },
      "message": "MediaBrowser2: Implement search()/getSearchResult()\n\nThis CL also fixes conflicting @NonNull/@Nullable annotations in\nMediaItem2 methods.\n\nBug: 72786724\nTest: Builds successfully\nChange-Id: Ib35282b7cefc7133a3ab8477174507000b1954de\n"
    },
    {
      "commit": "9ddc2096deaae0fa940d1d80d0f415ddb1ba32b8",
      "tree": "c3e137d68c07a21e04ee26387cef286bb8bc9b6a",
      "parents": [
        "31832c60d57558c2d5ddb2e45e4c6111ce9e55bb"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Feb 13 11:09:08 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Feb 13 15:21:07 2018 +0900"
      },
      "message": "MediaSession2: Fix bug in SessionToken2 constructor\n\nThere\u0027s a bug in SessionToken2 constructor that session service is\nmisunderstood as library service. It\u0027s because\nPackageManager.resolveService(Intent, int) ignores action in the intent\nif the class name is specified, and there\u0027s no way for getting the\naction from the ResolvedInfo.\n\nUse PackageManager.queryIntentServices(Intent, int) instead to query\nservices with the action.\n\nAlso added tests and fixed ID mismatch issue in test service.\n\nTest: Run all MediaComponents tests once\nChange-Id: I5df2f36eae8100be268629881122f47e44eb41d1\n"
    },
    {
      "commit": "405b3c70ccf6c6671fbbe72557a8493e4e0f6097",
      "tree": "9c74c7c59512cc2dd84abebc3cb64492208064a5",
      "parents": [
        "e65b694a101ae6dd0386f48ac3cc9548c8991242",
        "c49998bbfe25cdcffda10efc4ae5760e5a422bce"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 13 05:11:00 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 05:11:00 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Code cleanup for setPlayer\""
    },
    {
      "commit": "dc71b3ccd7326d78632215fe96e7c135381447e9",
      "tree": "946fc1e1321afac04cde0b47652a5f22bae3f1e4",
      "parents": [
        "4d4a2704c7610e7d4a92a74e57cd24db8b185a2f",
        "32ecc4f76d856dcd56ab6e2e2f272fddd17c0267"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 13 04:44:03 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 04:44:03 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Allow setting session callback for test session services\""
    },
    {
      "commit": "4d4a2704c7610e7d4a92a74e57cd24db8b185a2f",
      "tree": "55013bf07c12c4d2d34ce89e6792d9459c68f233",
      "parents": [
        "57c91e1e527e271fb8fc385d672922c4c8261424",
        "7fb4b55b3a27cadde989630ff01f307b830ff111"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 13 04:40:37 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 04:40:37 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Fix flaky test failure with \u0027player isn\u0027t set\u0027\""
    },
    {
      "commit": "46bf6bdab5a6f41ff42107907906647417edab7c",
      "tree": "df3e9544e516a2e2730c0b56e9854d76b8957dc5",
      "parents": [
        "c91ac47d242dc269f342edb470d738447fe25486",
        "785d2f41ea05d9372fe7e06a76c58661f9727db3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 13 03:13:11 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 03:13:11 2018 +0000"
      },
      "message": "Merge \"MediaBrowser2: Implement getItem/getChildren\""
    },
    {
      "commit": "7fb4b55b3a27cadde989630ff01f307b830ff111",
      "tree": "6c58e597f6aa3c27835a23eeea96c0f49dd89eac",
      "parents": [
        "7a498a96c082fd6baee468261128e9f0080ef2df"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 12 17:33:07 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Feb 13 11:18:51 2018 +0900"
      },
      "message": "MediaSession2: Fix flaky test failure with \u0027player isn\u0027t set\u0027\n\nTest: Run all tests 50 times\nChange-Id: I5ecb6f0a9bf51389da4478bbaf02f021913ce7e6\n"
    },
    {
      "commit": "31832c60d57558c2d5ddb2e45e4c6111ce9e55bb",
      "tree": "64351bb9d7d0da9d5e85bea2fbd63c5612bad09c",
      "parents": [
        "a9eaa7cdb4c426e2e84563b0bbb305ad8cfe7abc",
        "7b63e9d8cc9c33bda8623c12e86ea6cb8e1f618f"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Feb 13 01:40:00 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 01:40:00 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Fix bug in runtest.sh for finding test apk\""
    },
    {
      "commit": "785d2f41ea05d9372fe7e06a76c58661f9727db3",
      "tree": "4b2e2e2e80b032d45bcede4518320e72ccfb4918",
      "parents": [
        "a9eaa7cdb4c426e2e84563b0bbb305ad8cfe7abc"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Feb 06 14:27:00 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Feb 13 10:20:35 2018 +0900"
      },
      "message": "MediaBrowser2: Implement getItem/getChildren\n\nBug: 72786723\nTest: Passed MediaBrowser2Test\nChange-Id: I82d9116da16ee5bb6e956748add1bdac800666dd\n"
    },
    {
      "commit": "32ecc4f76d856dcd56ab6e2e2f272fddd17c0267",
      "tree": "5b4199f88e4e5540bfcaa22e41b1119e35ae98fd",
      "parents": [
        "7a498a96c082fd6baee468261128e9f0080ef2df"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 12 20:33:47 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 12 20:33:47 2018 +0900"
      },
      "message": "MediaSession2: Allow setting session callback for test session services\n\nThis is the preliminary step towards adding tests for library service.\n\nTest: Run all MediaComponents tests once\nChange-Id: I42a812f3771f1b15195693189dd83fed590c77ae\n"
    },
    {
      "commit": "d8d4ef440fe25095d34e535e591edd8fa1457307",
      "tree": "c1ab6f94082d434198e493dc49f71077be0eb099",
      "parents": [
        "a8b87fdd07b3b0c3f9a0b9a0a894155ca6d8c2e6",
        "ea02767af55896a5481edbba9b696ddf328b646a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 12 09:48:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 12 09:48:23 2018 +0000"
      },
      "message": "Merge \"MediaControlView2: Add UX for ad mode\""
    }
  ],
  "next": "a8b87fdd07b3b0c3f9a0b9a0a894155ca6d8c2e6"
}
