From 2f1c7586bcce334ca69022eb8dc6d8965ceb6a05 Mon Sep 17 00:00:00 2001 From: Eric Erfanian Date: Mon, 19 Jun 2017 11:26:01 -0700 Subject: Update AOSP Dialer source from internal google3 repository at cl/159428781. Test: make, treehugger This CL updates the AOSP Dialer source with all the changes that have gone into the private google3 repository. This includes all the changes from cl/152373142 (4/06/2017) to cl/159428781 (6/19/2017). This goal of these drops is to keep the AOSP source in sync with the internal google3 repository. Currently these sync are done by hand with very minor modifications to the internal source code. See the Android.mk file for list of modifications. Our current goal is to do frequent drops (daily if possible) and eventually switched to an automated process. Change-Id: Ie60a84b3936efd0ea3d95d7c86bf96d2b1663030 --- java/com/android/incallui/videotech/VideoTech.java | 5 +++- .../incallui/videotech/empty/EmptyVideoTech.java | 6 ++++- .../incallui/videotech/ims/ImsVideoTech.java | 10 ++++---- .../videotech/lightbringer/LightbringerTech.java | 28 +++++++++++++++------- 4 files changed, 34 insertions(+), 15 deletions(-) (limited to 'java/com/android/incallui/videotech') diff --git a/java/com/android/incallui/videotech/VideoTech.java b/java/com/android/incallui/videotech/VideoTech.java index 7da74c057..34c3e2ca9 100644 --- a/java/com/android/incallui/videotech/VideoTech.java +++ b/java/com/android/incallui/videotech/VideoTech.java @@ -17,6 +17,7 @@ package com.android.incallui.videotech; import android.content.Context; +import android.support.annotation.Nullable; import com.android.incallui.video.protocol.VideoCallScreen; import com.android.incallui.video.protocol.VideoCallScreenDelegate; import com.android.incallui.videotech.utils.SessionModificationState; @@ -41,6 +42,8 @@ public interface VideoTech { void onCallStateChanged(Context context, int newState); + void onRemovedFromCallList(); + @SessionModificationState int getSessionModificationState(); @@ -62,7 +65,7 @@ public interface VideoTech { void unpause(); - void setCamera(String cameraId); + void setCamera(@Nullable String cameraId); void setDeviceOrientation(int rotation); diff --git a/java/com/android/incallui/videotech/empty/EmptyVideoTech.java b/java/com/android/incallui/videotech/empty/EmptyVideoTech.java index d0a111d62..85eb64ee4 100644 --- a/java/com/android/incallui/videotech/empty/EmptyVideoTech.java +++ b/java/com/android/incallui/videotech/empty/EmptyVideoTech.java @@ -17,6 +17,7 @@ package com.android.incallui.videotech.empty; import android.content.Context; +import android.support.annotation.Nullable; import com.android.dialer.common.Assert; import com.android.incallui.video.protocol.VideoCallScreen; import com.android.incallui.video.protocol.VideoCallScreenDelegate; @@ -55,6 +56,9 @@ public class EmptyVideoTech implements VideoTech { @Override public void onCallStateChanged(Context context, int newState) {} + @Override + public void onRemovedFromCallList() {} + @Override public int getSessionModificationState() { return SessionModificationState.NO_REQUEST; @@ -90,7 +94,7 @@ public class EmptyVideoTech implements VideoTech { public void unpause() {} @Override - public void setCamera(String cameraId) {} + public void setCamera(@Nullable String cameraId) {} @Override public void setDeviceOrientation(int rotation) {} diff --git a/java/com/android/incallui/videotech/ims/ImsVideoTech.java b/java/com/android/incallui/videotech/ims/ImsVideoTech.java index 01e4bb84c..a6cef7b81 100644 --- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java +++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java @@ -18,6 +18,7 @@ package com.android.incallui.videotech.ims; import android.content.Context; import android.os.Build; +import android.support.annotation.Nullable; import android.telecom.Call; import android.telecom.Call.Details; import android.telecom.VideoProfile; @@ -119,6 +120,9 @@ public class ImsVideoTech implements VideoTech { previousVideoState = newVideoState; } + @Override + public void onRemovedFromCallList() {} + @Override public int getSessionModificationState() { return sessionModificationState; @@ -183,8 +187,6 @@ public class ImsVideoTech implements VideoTech { public void stopTransmission() { LogUtil.enterBlock("ImsVideoTech.stopTransmission"); - setCamera(null); - int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState()); call.getVideoCall() .sendSessionModifyRequest( @@ -235,7 +237,7 @@ public class ImsVideoTech implements VideoTech { } @Override - public void setCamera(String cameraId) { + public void setCamera(@Nullable String cameraId) { call.getVideoCall().setCamera(cameraId); call.getVideoCall().requestCameraCapabilities(); } @@ -248,7 +250,7 @@ public class ImsVideoTech implements VideoTech { private boolean canPause() { return call.getDetails().can(Details.CAPABILITY_CAN_PAUSE_VIDEO) && call.getState() == Call.STATE_ACTIVE - && isTransmitting(); + && isTransmittingOrReceiving(); } static int getUnpausedVideoState(int videoState) { diff --git a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java index e49d0b84d..55ee2db21 100644 --- a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java +++ b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java @@ -17,9 +17,13 @@ package com.android.incallui.videotech.lightbringer; import android.content.Context; +import android.os.Build; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.telecom.Call; +import com.android.contacts.common.compat.telecom.TelecomManagerCompat; import com.android.dialer.common.Assert; +import com.android.dialer.configprovider.ConfigProviderBindings; import com.android.dialer.lightbringer.Lightbringer; import com.android.dialer.lightbringer.LightbringerListener; import com.android.incallui.video.protocol.VideoCallScreen; @@ -30,15 +34,18 @@ import com.android.incallui.videotech.utils.SessionModificationState; public class LightbringerTech implements VideoTech, LightbringerListener { private final Lightbringer lightbringer; private final VideoTechListener listener; + private final Call call; private final String callingNumber; private int callState = Call.STATE_NEW; public LightbringerTech( @NonNull Lightbringer lightbringer, @NonNull VideoTechListener listener, + @NonNull Call call, @NonNull String callingNumber) { this.lightbringer = Assert.isNotNull(lightbringer); this.listener = Assert.isNotNull(listener); + this.call = Assert.isNotNull(call); this.callingNumber = Assert.isNotNull(callingNumber); lightbringer.registerListener(this); @@ -46,7 +53,11 @@ public class LightbringerTech implements VideoTech, LightbringerListener { @Override public boolean isAvailable(Context context) { - return callState == Call.STATE_ACTIVE && lightbringer.isReachable(context, callingNumber); + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O + && ConfigProviderBindings.get(context).getBoolean("enable_lightbringer_video_upgrade", true) + && callState == Call.STATE_ACTIVE + && lightbringer.supportsUpgrade(context, callingNumber) + && TelecomManagerCompat.supportsHandover(); } @Override @@ -79,6 +90,9 @@ public class LightbringerTech implements VideoTech, LightbringerListener { callState = newState; } + @Override + public void onRemovedFromCallList() {} + @Override public int getSessionModificationState() { return SessionModificationState.NO_REQUEST; @@ -86,7 +100,7 @@ public class LightbringerTech implements VideoTech, LightbringerListener { @Override public void upgradeToVideo() { - // TODO: upgrade to a video call + lightbringer.requestUpgrade(call); } @Override @@ -120,17 +134,13 @@ public class LightbringerTech implements VideoTech, LightbringerListener { } @Override - public void pause() { - throw Assert.createUnsupportedOperationFailException(); - } + public void pause() {} @Override - public void unpause() { - throw Assert.createUnsupportedOperationFailException(); - } + public void unpause() {} @Override - public void setCamera(String cameraId) { + public void setCamera(@Nullable String cameraId) { throw Assert.createUnsupportedOperationFailException(); } -- cgit v1.2.3