diff --git a/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java b/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
index 655540b..41e5be2 100644
--- a/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
+++ b/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
@@ -35,6 +35,8 @@
   // TODO(maxwelb): Use public API for these constants when available
   public static final String EVENT_HANDOVER_VIDEO_FROM_WIFI_TO_LTE =
       "android.telephony.event.EVENT_HANDOVER_VIDEO_FROM_WIFI_TO_LTE";
+  public static final String EVENT_HANDOVER_VIDEO_FROM_LTE_TO_WIFI =
+      "android.telephony.event.EVENT_HANDOVER_VIDEO_FROM_LTE_TO_WIFI";
   public static final String EVENT_HANDOVER_TO_WIFI_FAILED =
       "android.telephony.event.EVENT_HANDOVER_TO_WIFI_FAILED";
   public static final String EVENT_CALL_REMOTELY_HELD = "android.telecom.event.CALL_REMOTELY_HELD";
diff --git a/java/com/android/dialer/theme/res/values/strings.xml b/java/com/android/dialer/theme/res/values/strings.xml
index bab05ed..36ff941 100644
--- a/java/com/android/dialer/theme/res/values/strings.xml
+++ b/java/com/android/dialer/theme/res/values/strings.xml
@@ -36,6 +36,9 @@
   <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
   <string name="call">Call</string>
 
+  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
+  <string name="video_call_lte_to_wifi_handover_toast">Continuing call using Wi\u2011Fi\u2026</string>
+
   <!-- String used to build a phone number type and phone number string.
      Example: Mobile 650-555-1212  -->
   <string name="call_subject_type_and_number">
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index 9a7c653..4815a6e 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -47,6 +47,7 @@
 import android.telecom.TelecomManager;
 import android.telecom.VideoProfile;
 import android.text.TextUtils;
+import android.widget.Toast;
 import com.android.contacts.common.compat.CallCompat;
 import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
 import com.android.dialer.assisteddialing.ConcreteCreator;
@@ -142,6 +143,7 @@
   private int state = State.INVALID;
   private DisconnectCause disconnectCause;
 
+  private boolean hasShownLteToWiFiHandoverToast;
   private boolean hasShownWiFiToLteHandoverToast;
   private boolean doNotShowDialogForHandoffToWifiFailure;
 
@@ -309,6 +311,9 @@
             case TelephonyManagerCompat.EVENT_HANDOVER_VIDEO_FROM_WIFI_TO_LTE:
               notifyWiFiToLteHandover();
               break;
+            case TelephonyManagerCompat.EVENT_HANDOVER_VIDEO_FROM_LTE_TO_WIFI:
+              onLteToWifiHandover();
+              break;
             case TelephonyManagerCompat.EVENT_HANDOVER_TO_WIFI_FAILED:
               notifyHandoverToWifiFailed();
               break;
@@ -448,6 +453,17 @@
     cannedTextResponsesLoadedListeners.remove(listener);
   }
 
+  private void onLteToWifiHandover() {
+    LogUtil.enterBlock("DialerCall.onLteToWifiHandover");
+    if (hasShownLteToWiFiHandoverToast) {
+      return;
+    }
+
+    Toast.makeText(context, R.string.video_call_lte_to_wifi_handover_toast, Toast.LENGTH_LONG)
+        .show();
+    hasShownLteToWiFiHandoverToast = true;
+  }
+
   public void notifyWiFiToLteHandover() {
     LogUtil.i("DialerCall.notifyWiFiToLteHandover", "");
     for (DialerCallListener listener : listeners) {
