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"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@android:style/Theme.NoTitleBar"
|
||||
android:screenOrientation="landscape"
|
||||
android:launchMode="singleTask"
|
||||
android:windowSoftInputMode="stateAlwaysHidden|adjustResize"
|
||||
> <!-- android:alwaysRetainTaskState="true" clearTaskOnLaunch="false"-->
|
||||
|
|
|
@ -28,6 +28,7 @@ import org.linphone.core.LinphoneCore.RegistrationState;
|
|||
import org.linphone.core.LinphoneCoreException;
|
||||
import org.linphone.core.LinphoneProxyConfig;
|
||||
import org.linphone.core.Log;
|
||||
import org.linphone.mediastream.Version;
|
||||
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
|
||||
import org.linphone.ui.AddressAware;
|
||||
import org.linphone.ui.AddressText;
|
||||
|
@ -40,6 +41,7 @@ import android.app.AlertDialog;
|
|||
import android.app.Dialog;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.hardware.Camera;
|
||||
import android.hardware.Camera.CameraInfo;
|
||||
import android.net.Uri;
|
||||
|
@ -203,6 +205,9 @@ public class DialerActivity extends Activity implements LinphoneGuiListener {
|
|||
}
|
||||
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
if (Version.isXLargeScreen(this)) {
|
||||
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
||||
}
|
||||
setContentView(R.layout.dialer);
|
||||
|
||||
mAddress = (AddressText) findViewById(R.id.SipUri);
|
||||
|
@ -298,33 +303,37 @@ public class DialerActivity extends Activity implements LinphoneGuiListener {
|
|||
});
|
||||
}
|
||||
|
||||
mBack.setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
LinphoneCall call = LinphoneManager.getLc().getCurrentCall();
|
||||
if (call.getCurrentParamsCopy().getVideoEnabled())
|
||||
LinphoneActivity.instance().startVideoActivity(call, 0);
|
||||
else
|
||||
LinphoneActivity.instance().startIncallActivity();
|
||||
}
|
||||
});
|
||||
if (mBack != null) {
|
||||
mBack.setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
LinphoneCall call = LinphoneManager.getLc().getCurrentCall();
|
||||
if (call.getCurrentParamsCopy().getVideoEnabled())
|
||||
LinphoneActivity.instance().startVideoActivity(call, 0);
|
||||
else
|
||||
LinphoneActivity.instance().startIncallActivity();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
mAddCall.setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
LinphoneCall call = LinphoneManager.getLc().getCurrentCall();
|
||||
if (call != null && !call.isInConference()) {
|
||||
LinphoneManager.getLc().pauseCall(call);
|
||||
} else {
|
||||
LinphoneManager.getLc().leaveConference();
|
||||
if (mAddCall != null) {
|
||||
mAddCall.setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
LinphoneCall call = LinphoneManager.getLc().getCurrentCall();
|
||||
if (call != null && !call.isInConference()) {
|
||||
LinphoneManager.getLc().pauseCall(call);
|
||||
} 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() {
|
||||
|
@ -462,10 +471,11 @@ public class DialerActivity extends Activity implements LinphoneGuiListener {
|
|||
public void onCallStateChanged(LinphoneCall call, State s, String m) {
|
||||
if (mVideoCaptureView != null && mCamera == null && !LinphoneManager.getLc().isIncall())
|
||||
{
|
||||
mInCallControls.setVisibility(View.GONE);
|
||||
if (mInCallControls != null)
|
||||
mInCallControls.setVisibility(View.GONE);
|
||||
mCall.setVisibility(View.VISIBLE);
|
||||
|
||||
if (AndroidCameraConfiguration.hasSeveralCameras())
|
||||
if (AndroidCameraConfiguration.hasSeveralCameras() && mSwitchCamera != null)
|
||||
mSwitchCamera.setVisibility(View.VISIBLE);
|
||||
|
||||
mCamera = Camera.open(mCurrentCameraId);
|
||||
|
@ -494,9 +504,11 @@ public class DialerActivity extends Activity implements LinphoneGuiListener {
|
|||
|
||||
super.onResume();
|
||||
|
||||
mInCallControls.setVisibility(View.GONE);
|
||||
if (mInCallControls != null)
|
||||
mInCallControls.setVisibility(View.GONE);
|
||||
mCall.setVisibility(View.VISIBLE);
|
||||
if (AndroidCameraConfiguration.hasSeveralCameras())
|
||||
|
||||
if (AndroidCameraConfiguration.hasSeveralCameras() && mSwitchCamera != null)
|
||||
mSwitchCamera.setVisibility(View.VISIBLE);
|
||||
|
||||
if (mVideoCaptureView != null && mCamera == null && !LinphoneManager.getLc().isIncall())
|
||||
|
@ -506,9 +518,12 @@ public class DialerActivity extends Activity implements LinphoneGuiListener {
|
|||
mCamera.startPreview();
|
||||
} else if (LinphoneManager.getLc().isIncall())
|
||||
{
|
||||
mInCallControls.setVisibility(View.VISIBLE);
|
||||
if (mInCallControls != null)
|
||||
mInCallControls.setVisibility(View.VISIBLE);
|
||||
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.core.LinphoneCall;
|
||||
import org.linphone.core.LinphoneCore;
|
||||
import org.linphone.core.Log;
|
||||
import org.linphone.core.LinphoneCall.State;
|
||||
import org.linphone.core.LinphoneCore;
|
||||
import org.linphone.core.LinphoneCore.RegistrationState;
|
||||
import org.linphone.core.Log;
|
||||
import org.linphone.mediastream.Version;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
|
@ -46,10 +46,10 @@ import android.view.Menu;
|
|||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.OrientationEventListener;
|
||||
import android.widget.TabHost.TabSpec;
|
||||
import android.widget.TabWidget;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import android.widget.TabHost.TabSpec;
|
||||
|
||||
public class LinphoneActivity extends TabActivity implements ContactPicked
|
||||
, LinphoneOnCallStateChangedListener
|
||||
|
|
|
@ -77,6 +77,7 @@ public class VideoCallActivity extends Activity implements LinphoneOnCallStateCh
|
|||
AndroidVideoWindowImpl androidVideoWindowImpl;
|
||||
private Runnable mCallQualityUpdater, mControls;
|
||||
private LinearLayout mControlsLayout;
|
||||
private boolean shouldRestartVideoOnResume = false;
|
||||
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
@ -256,6 +257,11 @@ public class VideoCallActivity extends Activity implements LinphoneOnCallStateCh
|
|||
|
||||
if (mControlsLayout != null)
|
||||
mControlsLayout.setVisibility(View.GONE);
|
||||
|
||||
if (shouldRestartVideoOnResume) {
|
||||
LinphoneManager.getLc().getCurrentCall().enableCamera(true);
|
||||
shouldRestartVideoOnResume = false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
|
@ -278,6 +284,10 @@ public class VideoCallActivity extends Activity implements LinphoneOnCallStateCh
|
|||
LinphoneManager.removeListener(this);
|
||||
if (isFinishing()) {
|
||||
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;
|
||||
synchronized (androidVideoWindowImpl) {
|
||||
|
|
Loading…
Reference in a new issue