From 2b68eab7ae1bb8799a4985b8a626339d36bbd53b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 10 Apr 2012 16:31:52 +0200 Subject: [PATCH] Directly use the video activity in video call --- src/org/linphone/IncomingCallActivity.java | 5 ++++- src/org/linphone/LinphoneActivity.java | 23 ++++++++++++++++++---- src/org/linphone/ui/CameraView.java | 3 +++ 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/org/linphone/IncomingCallActivity.java b/src/org/linphone/IncomingCallActivity.java index 8e7b43399..f7afc26fc 100644 --- a/src/org/linphone/IncomingCallActivity.java +++ b/src/org/linphone/IncomingCallActivity.java @@ -141,7 +141,10 @@ public class IncomingCallActivity extends Activity implements LinphoneOnCallStat // the above method takes care of Samsung Galaxy S Toast.makeText(this, R.string.couldnt_accept_call, Toast.LENGTH_LONG); } else { - LinphoneActivity.instance().startIncallActivity(); + if (mCall.getCurrentParamsCopy().getVideoEnabled()) + LinphoneActivity.instance().startVideoActivity(mCall, 0); + else + LinphoneActivity.instance().startIncallActivity(); } } @Override diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 08a78a25b..fd3a7706d 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -190,7 +190,14 @@ public class LinphoneActivity extends TabActivity implements ContactPicked if(LinphoneManager.getLc().isInComingInvitePending()) { startIncomingCallActivity(); } else { - startIncallActivity(); + LinphoneCall currentCall = LinphoneManager.getLc().getCurrentCall(); + if (currentCall == null) + return; + + if (currentCall.getCurrentParamsCopy().getVideoEnabled()) + startVideoActivity(currentCall, 0); + else + startIncallActivity(); } return; } @@ -461,12 +468,17 @@ public class LinphoneActivity extends TabActivity implements ContactPicked } if (state==State.IncomingReceived) { - if (call.getCurrentParamsCopy().getVideoEnabled()) startOrientationSensor(); + if (call.getCurrentParamsCopy().getVideoEnabled()) + startOrientationSensor(); startIncomingCallActivity(); } if (state == State.OutgoingInit) { - if (call.getCurrentParamsCopy().getVideoEnabled()) startOrientationSensor(); - startIncallActivity(); + if (call.getCurrentParamsCopy().getVideoEnabled()) { + startOrientationSensor(); + startVideoActivity(call, 0); + } else { + startIncallActivity(); + } } if (state == LinphoneCall.State.StreamsRunning && Version.isVideoCapable() && !call.isInConference()) { @@ -474,15 +486,18 @@ public class LinphoneActivity extends TabActivity implements ContactPicked // set in LinphoneManager#onCallStateChanged(OutgoingInit||IncomingReceived) boolean videoEnabled = call.cameraEnabled() && call.getCurrentParamsCopy().getVideoEnabled(); if (videoEnabled) { + finishActivity(incall_activity); startVideoActivity(call, 1000); } else { finishActivity(video_activity); + startIncallActivity(); } } if (state == LinphoneCall.State.CallUpdatedByRemote && Version.isVideoCapable()) { if (VideoCallActivity.launched && !call.getCurrentParamsCopy().getVideoEnabled()) { finishActivity(video_activity); + startIncallActivity(); } } diff --git a/src/org/linphone/ui/CameraView.java b/src/org/linphone/ui/CameraView.java index 56cee5aa8..2f2f5b781 100644 --- a/src/org/linphone/ui/CameraView.java +++ b/src/org/linphone/ui/CameraView.java @@ -162,6 +162,9 @@ public class CameraView extends ViewGroup implements SurfaceHolder.Callback { } public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { + if (mCamera == null) + return; + mCamera.stopPreview(); Display display = ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); Camera.Parameters parameters = mCamera.getParameters();