|
@@ -2,7 +2,6 @@ package com.tianrun.sipcall.call;
|
2
|
2
|
|
3
|
3
|
|
4
|
4
|
import android.annotation.SuppressLint;
|
5
|
|
-import android.app.Activity;
|
6
|
5
|
import android.app.KeyguardManager;
|
7
|
6
|
import android.content.Context;
|
8
|
7
|
import android.content.DialogInterface;
|
|
@@ -39,10 +38,8 @@ import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
|
39
|
38
|
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
|
40
|
39
|
import com.tianrun.sipcall.R;
|
41
|
40
|
import com.tianrun.sipcall.SipEngine;
|
42
|
|
-import com.tianrun.sipcall.db.DBGroup;
|
43
|
41
|
import com.tianrun.sipcall.db.DBUser;
|
44
|
42
|
import com.tianrun.sipcall.db.UserMeetingViews;
|
45
|
|
-import com.tianrun.sipcall.db.UserViews;
|
46
|
43
|
import com.tianrun.sipcall.net.Net;
|
47
|
44
|
import com.tianrun.sipcall.ui.TrAdapter;
|
48
|
45
|
import com.tianrun.sipcall.ui.TrBaseActivity;
|
|
@@ -70,6 +67,8 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
70
|
67
|
private SMPercentFrameLayout remoteRenderLayout;
|
71
|
68
|
private ImageButton incall_answer, incall_hangup;
|
72
|
69
|
private View imageButtonAddUser;
|
|
70
|
+ ImageButton incall_mute;
|
|
71
|
+ ImageButton incall_muteVideo;
|
73
|
72
|
private TextView show;
|
74
|
73
|
GridView gridUser;
|
75
|
74
|
QMUITabSegment mTabSegment;
|
|
@@ -166,6 +165,13 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
166
|
165
|
remoteRenderLayout = (SMPercentFrameLayout) findViewById(R.id.remote_video_layout);
|
167
|
166
|
engineServer = new EngineServer(localRender, remoteRender, localRenderLayout, remoteRenderLayout, true);
|
168
|
167
|
|
|
168
|
+ incall_mute = findViewById(R.id.incall_mute);
|
|
169
|
+ incall_mute.setOnClickListener(this);
|
|
170
|
+ incall_muteVideo = findViewById(R.id.incall_muteVideo);
|
|
171
|
+ incall_muteVideo.setOnClickListener(this);
|
|
172
|
+ incall_mute.setVisibility(View.INVISIBLE);
|
|
173
|
+ incall_muteVideo.setVisibility(View.INVISIBLE);
|
|
174
|
+
|
169
|
175
|
mTabSegment = findViewById(R.id.ScreenType);
|
170
|
176
|
mContentViewPager = findViewById(R.id.contentViewPager);
|
171
|
177
|
imageButtonAddUser = findViewById(R.id.imageButtonAddUser);
|
|
@@ -253,6 +259,8 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
253
|
259
|
} else {
|
254
|
260
|
views = (UserMeetingViews) (prefabView.getTag());
|
255
|
261
|
}
|
|
262
|
+
|
|
263
|
+ views.memberStatus3.setVisibility(View.GONE);
|
256
|
264
|
DBUser d = (DBUser) data;
|
257
|
265
|
views.textViewName.setText(d.name);
|
258
|
266
|
views.textViewNum.setText(d.phone);
|
|
@@ -272,6 +280,22 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
272
|
280
|
views.imageViewPhoneIcon.setVisibility(View.VISIBLE);
|
273
|
281
|
views.imageViewAddflag.setVisibility(View.INVISIBLE);
|
274
|
282
|
}
|
|
283
|
+
|
|
284
|
+ if (d.isMute) {
|
|
285
|
+ views.memberStatus1.setImageResource(R.drawable.mute);
|
|
286
|
+ } else {
|
|
287
|
+ views.memberStatus1.setImageResource(R.drawable.unmute);
|
|
288
|
+ }
|
|
289
|
+ if (VIDEOSTATE) {
|
|
290
|
+ views.memberStatus2.setVisibility(View.VISIBLE);
|
|
291
|
+ if (d.isVMute) {
|
|
292
|
+ views.memberStatus2.setImageResource(R.drawable.unvideo);
|
|
293
|
+ } else {
|
|
294
|
+ views.memberStatus2.setImageResource(R.drawable.video);
|
|
295
|
+ }
|
|
296
|
+ } else {
|
|
297
|
+ views.memberStatus2.setVisibility(View.GONE);
|
|
298
|
+ }
|
275
|
299
|
}
|
276
|
300
|
|
277
|
301
|
@Override
|
|
@@ -289,7 +313,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
289
|
313
|
.edgeProtection(QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 20));
|
290
|
314
|
if (DBUser.mySelf.isManager) {
|
291
|
315
|
if (d.isMute) {
|
292
|
|
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("取消禁言").onClick(
|
|
316
|
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unmute).text("取消禁言").onClick(
|
293
|
317
|
new QMUIQuickAction.OnClickListener() {
|
294
|
318
|
@Override
|
295
|
319
|
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
|
@@ -308,7 +332,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
308
|
332
|
}
|
309
|
333
|
));
|
310
|
334
|
} else {
|
311
|
|
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("禁言").onClick(
|
|
335
|
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.mute).text("禁言").onClick(
|
312
|
336
|
new QMUIQuickAction.OnClickListener() {
|
313
|
337
|
@Override
|
314
|
338
|
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
|
@@ -330,7 +354,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
330
|
354
|
|
331
|
355
|
if (VIDEOSTATE) {
|
332
|
356
|
if (d.isVMute) {
|
333
|
|
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("回复视频").onClick(
|
|
357
|
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.video).text("恢复视频").onClick(
|
334
|
358
|
new QMUIQuickAction.OnClickListener() {
|
335
|
359
|
@Override
|
336
|
360
|
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
|
@@ -349,7 +373,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
349
|
373
|
}
|
350
|
374
|
));
|
351
|
375
|
} else {
|
352
|
|
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("停止视频").onClick(
|
|
376
|
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unvideo).text("停止视频").onClick(
|
353
|
377
|
new QMUIQuickAction.OnClickListener() {
|
354
|
378
|
@Override
|
355
|
379
|
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
|
@@ -369,45 +393,24 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
369
|
393
|
));
|
370
|
394
|
}
|
371
|
395
|
|
372
|
|
- if (d.isLayout) {
|
373
|
|
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("恢复布局").onClick(
|
374
|
|
- new QMUIQuickAction.OnClickListener() {
|
375
|
|
- @Override
|
376
|
|
- public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
377
|
|
- quickAction.dismiss();
|
378
|
|
- Net.vidlayoutMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
|
379
|
|
- @Override
|
380
|
|
- public void onRequestComplete(int cmd, String result, Object orgs) {
|
381
|
|
- getMembers();
|
382
|
|
- }
|
383
|
|
-
|
384
|
|
- @Override
|
385
|
|
- public void onRequestError(int cmd, String result, Object orgs) {
|
386
|
|
- }
|
387
|
|
- }, null);
|
388
|
|
- }
|
389
|
|
- }
|
390
|
|
- ));
|
391
|
|
- } else {
|
392
|
|
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("切换布局").onClick(
|
393
|
|
- new QMUIQuickAction.OnClickListener() {
|
394
|
|
- @Override
|
395
|
|
- public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
396
|
|
- quickAction.dismiss();
|
397
|
|
- Net.vidfloorMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
|
398
|
|
- @Override
|
399
|
|
- public void onRequestComplete(int cmd, String result, Object orgs) {
|
400
|
|
- getMembers();
|
401
|
|
- }
|
|
396
|
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.fullscreen).text("切到主界面").onClick(
|
|
397
|
+ new QMUIQuickAction.OnClickListener() {
|
|
398
|
+ @Override
|
|
399
|
+ public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
|
400
|
+ quickAction.dismiss();
|
|
401
|
+ Net.vidfloorMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
|
|
402
|
+ @Override
|
|
403
|
+ public void onRequestComplete(int cmd, String result, Object orgs) {
|
|
404
|
+ getMembers();
|
|
405
|
+ }
|
402
|
406
|
|
403
|
|
- @Override
|
404
|
|
- public void onRequestError(int cmd, String result, Object orgs) {
|
405
|
|
- }
|
406
|
|
- }, null);
|
407
|
|
- }
|
|
407
|
+ @Override
|
|
408
|
+ public void onRequestError(int cmd, String result, Object orgs) {
|
|
409
|
+ }
|
|
410
|
+ }, null);
|
408
|
411
|
}
|
409
|
|
- ));
|
410
|
|
- }
|
|
412
|
+ }
|
|
413
|
+ ));
|
411
|
414
|
}
|
412
|
415
|
|
413
|
416
|
qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("移除").onClick(
|
|
@@ -454,8 +457,18 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
454
|
457
|
super.onResume();
|
455
|
458
|
if (callstate.equals("来电")) {
|
456
|
459
|
incall_answer.setVisibility(View.VISIBLE);
|
|
460
|
+ incall_mute.setVisibility(View.GONE);
|
|
461
|
+ incall_muteVideo.setVisibility(View.GONE);
|
457
|
462
|
} else {
|
458
|
463
|
incall_answer.setVisibility(View.GONE);
|
|
464
|
+ if (DBUser.mySelf.isManager) {
|
|
465
|
+ incall_mute.setVisibility(View.VISIBLE);
|
|
466
|
+ if (VIDEOSTATE) {
|
|
467
|
+ incall_muteVideo.setVisibility(View.VISIBLE);
|
|
468
|
+ } else {
|
|
469
|
+ incall_muteVideo.setVisibility(View.GONE);
|
|
470
|
+ }
|
|
471
|
+ }
|
459
|
472
|
}
|
460
|
473
|
show.setText(callnumber + callstate);
|
461
|
474
|
//控件显示号码,来电,去电,通话中...
|
|
@@ -585,6 +598,11 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
585
|
598
|
*/
|
586
|
599
|
engineServer.startVideoStream(this, server, rport, lport, payload, BitRate, FrameRate, w, h, c, true);
|
587
|
600
|
VIDEOSTATE = true;
|
|
601
|
+
|
|
602
|
+ if (DBUser.mySelf.isManager) {
|
|
603
|
+ incall_mute.setVisibility(View.VISIBLE);
|
|
604
|
+ incall_muteVideo.setVisibility(View.VISIBLE);
|
|
605
|
+ }
|
588
|
606
|
}
|
589
|
607
|
|
590
|
608
|
}
|
|
@@ -600,11 +618,113 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
600
|
618
|
break;
|
601
|
619
|
case R.id.incall_answer:
|
602
|
620
|
incall_answer.setVisibility(View.GONE);
|
|
621
|
+ if (DBUser.mySelf.isManager) {
|
|
622
|
+ incall_mute.setVisibility(View.VISIBLE);
|
|
623
|
+ }
|
603
|
624
|
SipEngine.getInstance().answer(callid);
|
604
|
625
|
break;
|
|
626
|
+ case R.id.incall_mute:
|
|
627
|
+ muteAll(v);
|
|
628
|
+ break;
|
|
629
|
+ case R.id.incall_muteVideo:
|
|
630
|
+ videomuteAll(v);
|
|
631
|
+ break;
|
605
|
632
|
}
|
606
|
633
|
}
|
607
|
634
|
|
|
635
|
+ public void muteAll(View view) {
|
|
636
|
+ QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this,
|
|
637
|
+ QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56),
|
|
638
|
+ QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56))
|
|
639
|
+ .shadow(true)
|
|
640
|
+ .dimAmount(0.5f)
|
|
641
|
+ .skinManager(QMUISkinManager.defaultInstance(InCallMeetingActivity.this))
|
|
642
|
+ .edgeProtection(QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 20));
|
|
643
|
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.mute).text("全部禁言").onClick(
|
|
644
|
+ new QMUIQuickAction.OnClickListener() {
|
|
645
|
+ @Override
|
|
646
|
+ public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
|
647
|
+ quickAction.dismiss();
|
|
648
|
+ Net.muteMember4Group(callnumber, "all", new HttpUtl.CallBack() {
|
|
649
|
+ @Override
|
|
650
|
+ public void onRequestComplete(int cmd, String result, Object orgs) {
|
|
651
|
+ getMembers();
|
|
652
|
+ }
|
|
653
|
+
|
|
654
|
+ @Override
|
|
655
|
+ public void onRequestError(int cmd, String result, Object orgs) {
|
|
656
|
+ }
|
|
657
|
+ }, null);
|
|
658
|
+ }
|
|
659
|
+ }
|
|
660
|
+ ));
|
|
661
|
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unmute).text("全部取消禁言").onClick(
|
|
662
|
+ new QMUIQuickAction.OnClickListener() {
|
|
663
|
+ @Override
|
|
664
|
+ public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
|
665
|
+ quickAction.dismiss();
|
|
666
|
+ Net.unmuteMember4Group(callnumber, "all", new HttpUtl.CallBack() {
|
|
667
|
+ @Override
|
|
668
|
+ public void onRequestComplete(int cmd, String result, Object orgs) {
|
|
669
|
+ getMembers();
|
|
670
|
+ }
|
|
671
|
+
|
|
672
|
+ @Override
|
|
673
|
+ public void onRequestError(int cmd, String result, Object orgs) {
|
|
674
|
+ }
|
|
675
|
+ }, null);
|
|
676
|
+ }
|
|
677
|
+ }
|
|
678
|
+ ));
|
|
679
|
+ qa.show(view);
|
|
680
|
+ }
|
|
681
|
+
|
|
682
|
+ public void videomuteAll(View view) {
|
|
683
|
+ QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this,
|
|
684
|
+ QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56),
|
|
685
|
+ QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56))
|
|
686
|
+ .shadow(true)
|
|
687
|
+ .dimAmount(0.5f)
|
|
688
|
+ .skinManager(QMUISkinManager.defaultInstance(InCallMeetingActivity.this))
|
|
689
|
+ .edgeProtection(QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 20));
|
|
690
|
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unvideo).text("全部关闭视频").onClick(
|
|
691
|
+ new QMUIQuickAction.OnClickListener() {
|
|
692
|
+ @Override
|
|
693
|
+ public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
|
694
|
+ quickAction.dismiss();
|
|
695
|
+ Net.vmuteMember4Group(callnumber, "all", new HttpUtl.CallBack() {
|
|
696
|
+ @Override
|
|
697
|
+ public void onRequestComplete(int cmd, String result, Object orgs) {
|
|
698
|
+ getMembers();
|
|
699
|
+ }
|
|
700
|
+
|
|
701
|
+ @Override
|
|
702
|
+ public void onRequestError(int cmd, String result, Object orgs) {
|
|
703
|
+ }
|
|
704
|
+ }, null);
|
|
705
|
+ }
|
|
706
|
+ }
|
|
707
|
+ ));
|
|
708
|
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.video).text("全部恢复视频").onClick(
|
|
709
|
+ new QMUIQuickAction.OnClickListener() {
|
|
710
|
+ @Override
|
|
711
|
+ public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
|
712
|
+ quickAction.dismiss();
|
|
713
|
+ Net.unvmuteMember4Group(callnumber, "all", new HttpUtl.CallBack() {
|
|
714
|
+ @Override
|
|
715
|
+ public void onRequestComplete(int cmd, String result, Object orgs) {
|
|
716
|
+ getMembers();
|
|
717
|
+ }
|
|
718
|
+
|
|
719
|
+ @Override
|
|
720
|
+ public void onRequestError(int cmd, String result, Object orgs) {
|
|
721
|
+ }
|
|
722
|
+ }, null);
|
|
723
|
+ }
|
|
724
|
+ }
|
|
725
|
+ ));
|
|
726
|
+ qa.show(view);
|
|
727
|
+ }
|
608
|
728
|
|
609
|
729
|
public void ShowVideoView(boolean show) {
|
610
|
730
|
if (show) {
|