MediaSession2: Introduce MediaSession2.Command / CommandGroup

Test: Run all tests once
Change-Id: I67d2b09a68bc47a3c9b09be146e8fca6584e5755
diff --git a/packages/MediaComponents/test/runtest.sh b/packages/MediaComponents/test/runtest.sh
index bda48b0..5c0ef51 100644
--- a/packages/MediaComponents/test/runtest.sh
+++ b/packages/MediaComponents/test/runtest.sh
@@ -124,7 +124,7 @@
       if [[ "${OPTION_MIN}" != "true" ]]; then
         build_targets="${build_targets} droid"
       fi
-      m ${build_targets} -j || (echo "Build failed. stop" ; break)
+      m ${build_targets} -j || break
 
       ${adb} root
       ${adb} remount
diff --git a/packages/MediaComponents/test/src/android/media/MediaController2Test.java b/packages/MediaComponents/test/src/android/media/MediaController2Test.java
index 161a463..38d34cc 100644
--- a/packages/MediaComponents/test/src/android/media/MediaController2Test.java
+++ b/packages/MediaComponents/test/src/android/media/MediaController2Test.java
@@ -205,8 +205,8 @@
     public void testControllerCallback_sessionRejects() throws InterruptedException {
         final MediaSession2.SessionCallback sessionCallback = new SessionCallback() {
             @Override
-            public long onConnect(ControllerInfo controller) {
-                return 0;
+            public MediaSession2.CommandGroup onConnect(ControllerInfo controller) {
+                return null;
             }
         };
         sHandler.postAndSync(() -> {
diff --git a/packages/MediaComponents/test/src/android/media/MediaSession2Test.java b/packages/MediaComponents/test/src/android/media/MediaSession2Test.java
index a77fd63..f7224ea 100644
--- a/packages/MediaComponents/test/src/android/media/MediaSession2Test.java
+++ b/packages/MediaComponents/test/src/android/media/MediaSession2Test.java
@@ -209,15 +209,15 @@
         assertFalse(mPlayer.mCountDownLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS));
         assertFalse(mPlayer.mPauseCalled);
         assertEquals(1, callback.commands.size());
-        assertEquals(MediaSession2.COMMAND_FLAG_PLAYBACK_PAUSE,
-                (long) callback.commands.get(0));
+        assertEquals(MediaSession2.COMMAND_CODE_PLAYBACK_PAUSE,
+                (long) callback.commands.get(0).getCommandCode());
         controller.skipToNext();
         assertTrue(mPlayer.mCountDownLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS));
         assertTrue(mPlayer.mSkipToNextCalled);
         assertFalse(mPlayer.mPauseCalled);
         assertEquals(2, callback.commands.size());
-        assertEquals(MediaSession2.COMMAND_FLAG_PLAYBACK_SKIP_NEXT_ITEM,
-                (long) callback.commands.get(1));
+        assertEquals(MediaSession2.COMMAND_CODE_PLAYBACK_SKIP_NEXT_ITEM,
+                (long) callback.commands.get(1).getCommandCode());
     }
 
     @Test
@@ -236,28 +236,28 @@
 
     public class MockOnConnectCallback extends SessionCallback {
         @Override
-        public long onConnect(ControllerInfo controllerInfo) {
+        public MediaSession2.CommandGroup onConnect(ControllerInfo controllerInfo) {
             if (Process.myUid() != controllerInfo.getUid()) {
-                return 0;
+                return null;
             }
             assertEquals(mContext.getPackageName(), controllerInfo.getPackageName());
             assertEquals(Process.myUid(), controllerInfo.getUid());
             assertFalse(controllerInfo.isTrusted());
             // Reject all
-            return 0;
+            return null;
         }
     }
 
     public class MockOnCommandCallback extends SessionCallback {
-        public final ArrayList<Long> commands = new ArrayList<>();
+        public final ArrayList<MediaSession2.Command> commands = new ArrayList<>();
 
         @Override
-        public boolean onCommand(ControllerInfo controllerInfo, long command) {
+        public boolean onCommandRequest(ControllerInfo controllerInfo, MediaSession2.Command command) {
             assertEquals(mContext.getPackageName(), controllerInfo.getPackageName());
             assertEquals(Process.myUid(), controllerInfo.getUid());
             assertFalse(controllerInfo.isTrusted());
             commands.add(command);
-            if (command == MediaSession2.COMMAND_FLAG_PLAYBACK_PAUSE) {
+            if (command.getCommandCode() == MediaSession2.COMMAND_CODE_PLAYBACK_PAUSE) {
                 return false;
             }
             return true;
diff --git a/packages/MediaComponents/test/src/android/media/MediaSession2TestBase.java b/packages/MediaComponents/test/src/android/media/MediaSession2TestBase.java
index 80b8b79..ab842c4 100644
--- a/packages/MediaComponents/test/src/android/media/MediaSession2TestBase.java
+++ b/packages/MediaComponents/test/src/android/media/MediaSession2TestBase.java
@@ -20,6 +20,7 @@
 import static junit.framework.Assert.assertTrue;
 
 import android.content.Context;
+import android.media.MediaSession2.CommandGroup;
 import android.os.HandlerThread;
 import android.support.annotation.CallSuper;
 import android.support.annotation.NonNull;
@@ -106,7 +107,7 @@
 
         @CallSuper
         @Override
-        public void onConnected(long commands) {
+        public void onConnected(CommandGroup commands) {
             super.onConnected(commands);
             connectLatch.countDown();
         }
diff --git a/packages/MediaComponents/test/src/android/media/MediaSessionManager_MediaSession2.java b/packages/MediaComponents/test/src/android/media/MediaSessionManager_MediaSession2.java
index 552f0a6..0ee37b1 100644
--- a/packages/MediaComponents/test/src/android/media/MediaSessionManager_MediaSession2.java
+++ b/packages/MediaComponents/test/src/android/media/MediaSessionManager_MediaSession2.java
@@ -115,9 +115,9 @@
             mSession = new MediaSession2.Builder(mContext, new MockPlayer(0)).setId(TAG)
                     .setSessionCallback(new SessionCallback() {
                         @Override
-                        public long onConnect(ControllerInfo controller) {
+                        public MediaSession2.CommandGroup onConnect(ControllerInfo controller) {
                             // Reject all connection request.
-                            return 0;
+                            return null;
                         }
                     }).build();
         });
diff --git a/packages/MediaComponents/test/src/android/media/MockMediaSessionService2.java b/packages/MediaComponents/test/src/android/media/MockMediaSessionService2.java
index 0fa2f52..e4a7485 100644
--- a/packages/MediaComponents/test/src/android/media/MockMediaSessionService2.java
+++ b/packages/MediaComponents/test/src/android/media/MockMediaSessionService2.java
@@ -59,7 +59,7 @@
 
     private class MySessionCallback extends SessionCallback {
         @Override
-        public long onConnect(ControllerInfo controller) {
+        public MediaSession2.CommandGroup onConnect(ControllerInfo controller) {
             if (Process.myUid() != controller.getUid()) {
                 // It's system app wants to listen changes. Ignore.
                 return super.onConnect(controller);