Move VideoShareSession to third_party to remove bad cast in VideoShareManager

It was odd that we were casting and was causing some crashes. This CL makes
things work more as is typical in Dialer.

We previously did not do this because there are some parts of the
VideoShareSession which are not open-sourceable. Turns out we can simplify
those parts out of the interface.

Bug: 63523694
Test: existing tests
PiperOrigin-RevId: 161593028
Change-Id: I8f1379fc46f4e9d41413b731787dbf37e0901da9
diff --git a/java/com/android/dialer/enrichedcall/EnrichedCallManager.java b/java/com/android/dialer/enrichedcall/EnrichedCallManager.java
index f1057be..4d00854 100644
--- a/java/com/android/dialer/enrichedcall/EnrichedCallManager.java
+++ b/java/com/android/dialer/enrichedcall/EnrichedCallManager.java
@@ -23,6 +23,7 @@
 import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
 import com.android.dialer.enrichedcall.historyquery.proto.HistoryResult;
 import com.android.dialer.enrichedcall.videoshare.VideoShareListener;
+import com.android.dialer.enrichedcall.videoshare.VideoShareSession;
 import com.android.dialer.multimedia.MultimediaData;
 import java.util.List;
 import java.util.Map;
@@ -299,6 +300,14 @@
   long getVideoShareInviteSessionId(@NonNull String number);
 
   /**
+   * Returns the {@link VideoShareSession} for the given sessionId, or {@code null} if no session
+   * exists.
+   */
+  @MainThread
+  @Nullable
+  VideoShareSession getVideoShareSession(long sessionId);
+
+  /**
    * Ends the given video share session.
    *
    * @param sessionId the id of the session to end
diff --git a/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java b/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java
index 1f2b005..de95e07 100644
--- a/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java
+++ b/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java
@@ -27,6 +27,7 @@
 import com.android.dialer.enrichedcall.Session;
 import com.android.dialer.enrichedcall.historyquery.proto.HistoryResult;
 import com.android.dialer.enrichedcall.videoshare.VideoShareListener;
+import com.android.dialer.enrichedcall.videoshare.VideoShareSession;
 import com.android.dialer.multimedia.MultimediaData;
 import java.util.Collections;
 import java.util.List;
@@ -169,6 +170,14 @@
     return Session.NO_SESSION_ID;
   }
 
+  @MainThread
+  @Nullable
+  @Override
+  public VideoShareSession getVideoShareSession(long sessionId) {
+    Assert.isMainThread();
+    return null;
+  }
+
   @Override
   public void endVideoShareSession(long sessionId) {}
 }
diff --git a/java/com/android/dialer/enrichedcall/videoshare/VideoShareListener.java b/java/com/android/dialer/enrichedcall/videoshare/VideoShareListener.java
index f24724a..0e5f79f 100644
--- a/java/com/android/dialer/enrichedcall/videoshare/VideoShareListener.java
+++ b/java/com/android/dialer/enrichedcall/videoshare/VideoShareListener.java
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package com.android.dialer.enrichedcall.videoshare;
 
 import android.support.annotation.MainThread;
diff --git a/java/com/android/dialer/enrichedcall/videoshare/VideoShareSession.java b/java/com/android/dialer/enrichedcall/videoshare/VideoShareSession.java
new file mode 100644
index 0000000..b0f24ff
--- /dev/null
+++ b/java/com/android/dialer/enrichedcall/videoshare/VideoShareSession.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.enrichedcall.videoshare;
+
+import android.support.annotation.NonNull;
+import android.view.SurfaceView;
+
+/** Holds state information and data about video share sessions. */
+public interface VideoShareSession {
+  void setSessionId(long sessionId);
+
+  long getSessionId();
+
+  int getState();
+
+  void pause();
+
+  void unpause();
+
+  void dispose();
+
+  void setSurfaceView(@NonNull SurfaceView surfaceView);
+
+  void setCamera(String cameraId);
+}