summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2019-04-16 23:31:23 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-04-16 23:31:23 +0000
commit890dcce1a5a715ee55ff99e14417dc3b959588ea (patch)
tree86a392fe7b13362d53946558463e1401a6658923
parentebd9bf21e5ae8d31ce99a35b03ced9301e0ef86c (diff)
parente39b926e6d14275050261f2a86eb16416d5c0d6a (diff)
Merge "Fix for button flickering issue when video call screen rotates"
-rw-r--r--java/com/android/incallui/VideoCallPresenter.java5
-rw-r--r--java/com/android/incallui/video/impl/VideoCallFragment.java37
-rw-r--r--java/com/android/incallui/video/protocol/VideoCallScreenDelegate.java2
3 files changed, 44 insertions, 0 deletions
diff --git a/java/com/android/incallui/VideoCallPresenter.java b/java/com/android/incallui/VideoCallPresenter.java
index 1700d530d..0d1d1a5e0 100644
--- a/java/com/android/incallui/VideoCallPresenter.java
+++ b/java/com/android/incallui/VideoCallPresenter.java
@@ -431,6 +431,11 @@ public class VideoCallPresenter
InCallPresenter.getInstance().getInCallCameraManager().onCameraPermissionGranted();
}
+ @Override
+ public boolean isFullscreen() {
+ return InCallPresenter.getInstance().isFullscreen();
+ }
+
/**
* Called when the user interacts with the UI. If a fullscreen timer is pending then we start the
* timer from scratch to avoid having the UI disappear while the user is interacting with it.
diff --git a/java/com/android/incallui/video/impl/VideoCallFragment.java b/java/com/android/incallui/video/impl/VideoCallFragment.java
index 3a355c47a..edfc17c46 100644
--- a/java/com/android/incallui/video/impl/VideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/VideoCallFragment.java
@@ -306,6 +306,30 @@ public class VideoCallFragment extends Fragment
updatePreviewOffView();
}
});
+
+ controls.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("VideoCallFragment.onLayoutChange", "controls layout changed");
+ if (getActivity() != null && getView() != null) {
+ controls.removeOnLayoutChangeListener(this);
+ if (isInFullscreenMode) {
+ enterFullscreenMode();
+ }
+ }
+ }
+ });
+
return view;
}
@@ -334,6 +358,12 @@ public class VideoCallFragment extends Fragment
inCallButtonUiDelegate.onInCallButtonUiReady(this);
view.setOnSystemUiVisibilityChangeListener(this);
+
+ if (videoCallScreenDelegate.isFullscreen()) {
+ controls.setVisibility(View.INVISIBLE);
+ contactGridManager.getContainerView().setVisibility(View.INVISIBLE);
+ endCallButton.setVisibility(View.INVISIBLE);
+ }
}
@Override
@@ -420,6 +450,13 @@ public class VideoCallFragment extends Fragment
.translationY(0)
.setInterpolator(linearOutSlowInInterpolator)
.alpha(1)
+ .withStartAction(
+ new Runnable() {
+ @Override
+ public void run() {
+ controls.setVisibility(View.VISIBLE);
+ }
+ })
.start();
// Animate onHold to the shown state.
diff --git a/java/com/android/incallui/video/protocol/VideoCallScreenDelegate.java b/java/com/android/incallui/video/protocol/VideoCallScreenDelegate.java
index 55ea23f5e..9dd545080 100644
--- a/java/com/android/incallui/video/protocol/VideoCallScreenDelegate.java
+++ b/java/com/android/incallui/video/protocol/VideoCallScreenDelegate.java
@@ -48,4 +48,6 @@ public interface VideoCallScreenDelegate {
void setSurfaceViews(SurfaceView preview, SurfaceView remote);
int getDeviceOrientation();
+
+ boolean isFullscreen();
}