Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 890dcce1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Fix for button flickering issue when video call screen rotates"

parents ebd9bf21 e39b926e
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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.
+37 −0
Original line number Diff line number Diff line
@@ -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.
+2 −0
Original line number Diff line number Diff line
@@ -48,4 +48,6 @@ public interface VideoCallScreenDelegate {
  void setSurfaceViews(SurfaceView preview, SurfaceView remote);

  int getDeviceOrientation();

  boolean isFullscreen();
}