Merge "Fix to update peer dimensions when video screen resumes foreground"
diff --git a/java/com/android/incallui/VideoCallPresenter.java b/java/com/android/incallui/VideoCallPresenter.java
index 5bdcd7a..1700d53 100644
--- a/java/com/android/incallui/VideoCallPresenter.java
+++ b/java/com/android/incallui/VideoCallPresenter.java
@@ -323,6 +323,17 @@
     InCallPresenter.InCallState inCallState = InCallPresenter.getInstance().getInCallState();
     onStateChange(inCallState, inCallState, CallList.getInstance());
     isVideoCallScreenUiReady = true;
+
+    Point sourceVideoDimensions = getRemoteVideoSurfaceTexture().getSourceVideoDimensions();
+    if (sourceVideoDimensions != null && primaryCall != null) {
+      int width = primaryCall.getPeerDimensionWidth();
+      int height = primaryCall.getPeerDimensionHeight();
+      boolean updated = DialerCall.UNKNOWN_PEER_DIMENSIONS != width
+          && DialerCall.UNKNOWN_PEER_DIMENSIONS != height;
+      if (updated && (sourceVideoDimensions.x != width || sourceVideoDimensions.y != height)) {
+        onUpdatePeerDimensions(primaryCall, width, height);
+      }
+    }
   }
 
   /** Called when the user interface is no longer ready to be used. */
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index 1f4e49a..f9afd2d 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -126,6 +126,8 @@
 
   private static int idCounter = 0;
 
+  public static final int UNKNOWN_PEER_DIMENSIONS = -1;
+
   /**
    * A counter used to append to restricted/private/hidden calls so that users can identify them in
    * a conversation. This value is reset in {@link CallList#onCallRemoved(Context, Call)} when there
@@ -386,6 +388,8 @@
       };
 
   private long timeAddedMs;
+  private int peerDimensionWidth = UNKNOWN_PEER_DIMENSIONS;
+  private int peerDimensionHeight = UNKNOWN_PEER_DIMENSIONS;
 
   public DialerCall(
       Context context,
@@ -1558,6 +1562,8 @@
 
   @Override
   public void onPeerDimensionsChanged(int width, int height) {
+    peerDimensionWidth = width;
+    peerDimensionHeight = height;
     InCallVideoCallCallbackNotifier.getInstance().peerDimensionsChanged(this, width, height);
   }
 
@@ -1974,4 +1980,14 @@
   public interface CannedTextResponsesLoadedListener {
     void onCannedTextResponsesLoaded(DialerCall call);
   }
+
+  /** Gets peer dimension width. */
+  public int getPeerDimensionWidth() {
+    return peerDimensionWidth;
+  }
+
+  /** Gets peer dimension height. */
+  public int getPeerDimensionHeight() {
+    return peerDimensionHeight;
+  }
 }