summaryrefslogtreecommitdiff
path: root/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-04-06 23:16:42 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-04-06 23:16:42 +0000
commit28188020060d1ad3304dfa0367486ff5bb35da62 (patch)
tree8d08d4f2292aa84dc435d455891e7ab633d95a25 /java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
parent34e183cfd77f68e0ade42d2080c76f54a319430d (diff)
parent01a86435499d66b267765f89b7dd9c83c158ddfe (diff)
Update AOSP Dialer source from internal google3 repository at cl/152373142. am: d8046e520a
am: 01a8643549 Change-Id: Ib92542e6b88bc8d8906982280244661ed7dbca8f
Diffstat (limited to 'java/com/android/incallui/videotech/lightbringer/LightbringerTech.java')
-rw-r--r--java/com/android/incallui/videotech/lightbringer/LightbringerTech.java146
1 files changed, 146 insertions, 0 deletions
diff --git a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
new file mode 100644
index 000000000..e49d0b84d
--- /dev/null
+++ b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
@@ -0,0 +1,146 @@
+/*
+ * 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.incallui.videotech.lightbringer;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.telecom.Call;
+import com.android.dialer.common.Assert;
+import com.android.dialer.lightbringer.Lightbringer;
+import com.android.dialer.lightbringer.LightbringerListener;
+import com.android.incallui.video.protocol.VideoCallScreen;
+import com.android.incallui.video.protocol.VideoCallScreenDelegate;
+import com.android.incallui.videotech.VideoTech;
+import com.android.incallui.videotech.utils.SessionModificationState;
+
+public class LightbringerTech implements VideoTech, LightbringerListener {
+ private final Lightbringer lightbringer;
+ private final VideoTechListener listener;
+ private final String callingNumber;
+ private int callState = Call.STATE_NEW;
+
+ public LightbringerTech(
+ @NonNull Lightbringer lightbringer,
+ @NonNull VideoTechListener listener,
+ @NonNull String callingNumber) {
+ this.lightbringer = Assert.isNotNull(lightbringer);
+ this.listener = Assert.isNotNull(listener);
+ this.callingNumber = Assert.isNotNull(callingNumber);
+
+ lightbringer.registerListener(this);
+ }
+
+ @Override
+ public boolean isAvailable(Context context) {
+ return callState == Call.STATE_ACTIVE && lightbringer.isReachable(context, callingNumber);
+ }
+
+ @Override
+ public boolean isTransmittingOrReceiving() {
+ return false;
+ }
+
+ @Override
+ public boolean isSelfManagedCamera() {
+ return false;
+ }
+
+ @Override
+ public boolean shouldUseSurfaceView() {
+ return false;
+ }
+
+ @Override
+ public VideoCallScreenDelegate createVideoCallScreenDelegate(
+ Context context, VideoCallScreen videoCallScreen) {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public void onCallStateChanged(Context context, int newState) {
+ if (newState == Call.STATE_DISCONNECTING) {
+ lightbringer.unregisterListener(this);
+ }
+
+ callState = newState;
+ }
+
+ @Override
+ public int getSessionModificationState() {
+ return SessionModificationState.NO_REQUEST;
+ }
+
+ @Override
+ public void upgradeToVideo() {
+ // TODO: upgrade to a video call
+ }
+
+ @Override
+ public void acceptVideoRequest() {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public void acceptVideoRequestAsAudio() {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public void declineVideoRequest() {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public boolean isTransmitting() {
+ return false;
+ }
+
+ @Override
+ public void stopTransmission() {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public void resumeTransmission() {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public void pause() {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public void unpause() {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public void setCamera(String cameraId) {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public void setDeviceOrientation(int rotation) {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public void onLightbringerStateChanged() {
+ listener.onVideoTechStateChanged();
+ }
+}