diff --git a/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java b/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java index 839048a..6c61984 100644 --- a/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java @@ -193,15 +193,30 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { incall_answer.setVisibility(View.GONE); } show.setText(callnumber + callstate); - if (incall_answer.getVisibility() == View.VISIBLE && selfCall) { - incall_answer.setVisibility(View.GONE); - SipEngine.getInstance().answer(callid); - SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); - ringtone = null; + if (incall_answer.getVisibility() == View.VISIBLE){ + if(selfCall) { +// incall_answer.setVisibility(View.GONE); +// SipEngine.getInstance().answer(callid); +// 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 protected void onPause() { super.onPause(); @@ -215,6 +230,7 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); ringtone = null; SipEngine.getInstance().hangup(callid); + handler_CallActivity.removeCallbacks(doAutoAnwser); handler_CallActivity = null; if (wakeLock != null) { wakeLock.release(); @@ -279,6 +295,9 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { stopVideoStream(true); finish(); break; + case -2: + answer(); + break; } return true; } @@ -338,14 +357,23 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { } break; case R.id.incall_answer: - incall_answer.setVisibility(View.GONE); - SipEngine.getInstance().answer(callid); - SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); - ringtone = null; +// incall_answer.setVisibility(View.GONE); +// SipEngine.getInstance().answer(callid); +// SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); +// ringtone = null; + answer(); 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) { if (show) { diff --git a/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java b/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java index 03ab22c..1c8461c 100644 --- a/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java @@ -529,14 +529,28 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList } show.setText(callnumber + callstate); //控件显示号码,来电,去电,通话中... - if (incall_answer.getVisibility() == View.VISIBLE && selfCall) { - incall_answer.setVisibility(View.GONE); - SipEngine.getInstance().answer(callid); - SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone); - ringtone = null; + if (incall_answer.getVisibility() == View.VISIBLE ) { + if(selfCall) { +// incall_answer.setVisibility(View.GONE); +// SipEngine.getInstance().answer(callid); +// 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 protected void onPause() { @@ -552,6 +566,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList ringtone = null; SipEngine.getInstance().hangup(callid); handler_CallActivity.removeCallbacks(getMemberRunner); + handler_CallActivity.removeCallbacks(doAutoAnwser); handler_CallActivity = null; if (wakeLock != null) { wakeLock.release(); @@ -626,6 +641,9 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList case -1: getMembers(); break; + case -2: + answer(); + break; } return true; } @@ -690,13 +708,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList } break; case R.id.incall_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; + answer(); break; case R.id.incall_mute: muteAll(v); @@ -706,6 +718,16 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList 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) { QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this,