Merge ea5127ca58d684361c9020cc0fbbe423472fc6cd on remote branch
Change-Id: I6cb611c7b47184c8e7c96367173e426004f556ae
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index fc9b449..73e6c83 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -21,7 +21,7 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
diff --git a/assets/quantum/AndroidManifest.xml b/assets/quantum/AndroidManifest.xml
index f574665..4cfcd97 100644
--- a/assets/quantum/AndroidManifest.xml
+++ b/assets/quantum/AndroidManifest.xml
@@ -16,6 +16,6 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.assets.quantum">
- <uses-sdk android:targetSdkVersion="28" />
+ <uses-sdk android:targetSdkVersion="29" />
<application/>
</manifest>
diff --git a/java/com/android/dialer/app/AndroidManifest.xml b/java/com/android/dialer/app/AndroidManifest.xml
index c3cd1e2..0b64f2d 100644
--- a/java/com/android/dialer/app/AndroidManifest.xml
+++ b/java/com/android/dialer/app/AndroidManifest.xml
@@ -56,7 +56,7 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
<application>
diff --git a/java/com/android/dialer/assisteddialing/AndroidManifest.xml b/java/com/android/dialer/assisteddialing/AndroidManifest.xml
index 3825c50..0c2302b 100644
--- a/java/com/android/dialer/assisteddialing/AndroidManifest.xml
+++ b/java/com/android/dialer/assisteddialing/AndroidManifest.xml
@@ -17,6 +17,6 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
</manifest>
diff --git a/java/com/android/dialer/assisteddialing/ui/AndroidManifest.xml b/java/com/android/dialer/assisteddialing/ui/AndroidManifest.xml
index b0a1011..63d13fb 100644
--- a/java/com/android/dialer/assisteddialing/ui/AndroidManifest.xml
+++ b/java/com/android/dialer/assisteddialing/ui/AndroidManifest.xml
@@ -17,7 +17,7 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
<application>
<activity
diff --git a/java/com/android/dialer/binary/google/AndroidManifest.xml b/java/com/android/dialer/binary/google/AndroidManifest.xml
index 01f05b5..b906431 100644
--- a/java/com/android/dialer/binary/google/AndroidManifest.xml
+++ b/java/com/android/dialer/binary/google/AndroidManifest.xml
@@ -21,7 +21,7 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
diff --git a/java/com/android/dialer/calllog/AndroidManifest.xml b/java/com/android/dialer/calllog/AndroidManifest.xml
index 27e11a0..a487233 100644
--- a/java/com/android/dialer/calllog/AndroidManifest.xml
+++ b/java/com/android/dialer/calllog/AndroidManifest.xml
@@ -18,7 +18,7 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
<application>
diff --git a/java/com/android/dialer/calllog/config/AndroidManifest.xml b/java/com/android/dialer/calllog/config/AndroidManifest.xml
index 2d447af..73a0f1f 100644
--- a/java/com/android/dialer/calllog/config/AndroidManifest.xml
+++ b/java/com/android/dialer/calllog/config/AndroidManifest.xml
@@ -18,7 +18,7 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
<application>
diff --git a/java/com/android/dialer/promotion/impl/AndroidManifest.xml b/java/com/android/dialer/promotion/impl/AndroidManifest.xml
index c938b9a..209072b 100644
--- a/java/com/android/dialer/promotion/impl/AndroidManifest.xml
+++ b/java/com/android/dialer/promotion/impl/AndroidManifest.xml
@@ -18,6 +18,6 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
</manifest>
diff --git a/java/com/android/dialer/shortcuts/AndroidManifest.xml b/java/com/android/dialer/shortcuts/AndroidManifest.xml
index c0f07bf..826ad9c 100644
--- a/java/com/android/dialer/shortcuts/AndroidManifest.xml
+++ b/java/com/android/dialer/shortcuts/AndroidManifest.xml
@@ -18,7 +18,7 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
<application>
diff --git a/java/com/android/dialer/spannable/AndroidManifest.xml b/java/com/android/dialer/spannable/AndroidManifest.xml
index 0b05144..afc1675 100644
--- a/java/com/android/dialer/spannable/AndroidManifest.xml
+++ b/java/com/android/dialer/spannable/AndroidManifest.xml
@@ -18,5 +18,5 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
</manifest>
diff --git a/java/com/android/incallui/AndroidManifest.xml b/java/com/android/incallui/AndroidManifest.xml
index 4a26b46..56952e8 100644
--- a/java/com/android/incallui/AndroidManifest.xml
+++ b/java/com/android/incallui/AndroidManifest.xml
@@ -19,7 +19,7 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
<uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
<!-- We use this to disable the status bar buttons of home, back and recent
diff --git a/java/com/android/incallui/answer/impl/AnswerVideoCallScreen.java b/java/com/android/incallui/answer/impl/AnswerVideoCallScreen.java
index 06169c2..7f69a66 100644
--- a/java/com/android/incallui/answer/impl/AnswerVideoCallScreen.java
+++ b/java/com/android/incallui/answer/impl/AnswerVideoCallScreen.java
@@ -22,6 +22,7 @@
import android.support.v4.app.Fragment;
import android.view.TextureView;
import android.view.View;
+import android.view.View.OnLayoutChangeListener;
import com.android.dialer.common.Assert;
import com.android.dialer.common.FragmentUtils;
import com.android.dialer.common.LogUtil;
@@ -30,6 +31,7 @@
import com.android.incallui.video.protocol.VideoCallScreenDelegate;
import com.android.incallui.video.protocol.VideoCallScreenDelegateFactory;
import com.android.incallui.videosurface.bindings.VideoSurfaceBindings;
+import com.android.incallui.videosurface.protocol.VideoSurfaceTexture;
import com.android.incallui.QtiCallUtils;
/** Shows a video preview for an incoming call. */
@@ -38,6 +40,7 @@
@NonNull private final Fragment fragment;
@NonNull private final TextureView textureView;
@NonNull private final VideoCallScreenDelegate delegate;
+ private static final float ASPECT_RATIO_MATCH_THRESHOLD = 0.1f;
public AnswerVideoCallScreen(
@NonNull String callId, @NonNull Fragment fragment, @NonNull View view) {
@@ -60,14 +63,31 @@
@Override
public void onVideoScreenStart() {
- LogUtil.i("AnswerVideoCallScreen.onStart", null);
+ LogUtil.i("AnswerVideoCallScreen.onVideoScreenStart", null);
delegate.onVideoCallScreenUiReady(this);
DialerCall call = QtiCallUtils.getIncomingCall();
if (QtiCallUtils.isVideoCrs(call)) {
- LogUtil.i("AnswerVideoCallScreen.onStart, video CRS, create remote surface", null);
+ LogUtil.i("AnswerVideoCallScreen.onVideoScreenStart", "create remote surface for CRS");
delegate.getRemoteVideoSurfaceTexture().attachToTextureView(textureView);
+ textureView.addOnLayoutChangeListener(
+ new OnLayoutChangeListener() {
+ @Override
+ public void onLayoutChange(
+ View v,
+ int left,
+ int top,
+ int right,
+ int bottom,
+ int oldLeft,
+ int oldTop,
+ int oldRight,
+ int oldBottom) {
+ LogUtil.i("AnswerVideoCallScreen.onLayoutChange", "remoteTextureView layout changed");
+ updateRemoteVideoScaling();
+ }
+ });
} else {
- LogUtil.i("AnswerVideoCallScreen.onStart, no video CRS, create local surface", null);
+ LogUtil.i("AnswerVideoCallScreen.onVideoScreenStart", "no video CRS, create local surface");
delegate.getLocalVideoSurfaceTexture().attachToTextureView(textureView);
}
}
@@ -95,7 +115,13 @@
}
@Override
- public void onRemoteVideoDimensionsChanged() {}
+ public void onRemoteVideoDimensionsChanged() {
+ LogUtil.i("AnswerVideoCallScreen.onRemoteVideoDimensionsChanged", null);
+ DialerCall call = QtiCallUtils.getIncomingCall();
+ if (QtiCallUtils.isVideoCrs(call)) {
+ updateRemoteVideoScaling();
+ }
+ }
@Override
public void onLocalVideoOrientationChanged() {
@@ -147,6 +173,34 @@
}
}
+ private void updateRemoteVideoScaling() {
+ if (textureView.getWidth() == 0 || textureView.getHeight() == 0) {
+ LogUtil.i("AnswerVideoCallScreen.updateRemoteVideoScaling",
+ "view layout hasn't finished yet");
+ return;
+ }
+
+ VideoSurfaceTexture remoteVideoSurfaceTexture =
+ delegate.getRemoteVideoSurfaceTexture();
+ Point videoSize = remoteVideoSurfaceTexture.getSourceVideoDimensions();
+ if (videoSize == null) {
+ LogUtil.i("AnswerVideoCallScreen.updateRemoteVideoScaling", "video size is null");
+ return;
+ }
+ // If the video and display aspect ratio's are close then scale video to fill display
+ float videoAspectRatio = ((float) videoSize.x) / videoSize.y;
+ float displayAspectRatio =
+ ((float) textureView.getWidth()) / textureView.getHeight();
+ float delta = Math.abs(videoAspectRatio - displayAspectRatio);
+ float sum = videoAspectRatio + displayAspectRatio;
+ if (delta / sum < ASPECT_RATIO_MATCH_THRESHOLD) {
+ VideoSurfaceBindings.scaleVideoAndFillView(textureView, videoSize.x, videoSize.y, 0);
+ } else {
+ VideoSurfaceBindings.scaleVideoMaintainingAspectRatio(
+ textureView, videoSize.x, videoSize.y);
+ }
+ }
+
private boolean isLandscape() {
return fragment.getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE;
diff --git a/java/com/android/incallui/autoresizetext/AndroidManifest.xml b/java/com/android/incallui/autoresizetext/AndroidManifest.xml
index f6eb34b..9bff6f2 100644
--- a/java/com/android/incallui/autoresizetext/AndroidManifest.xml
+++ b/java/com/android/incallui/autoresizetext/AndroidManifest.xml
@@ -19,7 +19,7 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
<application />
</manifest>
diff --git a/java/com/android/incallui/video/protocol/AndroidManifest.xml b/java/com/android/incallui/video/protocol/AndroidManifest.xml
index f58284e..c73ce10 100644
--- a/java/com/android/incallui/video/protocol/AndroidManifest.xml
+++ b/java/com/android/incallui/video/protocol/AndroidManifest.xml
@@ -18,5 +18,5 @@
package="com.android.incallui.video.protocol">
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
</manifest>
diff --git a/java/com/android/voicemail/AndroidManifest.xml b/java/com/android/voicemail/AndroidManifest.xml
index d39dfee..ccd89a9 100644
--- a/java/com/android/voicemail/AndroidManifest.xml
+++ b/java/com/android/voicemail/AndroidManifest.xml
@@ -18,7 +18,7 @@
<uses-sdk
android:minSdkVersion="24"
- android:targetSdkVersion="28"/>
+ android:targetSdkVersion="29"/>
<!-- Applications using this module should merge these permissions using android_manifest_merge -->