Bladeren bron

带自动接听

master^2
chenbin 3 jaren geleden
bovenliggende
commit
7961a6b462

+ 37
- 9
app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java Bestand weergeven

@@ -193,15 +193,30 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
193 193
             incall_answer.setVisibility(View.GONE);
194 194
         }
195 195
         show.setText(callnumber + callstate);
196
-        if (incall_answer.getVisibility() == View.VISIBLE && selfCall) {
197
-            incall_answer.setVisibility(View.GONE);
198
-            SipEngine.getInstance().answer(callid);
199
-            SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
200
-            ringtone = null;
196
+        if (incall_answer.getVisibility() == View.VISIBLE){
197
+            if(selfCall) {
198
+//                incall_answer.setVisibility(View.GONE);
199
+//                SipEngine.getInstance().answer(callid);
200
+//                SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
201
+//                ringtone = null;
202
+                answer();
203
+            } else {
204
+                AutoAnwser();
205
+            }
201 206
         }
202 207
 
203 208
     }
204 209
 
210
+    static void  AutoAnwser() {
211
+        handler_CallActivity.postDelayed(doAutoAnwser, 5000);
212
+    }
213
+    static Runnable doAutoAnwser = new Runnable() {
214
+        @Override
215
+        public void run() {
216
+            CONS.SENDMESSAGETO(handler_CallActivity, -2, null);
217
+        }
218
+    };
219
+
205 220
     @Override
206 221
     protected void onPause() {
207 222
         super.onPause();
@@ -215,6 +230,7 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
215 230
         SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
216 231
         ringtone = null;
217 232
         SipEngine.getInstance().hangup(callid);
233
+        handler_CallActivity.removeCallbacks(doAutoAnwser);
218 234
         handler_CallActivity = null;
219 235
         if (wakeLock != null) {
220 236
             wakeLock.release();
@@ -279,6 +295,9 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
279 295
                 stopVideoStream(true);
280 296
                 finish();
281 297
                 break;
298
+            case -2:
299
+                answer();
300
+                break;
282 301
         }
283 302
         return true;
284 303
     }
@@ -338,14 +357,23 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener {
338 357
                 }
339 358
                 break;
340 359
             case R.id.incall_answer:
341
-                incall_answer.setVisibility(View.GONE);
342
-                SipEngine.getInstance().answer(callid);
343
-                SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
344
-                ringtone = null;
360
+//                incall_answer.setVisibility(View.GONE);
361
+//                SipEngine.getInstance().answer(callid);
362
+//                SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
363
+//                ringtone = null;
364
+                answer();
345 365
                 break;
346 366
         }
347 367
     }
348 368
 
369
+    public  void  answer() {
370
+        incall_answer.setVisibility(View.GONE);
371
+        SipEngine.getInstance().answer(callid);
372
+        SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
373
+        ringtone = null;
374
+        handler_CallActivity.removeCallbacks(doAutoAnwser);
375
+    }
376
+
349 377
 
350 378
     public void ShowVideoView(boolean show) {
351 379
         if (show) {

+ 34
- 12
app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java Bestand weergeven

@@ -529,14 +529,28 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
529 529
         }
530 530
         show.setText(callnumber + callstate);
531 531
         //控件显示号码,来电,去电,通话中...
532
-        if (incall_answer.getVisibility() == View.VISIBLE && selfCall) {
533
-            incall_answer.setVisibility(View.GONE);
534
-            SipEngine.getInstance().answer(callid);
535
-            SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
536
-            ringtone = null;
532
+        if (incall_answer.getVisibility() == View.VISIBLE ) {
533
+            if(selfCall) {
534
+//                incall_answer.setVisibility(View.GONE);
535
+//                SipEngine.getInstance().answer(callid);
536
+//                SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
537
+//                ringtone = null;
538
+                answer();
539
+            } else {
540
+                AutoAnwser();
541
+            }
537 542
         }
538 543
 
539 544
     }
545
+    static void  AutoAnwser() {
546
+        handler_CallActivity.postDelayed(doAutoAnwser, 5000);
547
+    }
548
+    static Runnable doAutoAnwser = new Runnable() {
549
+        @Override
550
+        public void run() {
551
+            CONS.SENDMESSAGETO(handler_CallActivity, -2, null);
552
+        }
553
+    };
540 554
 
541 555
     @Override
542 556
     protected void onPause() {
@@ -552,6 +566,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
552 566
         ringtone = null;
553 567
         SipEngine.getInstance().hangup(callid);
554 568
         handler_CallActivity.removeCallbacks(getMemberRunner);
569
+        handler_CallActivity.removeCallbacks(doAutoAnwser);
555 570
         handler_CallActivity = null;
556 571
         if (wakeLock != null) {
557 572
             wakeLock.release();
@@ -626,6 +641,9 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
626 641
             case  -1:
627 642
                 getMembers();
628 643
                 break;
644
+            case -2:
645
+                answer();
646
+                break;
629 647
         }
630 648
         return true;
631 649
     }
@@ -690,13 +708,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
690 708
                 }
691 709
                 break;
692 710
             case R.id.incall_answer:
693
-                incall_answer.setVisibility(View.GONE);
694
-                if (DBUser.mySelf != null && DBUser.mySelf.isManager) {
695
-                    incall_mute.setVisibility(View.VISIBLE);
696
-                }
697
-                SipEngine.getInstance().answer(callid);
698
-                SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
699
-                ringtone = null;
711
+                answer();
700 712
                 break;
701 713
             case R.id.incall_mute:
702 714
                 muteAll(v);
@@ -706,6 +718,16 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
706 718
                 break;
707 719
         }
708 720
     }
721
+    public  void  answer() {
722
+        incall_answer.setVisibility(View.GONE);
723
+        if (DBUser.mySelf != null && DBUser.mySelf.isManager) {
724
+            incall_mute.setVisibility(View.VISIBLE);
725
+        }
726
+        SipEngine.getInstance().answer(callid);
727
+        SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
728
+        ringtone = null;
729
+        handler_CallActivity.removeCallbacks(doAutoAnwser);
730
+    }
709 731
 
710 732
     public void muteAll(View view) {
711 733
         QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this,

Laden…
Annuleren
Opslaan