带自动接听

This commit is contained in:
chenbin
2021-05-06 17:47:20 +08:00
parent 3b28584e4c
commit 7961a6b462
2 changed files with 71 additions and 21 deletions

View File

@@ -193,15 +193,30 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
incall_answer.setVisibility(View.GONE); incall_answer.setVisibility(View.GONE);
} }
show.setText(callnumber + callstate); show.setText(callnumber + callstate);
if (incall_answer.getVisibility() == View.VISIBLE && selfCall) { if (incall_answer.getVisibility() == View.VISIBLE){
incall_answer.setVisibility(View.GONE); if(selfCall) {
SipEngine.getInstance().answer(callid); // incall_answer.setVisibility(View.GONE);
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); // SipEngine.getInstance().answer(callid);
ringtone = null; // SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
// ringtone = null;
answer();
} else {
AutoAnwser();
}
} }
} }
static void AutoAnwser() {
handler_CallActivity.postDelayed(doAutoAnwser, 5000);
}
static Runnable doAutoAnwser = new Runnable() {
@Override
public void run() {
CONS.SENDMESSAGETO(handler_CallActivity, -2, null);
}
};
@Override @Override
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
@@ -215,6 +230,7 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
ringtone = null; ringtone = null;
SipEngine.getInstance().hangup(callid); SipEngine.getInstance().hangup(callid);
handler_CallActivity.removeCallbacks(doAutoAnwser);
handler_CallActivity = null; handler_CallActivity = null;
if (wakeLock != null) { if (wakeLock != null) {
wakeLock.release(); wakeLock.release();
@@ -279,6 +295,9 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
stopVideoStream(true); stopVideoStream(true);
finish(); finish();
break; break;
case -2:
answer();
break;
} }
return true; return true;
} }
@@ -338,14 +357,23 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
} }
break; break;
case R.id.incall_answer: case R.id.incall_answer:
incall_answer.setVisibility(View.GONE); // incall_answer.setVisibility(View.GONE);
SipEngine.getInstance().answer(callid); // SipEngine.getInstance().answer(callid);
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); // SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
ringtone = null; // ringtone = null;
answer();
break; break;
} }
} }
public void answer() {
incall_answer.setVisibility(View.GONE);
SipEngine.getInstance().answer(callid);
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
ringtone = null;
handler_CallActivity.removeCallbacks(doAutoAnwser);
}
public void ShowVideoView(boolean show) { public void ShowVideoView(boolean show) {
if (show) { if (show) {

View File

@@ -529,14 +529,28 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
} }
show.setText(callnumber + callstate); show.setText(callnumber + callstate);
//控件显示号码,来电,去电,通话中... //控件显示号码,来电,去电,通话中...
if (incall_answer.getVisibility() == View.VISIBLE && selfCall) { if (incall_answer.getVisibility() == View.VISIBLE ) {
incall_answer.setVisibility(View.GONE); if(selfCall) {
SipEngine.getInstance().answer(callid); // incall_answer.setVisibility(View.GONE);
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); // SipEngine.getInstance().answer(callid);
ringtone = null; // SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
// ringtone = null;
answer();
} else {
AutoAnwser();
}
} }
} }
static void AutoAnwser() {
handler_CallActivity.postDelayed(doAutoAnwser, 5000);
}
static Runnable doAutoAnwser = new Runnable() {
@Override
public void run() {
CONS.SENDMESSAGETO(handler_CallActivity, -2, null);
}
};
@Override @Override
protected void onPause() { protected void onPause() {
@@ -552,6 +566,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
ringtone = null; ringtone = null;
SipEngine.getInstance().hangup(callid); SipEngine.getInstance().hangup(callid);
handler_CallActivity.removeCallbacks(getMemberRunner); handler_CallActivity.removeCallbacks(getMemberRunner);
handler_CallActivity.removeCallbacks(doAutoAnwser);
handler_CallActivity = null; handler_CallActivity = null;
if (wakeLock != null) { if (wakeLock != null) {
wakeLock.release(); wakeLock.release();
@@ -626,6 +641,9 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
case -1: case -1:
getMembers(); getMembers();
break; break;
case -2:
answer();
break;
} }
return true; return true;
} }
@@ -690,13 +708,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
} }
break; break;
case R.id.incall_answer: case R.id.incall_answer:
incall_answer.setVisibility(View.GONE); answer();
if (DBUser.mySelf != null && DBUser.mySelf.isManager) {
incall_mute.setVisibility(View.VISIBLE);
}
SipEngine.getInstance().answer(callid);
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
ringtone = null;
break; break;
case R.id.incall_mute: case R.id.incall_mute:
muteAll(v); muteAll(v);
@@ -706,6 +718,16 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
break; break;
} }
} }
public void answer() {
incall_answer.setVisibility(View.GONE);
if (DBUser.mySelf != null && DBUser.mySelf.isManager) {
incall_mute.setVisibility(View.VISIBLE);
}
SipEngine.getInstance().answer(callid);
SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
ringtone = null;
handler_CallActivity.removeCallbacks(doAutoAnwser);
}
public void muteAll(View view) { public void muteAll(View view) {
QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this, QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this,