diff options
Diffstat (limited to 'java/com/android/incallui/videotech/lightbringer/LightbringerTech.java')
-rw-r--r-- | java/com/android/incallui/videotech/lightbringer/LightbringerTech.java | 28 |
1 files changed, 19 insertions, 9 deletions
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 @@ -80,13 +91,16 @@ public class LightbringerTech implements VideoTech, LightbringerListener { } @Override + public void onRemovedFromCallList() {} + + @Override public int getSessionModificationState() { return SessionModificationState.NO_REQUEST; } @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(); } |