Skip to content
Snippets Groups Projects
Commit c1532d4d authored by Rayan Osseiran's avatar Rayan Osseiran
Browse files

pip: fix issue with preview overlay

pip mode now displays normally. Issues with aspect ratio will be fixed in another patch.

Change-Id: I7eec74cd94b847181a9600c76f5563ae30f10666
parent 6668f5f8
Branches
Tags
No related merge requests found
...@@ -111,6 +111,7 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements ...@@ -111,6 +111,7 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements
private MenuItem dialPadBtn = null; private MenuItem dialPadBtn = null;
private boolean restartVideo = false; private boolean restartVideo = false;
private boolean restartPreview = false;
private PowerManager.WakeLock mScreenWakeLock; private PowerManager.WakeLock mScreenWakeLock;
private int mCurrentOrientation = 0; private int mCurrentOrientation = 0;
...@@ -242,8 +243,13 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements ...@@ -242,8 +243,13 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements
@Override @Override
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
if (restartVideo) { if (restartVideo && restartPreview) {
displayVideoSurface(true); displayVideoSurface(true, !presenter.isPipMode());
restartVideo = false;
restartPreview = false;
}
else if (restartVideo) {
displayVideoSurface(true, false);
restartVideo = false; restartVideo = false;
} }
} }
...@@ -254,6 +260,9 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements ...@@ -254,6 +260,9 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements
if (binding.videoSurface.getVisibility() == View.VISIBLE) { if (binding.videoSurface.getVisibility() == View.VISIBLE) {
restartVideo = true; restartVideo = true;
} }
if (binding.previewContainer.getVisibility() == View.VISIBLE) {
restartPreview = true;
}
} }
@Nullable @Nullable
...@@ -449,10 +458,9 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements ...@@ -449,10 +458,9 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements
} }
@Override @Override
public void displayVideoSurface(final boolean display) { public void displayVideoSurface(final boolean displayVideoSurface, final boolean displayPreviewContainer) {
binding.videoSurface.setVisibility(display ? View.VISIBLE : View.GONE); binding.videoSurface.setVisibility(displayVideoSurface ? View.VISIBLE : View.GONE);
binding.previewContainer.setVisibility(mDeviceRuntimeService.hasVideoPermission() && display ? View.VISIBLE : View.GONE); binding.previewContainer.setVisibility(displayPreviewContainer ? View.VISIBLE : View.GONE);
updateMenu(); updateMenu();
} }
......
...@@ -262,9 +262,9 @@ public class TVCallFragment extends BaseFragment<CallPresenter> implements CallV ...@@ -262,9 +262,9 @@ public class TVCallFragment extends BaseFragment<CallPresenter> implements CallV
} }
@Override @Override
public void displayVideoSurface(final boolean display) { public void displayVideoSurface(final boolean displayVideoSurface, final boolean displayPreviewContainer) {
binding.videoSurface.setVisibility(display ? View.VISIBLE : View.GONE); binding.videoSurface.setVisibility(displayVideoSurface ? View.VISIBLE : View.GONE);
binding.previewContainer.setVisibility(mDeviceRuntimeService.hasVideoPermission() && display ? View.VISIBLE : View.GONE); binding.previewContainer.setVisibility(displayPreviewContainer ? View.VISIBLE : View.GONE);
} }
@Override @Override
...@@ -274,9 +274,8 @@ public class TVCallFragment extends BaseFragment<CallPresenter> implements CallV ...@@ -274,9 +274,8 @@ public class TVCallFragment extends BaseFragment<CallPresenter> implements CallV
//mVideoPreview.setZOrderMediaOverlay(true); //mVideoPreview.setZOrderMediaOverlay(true);
binding.videoSurface.setZOrderMediaOverlay(false); binding.videoSurface.setZOrderMediaOverlay(false);
} else { } else {
binding.videoSurface.setZOrderMediaOverlay(false); binding.videoSurface.setZOrderMediaOverlay(true);
//mVideoSurface.setZOrderMediaOverlay(true); binding.videoSurface.setZOrderOnTop(true);
//mVideoSurface.setZOrderOnTop(true);
} }
} }
......
...@@ -53,6 +53,7 @@ public class CallPresenter extends RootPresenter<CallView> { ...@@ -53,6 +53,7 @@ public class CallPresenter extends RootPresenter<CallView> {
private boolean mOnGoingCall = false; private boolean mOnGoingCall = false;
private boolean mAudioOnly = true; private boolean mAudioOnly = true;
private boolean permissionChanged = false; private boolean permissionChanged = false;
private boolean pipIsActive = false;
private int videoWidth = -1; private int videoWidth = -1;
private int videoHeight = -1; private int videoHeight = -1;
...@@ -298,7 +299,7 @@ public class CallPresenter extends RootPresenter<CallView> { ...@@ -298,7 +299,7 @@ public class CallPresenter extends RootPresenter<CallView> {
view.updateMenu(); view.updateMenu();
if (!mAudioOnly) { if (!mAudioOnly) {
mHardwareService.setPreviewSettings(); mHardwareService.setPreviewSettings();
view.displayVideoSurface(true); view.displayVideoSurface(true, mDeviceRuntimeService.hasVideoPermission());
if(permissionChanged) { if(permissionChanged) {
mHardwareService.switchInput(mSipCall.getCallId(), permissionChanged); mHardwareService.switchInput(mSipCall.getCallId(), permissionChanged);
permissionChanged = false; permissionChanged = false;
...@@ -339,9 +340,9 @@ public class CallPresenter extends RootPresenter<CallView> { ...@@ -339,9 +340,9 @@ public class CallPresenter extends RootPresenter<CallView> {
Log.d(TAG, "VIDEO_EVENT: " + event.start + " " + event.callId + " " + event.w + "x" + event.h); Log.d(TAG, "VIDEO_EVENT: " + event.start + " " + event.callId + " " + event.w + "x" + event.h);
if (event.start) { if (event.start) {
getView().displayVideoSurface(true); getView().displayVideoSurface(true, !isPipMode() && mDeviceRuntimeService.hasVideoPermission());
} else if (mSipCall != null && mSipCall.getCallId().equals(event.callId)) { } else if (mSipCall != null && mSipCall.getCallId().equals(event.callId)) {
getView().displayVideoSurface(event.started); getView().displayVideoSurface(event.started, event.started && !isPipMode() && mDeviceRuntimeService.hasVideoPermission());
if (event.started) { if (event.started) {
videoWidth = event.w; videoWidth = event.w;
videoHeight = event.h; videoHeight = event.h;
...@@ -391,12 +392,19 @@ public class CallPresenter extends RootPresenter<CallView> { ...@@ -391,12 +392,19 @@ public class CallPresenter extends RootPresenter<CallView> {
} }
} }
public boolean isPipMode() {
return pipIsActive;
}
public void pipModeChanged(boolean pip) { public void pipModeChanged(boolean pip) {
pipIsActive = pip;
if (pip) { if (pip) {
getView().displayHangupButton(false); getView().displayHangupButton(false);
getView().displayPreviewSurface(false); getView().displayPreviewSurface(false);
getView().displayVideoSurface(true, false);
} else { } else {
getView().displayPreviewSurface(true); getView().displayPreviewSurface(true);
getView().displayVideoSurface(true, mDeviceRuntimeService.hasVideoPermission());
} }
} }
......
...@@ -26,7 +26,7 @@ public interface CallView { ...@@ -26,7 +26,7 @@ public interface CallView {
void displayContactBubble(boolean display); void displayContactBubble(boolean display);
void displayVideoSurface(boolean display); void displayVideoSurface(boolean displayVideoSurface, boolean displayPreviewContainer);
void displayPreviewSurface(boolean display); void displayPreviewSurface(boolean display);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment