Setup SMS filter even if VVM is already activated

VVM can be "activated" through restoring shared preferences from another device. In this case the SMS filter in telephony is still not configured, and needs to be set up.

Bug: 65542413
Test: ActivationTaskTest
PiperOrigin-RevId: 168560153
Change-Id: I46dd9b31e43899d8d567e7e6baebf06559548525
diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java
index d530401..58231d5 100644
--- a/java/com/android/incallui/AnswerScreenPresenter.java
+++ b/java/com/android/incallui/AnswerScreenPresenter.java
@@ -104,7 +104,7 @@
                 DialerImpression.Type.VIDEO_CALL_REQUEST_ACCEPTED,
                 call.getUniqueCallId(),
                 call.getTimeAddedMs());
-        call.getVideoTech().acceptVideoRequest();
+        call.getVideoTech().acceptVideoRequest(context);
       }
     } else {
       if (answerVideoAsAudio) {
diff --git a/java/com/android/incallui/CallButtonPresenter.java b/java/com/android/incallui/CallButtonPresenter.java
index 658ae64..bd5bb78 100644
--- a/java/com/android/incallui/CallButtonPresenter.java
+++ b/java/com/android/incallui/CallButtonPresenter.java
@@ -294,7 +294,7 @@
             DialerImpression.Type.VIDEO_CALL_UPGRADE_REQUESTED,
             mCall.getUniqueCallId(),
             mCall.getTimeAddedMs());
-    mCall.getVideoTech().upgradeToVideo();
+    mCall.getVideoTech().upgradeToVideo(mContext);
   }
 
   @Override
@@ -360,7 +360,7 @@
     } else {
       updateCamera(
           InCallPresenter.getInstance().getInCallCameraManager().isUsingFrontFacingCamera());
-      mCall.getVideoTech().resumeTransmission();
+      mCall.getVideoTech().resumeTransmission(mContext);
     }
 
     mInCallButtonUi.setVideoPaused(pause);
diff --git a/java/com/android/incallui/NotificationBroadcastReceiver.java b/java/com/android/incallui/NotificationBroadcastReceiver.java
index 5e757cf..0daa017 100644
--- a/java/com/android/incallui/NotificationBroadcastReceiver.java
+++ b/java/com/android/incallui/NotificationBroadcastReceiver.java
@@ -95,7 +95,7 @@
     } else {
       DialerCall call = callList.getVideoUpgradeRequestCall();
       if (call != null) {
-        call.getVideoTech().acceptVideoRequest();
+        call.getVideoTech().acceptVideoRequest(context);
       }
     }
   }
diff --git a/java/com/android/incallui/videotech/VideoTech.java b/java/com/android/incallui/videotech/VideoTech.java
index 79a8c60..e3753bc 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.NonNull;
 import android.support.annotation.Nullable;
 import com.android.dialer.logging.DialerImpression;
 import com.android.incallui.video.protocol.VideoCallScreen;
@@ -48,9 +49,9 @@
   @SessionModificationState
   int getSessionModificationState();
 
-  void upgradeToVideo();
+  void upgradeToVideo(@NonNull Context context);
 
-  void acceptVideoRequest();
+  void acceptVideoRequest(@NonNull Context context);
 
   void acceptVideoRequestAsAudio();
 
@@ -60,7 +61,7 @@
 
   void stopTransmission();
 
-  void resumeTransmission();
+  void resumeTransmission(@NonNull Context context);
 
   void pause();
 
diff --git a/java/com/android/incallui/videotech/empty/EmptyVideoTech.java b/java/com/android/incallui/videotech/empty/EmptyVideoTech.java
index 34dd1bf..76766df 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.NonNull;
 import android.support.annotation.Nullable;
 import com.android.dialer.common.Assert;
 import com.android.incallui.video.protocol.VideoCallScreen;
@@ -65,10 +66,10 @@
   }
 
   @Override
-  public void upgradeToVideo() {}
+  public void upgradeToVideo(@NonNull Context context) {}
 
   @Override
-  public void acceptVideoRequest() {}
+  public void acceptVideoRequest(@NonNull Context context) {}
 
   @Override
   public void acceptVideoRequestAsAudio() {}
@@ -85,7 +86,7 @@
   public void stopTransmission() {}
 
   @Override
-  public void resumeTransmission() {}
+  public void resumeTransmission(@NonNull Context context) {}
 
   @Override
   public void pause() {}
diff --git a/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java b/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java
index 49170b8..954dfcd 100644
--- a/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java
+++ b/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java
@@ -16,6 +16,7 @@
 
 package com.android.incallui.videotech.ims;
 
+import android.content.Context;
 import android.os.Handler;
 import android.telecom.Call;
 import android.telecom.Connection;
@@ -37,17 +38,20 @@
   private final Call call;
   private final ImsVideoTech videoTech;
   private final VideoTechListener listener;
+  private final Context context;
   private int requestedVideoState = VideoProfile.STATE_AUDIO_ONLY;
 
   ImsVideoCallCallback(
       final LoggingBindings logger,
       final Call call,
       ImsVideoTech videoTech,
-      VideoTechListener listener) {
+      VideoTechListener listener,
+      Context context) {
     this.logger = logger;
     this.call = call;
     this.videoTech = videoTech;
     this.listener = listener;
+    this.context = context;
   }
 
   @Override
@@ -74,7 +78,7 @@
       } else {
         LogUtil.i(
             "ImsVideoTech.onSessionModifyRequestReceived", "call updated to %d", newVideoState);
-        videoTech.acceptVideoRequest();
+        videoTech.acceptVideoRequest(context);
       }
     }
   }
diff --git a/java/com/android/incallui/videotech/ims/ImsVideoTech.java b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
index fec05dc..c12474d 100644
--- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java
+++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.os.Build;
+import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.telecom.Call;
 import android.telecom.Call.Details;
@@ -120,7 +121,7 @@
     }
 
     if (callback == null) {
-      callback = new ImsVideoCallCallback(logger, call, this, listener);
+      callback = new ImsVideoCallCallback(logger, call, this, listener, context);
       call.getVideoCall().registerCallback(callback);
     }
 
@@ -165,7 +166,7 @@
   }
 
   @Override
-  public void upgradeToVideo() {
+  public void upgradeToVideo(@NonNull Context context) {
     LogUtil.enterBlock("ImsVideoTech.upgradeToVideo");
 
     int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState());
@@ -177,7 +178,7 @@
   }
 
   @Override
-  public void acceptVideoRequest() {
+  public void acceptVideoRequest(@NonNull Context context) {
     int requestedVideoState = callback.getRequestedVideoState();
     Assert.checkArgument(requestedVideoState != VideoProfile.STATE_AUDIO_ONLY);
     LogUtil.i("ImsVideoTech.acceptUpgradeRequest", "videoState: " + requestedVideoState);
@@ -223,7 +224,7 @@
   }
 
   @Override
-  public void resumeTransmission() {
+  public void resumeTransmission(@NonNull Context context) {
     LogUtil.enterBlock("ImsVideoTech.resumeTransmission");
 
     transmissionStopped = false;
diff --git a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
index 4882ba8..a807759 100644
--- a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
+++ b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
@@ -21,7 +21,6 @@
 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.common.LogUtil;
 import com.android.dialer.configprovider.ConfigProviderBindings;
@@ -55,7 +54,7 @@
 
   @Override
   public boolean isAvailable(Context context) {
-    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
       LogUtil.v("LightbringerTech.isAvailable", "upgrade unavailable, only supported on O+");
       return false;
     }
@@ -71,11 +70,6 @@
       return false;
     }
 
-    if (!TelecomManagerCompat.supportsHandover()) {
-      LogUtil.v("LightbringerTech.isAvailable", "upgrade unavailable, telephony support missing");
-      return false;
-    }
-
     if (!lightbringer.supportsUpgrade(context, callingNumber)) {
       LogUtil.v("LightbringerTech.isAvailable", "upgrade unavailable, number does not support it");
       return false;
@@ -125,13 +119,13 @@
   }
 
   @Override
-  public void upgradeToVideo() {
+  public void upgradeToVideo(@NonNull Context context) {
     listener.onImpressionLoggingNeeded(DialerImpression.Type.LIGHTBRINGER_UPGRADE_REQUESTED);
-    lightbringer.requestUpgrade(call);
+    lightbringer.requestUpgrade(context, call);
   }
 
   @Override
-  public void acceptVideoRequest() {
+  public void acceptVideoRequest(@NonNull Context context) {
     throw Assert.createUnsupportedOperationFailException();
   }
 
@@ -156,7 +150,7 @@
   }
 
   @Override
-  public void resumeTransmission() {
+  public void resumeTransmission(@NonNull Context context) {
     throw Assert.createUnsupportedOperationFailException();
   }