Try to resume call, enter conf on URI picker return.
This commit is contained in:
parent
e436b2b620
commit
1724555a8c
1 changed files with 29 additions and 5 deletions
|
@ -101,11 +101,11 @@ public class ConferenceActivity extends ListActivity implements
|
||||||
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
|
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
|
||||||
}
|
}
|
||||||
|
|
||||||
// private void pauseCurrentCallOrLeaveConference() {
|
private void pauseCurrentCallOrLeaveConference() {
|
||||||
// LinphoneCall call = lc().getCurrentCall();
|
LinphoneCall call = lc().getCurrentCall();
|
||||||
// if (call != null) lc().pauseCall(call);
|
if (call != null) lc().pauseCall(call);
|
||||||
// lc().leaveConference();
|
lc().leaveConference();
|
||||||
// }
|
}
|
||||||
|
|
||||||
private LinphoneManagerWaitHelper waitHelper;
|
private LinphoneManagerWaitHelper waitHelper;
|
||||||
private ToggleButton mMuteMicButton;
|
private ToggleButton mMuteMicButton;
|
||||||
|
@ -261,7 +261,12 @@ public class ConferenceActivity extends ListActivity implements
|
||||||
// v.setText(inConf ? R.string.in_conf : R.string.out_conf);
|
// v.setText(inConf ? R.string.in_conf : R.string.out_conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private LinphoneCall activateCallOnReturnFromUriPicker;
|
||||||
|
private boolean enterConferenceOnReturnFromUriPicker;
|
||||||
private void openUriPicker(String pickerType, int requestCode) {
|
private void openUriPicker(String pickerType, int requestCode) {
|
||||||
|
activateCallOnReturnFromUriPicker = lc().getCurrentCall();
|
||||||
|
enterConferenceOnReturnFromUriPicker = lc().isInConference();
|
||||||
|
pauseCurrentCallOrLeaveConference();
|
||||||
Intent intent = new Intent().setClass(this, UriPickerActivity.class);
|
Intent intent = new Intent().setClass(this, UriPickerActivity.class);
|
||||||
intent.putExtra(UriPickerActivity.EXTRA_PICKER_TYPE, pickerType);
|
intent.putExtra(UriPickerActivity.EXTRA_PICKER_TYPE, pickerType);
|
||||||
startActivityForResult(intent, requestCode);
|
startActivityForResult(intent, requestCode);
|
||||||
|
@ -693,6 +698,7 @@ public class ConferenceActivity extends ListActivity implements
|
||||||
if (resultCode != RESULT_OK) {
|
if (resultCode != RESULT_OK) {
|
||||||
callToTransfer = null;
|
callToTransfer = null;
|
||||||
Toast.makeText(this, R.string.uri_picking_canceled, Toast.LENGTH_LONG).show();
|
Toast.makeText(this, R.string.uri_picking_canceled, Toast.LENGTH_LONG).show();
|
||||||
|
eventuallyResumeConfOrCallOnPickerReturn(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -701,6 +707,7 @@ public class ConferenceActivity extends ListActivity implements
|
||||||
case ID_ADD_CALL:
|
case ID_ADD_CALL:
|
||||||
try {
|
try {
|
||||||
lc().invite(uri);
|
lc().invite(uri);
|
||||||
|
eventuallyResumeConfOrCallOnPickerReturn(false);
|
||||||
} catch (LinphoneCoreException e) {
|
} catch (LinphoneCoreException e) {
|
||||||
Log.e(e);
|
Log.e(e);
|
||||||
Toast.makeText(this, R.string.error_adding_new_call, Toast.LENGTH_LONG).show();
|
Toast.makeText(this, R.string.error_adding_new_call, Toast.LENGTH_LONG).show();
|
||||||
|
@ -708,6 +715,11 @@ public class ConferenceActivity extends ListActivity implements
|
||||||
break;
|
break;
|
||||||
case ID_TRANSFER_CALL:
|
case ID_TRANSFER_CALL:
|
||||||
lc().transferCall(callToTransfer, uri);
|
lc().transferCall(callToTransfer, uri);
|
||||||
|
// don't re-enter conference if call to transfer from conference
|
||||||
|
boolean doResume = !callToTransfer.isInConference();
|
||||||
|
// don't resume call if it is the call to transfer
|
||||||
|
doResume &= activateCallOnReturnFromUriPicker != callToTransfer;
|
||||||
|
eventuallyResumeConfOrCallOnPickerReturn(doResume);
|
||||||
Toast.makeText(this, R.string.transfer_started, Toast.LENGTH_LONG).show();
|
Toast.makeText(this, R.string.transfer_started, Toast.LENGTH_LONG).show();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -715,6 +727,18 @@ public class ConferenceActivity extends ListActivity implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void eventuallyResumeConfOrCallOnPickerReturn(boolean doCallConfResuming) {
|
||||||
|
if (doCallConfResuming) {
|
||||||
|
if (activateCallOnReturnFromUriPicker != null) {
|
||||||
|
lc().resumeCall(activateCallOnReturnFromUriPicker);
|
||||||
|
} else if (enterConferenceOnReturnFromUriPicker) {
|
||||||
|
lc().enterConference();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
activateCallOnReturnFromUriPicker = null;
|
||||||
|
enterConferenceOnReturnFromUriPicker = false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
||||||
if (LinphoneUtils.onKeyBackGoHome(this, keyCode)) return true;
|
if (LinphoneUtils.onKeyBackGoHome(this, keyCode)) return true;
|
||||||
|
|
Loading…
Reference in a new issue