Browse Source

带自动接听

master^2
chenbin 3 years ago
parent
commit
7961a6b462

+ 37
- 9
app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java View File

193
             incall_answer.setVisibility(View.GONE);
193
             incall_answer.setVisibility(View.GONE);
194
         }
194
         }
195
         show.setText(callnumber + callstate);
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
     @Override
220
     @Override
206
     protected void onPause() {
221
     protected void onPause() {
207
         super.onPause();
222
         super.onPause();
215
         SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
230
         SipEngine.getInstance().StopdefaultCallMediaPlayer(ringtone);
216
         ringtone = null;
231
         ringtone = null;
217
         SipEngine.getInstance().hangup(callid);
232
         SipEngine.getInstance().hangup(callid);
233
+        handler_CallActivity.removeCallbacks(doAutoAnwser);
218
         handler_CallActivity = null;
234
         handler_CallActivity = null;
219
         if (wakeLock != null) {
235
         if (wakeLock != null) {
220
             wakeLock.release();
236
             wakeLock.release();
279
                 stopVideoStream(true);
295
                 stopVideoStream(true);
280
                 finish();
296
                 finish();
281
                 break;
297
                 break;
298
+            case -2:
299
+                answer();
300
+                break;
282
         }
301
         }
283
         return true;
302
         return true;
284
     }
303
     }
338
                 }
357
                 }
339
                 break;
358
                 break;
340
             case R.id.incall_answer:
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
                 break;
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
     public void ShowVideoView(boolean show) {
378
     public void ShowVideoView(boolean show) {
351
         if (show) {
379
         if (show) {

+ 34
- 12
app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java View File

529
         }
529
         }
530
         show.setText(callnumber + callstate);
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
     @Override
555
     @Override
542
     protected void onPause() {
556
     protected void onPause() {
552
         ringtone = null;
566
         ringtone = null;
553
         SipEngine.getInstance().hangup(callid);
567
         SipEngine.getInstance().hangup(callid);
554
         handler_CallActivity.removeCallbacks(getMemberRunner);
568
         handler_CallActivity.removeCallbacks(getMemberRunner);
569
+        handler_CallActivity.removeCallbacks(doAutoAnwser);
555
         handler_CallActivity = null;
570
         handler_CallActivity = null;
556
         if (wakeLock != null) {
571
         if (wakeLock != null) {
557
             wakeLock.release();
572
             wakeLock.release();
626
             case  -1:
641
             case  -1:
627
                 getMembers();
642
                 getMembers();
628
                 break;
643
                 break;
644
+            case -2:
645
+                answer();
646
+                break;
629
         }
647
         }
630
         return true;
648
         return true;
631
     }
649
     }
690
                 }
708
                 }
691
                 break;
709
                 break;
692
             case R.id.incall_answer:
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
                 break;
712
                 break;
701
             case R.id.incall_mute:
713
             case R.id.incall_mute:
702
                 muteAll(v);
714
                 muteAll(v);
706
                 break;
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
     public void muteAll(View view) {
732
     public void muteAll(View view) {
711
         QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this,
733
         QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this,

Loading…
Cancel
Save