Some fixes and improvements
This commit is contained in:
parent
44c2bc9419
commit
2839b81037
4 changed files with 59 additions and 35 deletions
|
@ -38,7 +38,6 @@
|
||||||
<activity android:name="org.linphone.LinphoneActivity"
|
<activity android:name="org.linphone.LinphoneActivity"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:theme="@android:style/Theme.NoTitleBar"
|
android:theme="@android:style/Theme.NoTitleBar"
|
||||||
android:screenOrientation="landscape"
|
|
||||||
android:launchMode="singleTask"
|
android:launchMode="singleTask"
|
||||||
android:windowSoftInputMode="stateAlwaysHidden|adjustResize"
|
android:windowSoftInputMode="stateAlwaysHidden|adjustResize"
|
||||||
> <!-- android:alwaysRetainTaskState="true" clearTaskOnLaunch="false"-->
|
> <!-- android:alwaysRetainTaskState="true" clearTaskOnLaunch="false"-->
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.linphone.core.LinphoneCore.RegistrationState;
|
||||||
import org.linphone.core.LinphoneCoreException;
|
import org.linphone.core.LinphoneCoreException;
|
||||||
import org.linphone.core.LinphoneProxyConfig;
|
import org.linphone.core.LinphoneProxyConfig;
|
||||||
import org.linphone.core.Log;
|
import org.linphone.core.Log;
|
||||||
|
import org.linphone.mediastream.Version;
|
||||||
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
|
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
|
||||||
import org.linphone.ui.AddressAware;
|
import org.linphone.ui.AddressAware;
|
||||||
import org.linphone.ui.AddressText;
|
import org.linphone.ui.AddressText;
|
||||||
|
@ -40,6 +41,7 @@ import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.pm.ActivityInfo;
|
||||||
import android.hardware.Camera;
|
import android.hardware.Camera;
|
||||||
import android.hardware.Camera.CameraInfo;
|
import android.hardware.Camera.CameraInfo;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
@ -203,6 +205,9 @@ public class DialerActivity extends Activity implements LinphoneGuiListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
if (Version.isXLargeScreen(this)) {
|
||||||
|
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
||||||
|
}
|
||||||
setContentView(R.layout.dialer);
|
setContentView(R.layout.dialer);
|
||||||
|
|
||||||
mAddress = (AddressText) findViewById(R.id.SipUri);
|
mAddress = (AddressText) findViewById(R.id.SipUri);
|
||||||
|
@ -298,33 +303,37 @@ public class DialerActivity extends Activity implements LinphoneGuiListener {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
mBack.setOnClickListener(new OnClickListener() {
|
if (mBack != null) {
|
||||||
public void onClick(View v) {
|
mBack.setOnClickListener(new OnClickListener() {
|
||||||
LinphoneCall call = LinphoneManager.getLc().getCurrentCall();
|
public void onClick(View v) {
|
||||||
if (call.getCurrentParamsCopy().getVideoEnabled())
|
LinphoneCall call = LinphoneManager.getLc().getCurrentCall();
|
||||||
LinphoneActivity.instance().startVideoActivity(call, 0);
|
if (call.getCurrentParamsCopy().getVideoEnabled())
|
||||||
else
|
LinphoneActivity.instance().startVideoActivity(call, 0);
|
||||||
LinphoneActivity.instance().startIncallActivity();
|
else
|
||||||
}
|
LinphoneActivity.instance().startIncallActivity();
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
mAddCall.setOnClickListener(new OnClickListener() {
|
if (mAddCall != null) {
|
||||||
public void onClick(View v) {
|
mAddCall.setOnClickListener(new OnClickListener() {
|
||||||
LinphoneCall call = LinphoneManager.getLc().getCurrentCall();
|
public void onClick(View v) {
|
||||||
if (call != null && !call.isInConference()) {
|
LinphoneCall call = LinphoneManager.getLc().getCurrentCall();
|
||||||
LinphoneManager.getLc().pauseCall(call);
|
if (call != null && !call.isInConference()) {
|
||||||
} else {
|
LinphoneManager.getLc().pauseCall(call);
|
||||||
LinphoneManager.getLc().leaveConference();
|
} else {
|
||||||
|
LinphoneManager.getLc().leaveConference();
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
LinphoneManager.getLc().invite(mAddress.getText().toString());
|
||||||
|
} catch (LinphoneCoreException e) {
|
||||||
|
Log.e(e);
|
||||||
|
Toast.makeText(DialerActivity.this, R.string.error_adding_new_call, Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
try {
|
}
|
||||||
LinphoneManager.getLc().invite(mAddress.getText().toString());
|
|
||||||
} catch (LinphoneCoreException e) {
|
|
||||||
Log.e(e);
|
|
||||||
Toast.makeText(DialerActivity.this, R.string.error_adding_new_call, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkIfOutgoingCallIntentReceived() {
|
private void checkIfOutgoingCallIntentReceived() {
|
||||||
|
@ -462,10 +471,11 @@ public class DialerActivity extends Activity implements LinphoneGuiListener {
|
||||||
public void onCallStateChanged(LinphoneCall call, State s, String m) {
|
public void onCallStateChanged(LinphoneCall call, State s, String m) {
|
||||||
if (mVideoCaptureView != null && mCamera == null && !LinphoneManager.getLc().isIncall())
|
if (mVideoCaptureView != null && mCamera == null && !LinphoneManager.getLc().isIncall())
|
||||||
{
|
{
|
||||||
mInCallControls.setVisibility(View.GONE);
|
if (mInCallControls != null)
|
||||||
|
mInCallControls.setVisibility(View.GONE);
|
||||||
mCall.setVisibility(View.VISIBLE);
|
mCall.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
if (AndroidCameraConfiguration.hasSeveralCameras())
|
if (AndroidCameraConfiguration.hasSeveralCameras() && mSwitchCamera != null)
|
||||||
mSwitchCamera.setVisibility(View.VISIBLE);
|
mSwitchCamera.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
mCamera = Camera.open(mCurrentCameraId);
|
mCamera = Camera.open(mCurrentCameraId);
|
||||||
|
@ -494,9 +504,11 @@ public class DialerActivity extends Activity implements LinphoneGuiListener {
|
||||||
|
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
||||||
mInCallControls.setVisibility(View.GONE);
|
if (mInCallControls != null)
|
||||||
|
mInCallControls.setVisibility(View.GONE);
|
||||||
mCall.setVisibility(View.VISIBLE);
|
mCall.setVisibility(View.VISIBLE);
|
||||||
if (AndroidCameraConfiguration.hasSeveralCameras())
|
|
||||||
|
if (AndroidCameraConfiguration.hasSeveralCameras() && mSwitchCamera != null)
|
||||||
mSwitchCamera.setVisibility(View.VISIBLE);
|
mSwitchCamera.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
if (mVideoCaptureView != null && mCamera == null && !LinphoneManager.getLc().isIncall())
|
if (mVideoCaptureView != null && mCamera == null && !LinphoneManager.getLc().isIncall())
|
||||||
|
@ -506,9 +518,12 @@ public class DialerActivity extends Activity implements LinphoneGuiListener {
|
||||||
mCamera.startPreview();
|
mCamera.startPreview();
|
||||||
} else if (LinphoneManager.getLc().isIncall())
|
} else if (LinphoneManager.getLc().isIncall())
|
||||||
{
|
{
|
||||||
mInCallControls.setVisibility(View.VISIBLE);
|
if (mInCallControls != null)
|
||||||
|
mInCallControls.setVisibility(View.VISIBLE);
|
||||||
mCall.setVisibility(View.GONE);
|
mCall.setVisibility(View.GONE);
|
||||||
mSwitchCamera.setVisibility(View.INVISIBLE);
|
|
||||||
|
if (mSwitchCamera != null)
|
||||||
|
mSwitchCamera.setVisibility(View.INVISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,10 +23,10 @@ import static android.content.Intent.ACTION_MAIN;
|
||||||
|
|
||||||
import org.linphone.LinphoneSimpleListener.LinphoneOnCallStateChangedListener;
|
import org.linphone.LinphoneSimpleListener.LinphoneOnCallStateChangedListener;
|
||||||
import org.linphone.core.LinphoneCall;
|
import org.linphone.core.LinphoneCall;
|
||||||
import org.linphone.core.LinphoneCore;
|
|
||||||
import org.linphone.core.Log;
|
|
||||||
import org.linphone.core.LinphoneCall.State;
|
import org.linphone.core.LinphoneCall.State;
|
||||||
|
import org.linphone.core.LinphoneCore;
|
||||||
import org.linphone.core.LinphoneCore.RegistrationState;
|
import org.linphone.core.LinphoneCore.RegistrationState;
|
||||||
|
import org.linphone.core.Log;
|
||||||
import org.linphone.mediastream.Version;
|
import org.linphone.mediastream.Version;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
|
@ -46,10 +46,10 @@ import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.OrientationEventListener;
|
import android.view.OrientationEventListener;
|
||||||
|
import android.widget.TabHost.TabSpec;
|
||||||
import android.widget.TabWidget;
|
import android.widget.TabWidget;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import android.widget.TabHost.TabSpec;
|
|
||||||
|
|
||||||
public class LinphoneActivity extends TabActivity implements ContactPicked
|
public class LinphoneActivity extends TabActivity implements ContactPicked
|
||||||
, LinphoneOnCallStateChangedListener
|
, LinphoneOnCallStateChangedListener
|
||||||
|
|
|
@ -77,6 +77,7 @@ public class VideoCallActivity extends Activity implements LinphoneOnCallStateCh
|
||||||
AndroidVideoWindowImpl androidVideoWindowImpl;
|
AndroidVideoWindowImpl androidVideoWindowImpl;
|
||||||
private Runnable mCallQualityUpdater, mControls;
|
private Runnable mCallQualityUpdater, mControls;
|
||||||
private LinearLayout mControlsLayout;
|
private LinearLayout mControlsLayout;
|
||||||
|
private boolean shouldRestartVideoOnResume = false;
|
||||||
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -256,6 +257,11 @@ public class VideoCallActivity extends Activity implements LinphoneOnCallStateCh
|
||||||
|
|
||||||
if (mControlsLayout != null)
|
if (mControlsLayout != null)
|
||||||
mControlsLayout.setVisibility(View.GONE);
|
mControlsLayout.setVisibility(View.GONE);
|
||||||
|
|
||||||
|
if (shouldRestartVideoOnResume) {
|
||||||
|
LinphoneManager.getLc().getCurrentCall().enableCamera(true);
|
||||||
|
shouldRestartVideoOnResume = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||||
|
@ -278,6 +284,10 @@ public class VideoCallActivity extends Activity implements LinphoneOnCallStateCh
|
||||||
LinphoneManager.removeListener(this);
|
LinphoneManager.removeListener(this);
|
||||||
if (isFinishing()) {
|
if (isFinishing()) {
|
||||||
videoCall = null; // release reference
|
videoCall = null; // release reference
|
||||||
|
} else {
|
||||||
|
// Send NoWebcam since Android 4.0 can't get the video from the webcam if the activity is not in foreground
|
||||||
|
shouldRestartVideoOnResume = true;
|
||||||
|
LinphoneManager.getLc().getCurrentCall().enableCamera(false);
|
||||||
}
|
}
|
||||||
launched=false;
|
launched=false;
|
||||||
synchronized (androidVideoWindowImpl) {
|
synchronized (androidVideoWindowImpl) {
|
||||||
|
|
Loading…
Reference in a new issue