Browse Source

modify

master
chenbin 4 years ago
parent
commit
ad03559dac

+ 164
- 44
app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java View File

@@ -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) {

+ 5
- 1
app/src/main/java/com/tianrun/sipcall/db/DBUser.java View File

@@ -36,11 +36,15 @@ public class DBUser {
36 36
         this.phone = d.getString("extn");
37 37
         this.status = d.getString("sip_state");
38 38
         String weight = d.getString("weight");
39
-        if(weight != null) {
39
+        if (weight != null) {
40 40
             this.isManager = weight.equals("1");
41 41
         } else {
42 42
             this.isManager = false;
43 43
         }
44
+        String ifMute = d.getString("ifMute");
45
+        this.isMute = ifMute != null ? ifMute.equals("true") : false;
46
+        String ifVMute = d.getString("ifVMute");
47
+        this.isVMute = ifVMute != null ? ifVMute.equals("true") : false;
44 48
     }
45 49
 
46 50
     public boolean isBusy() {

+ 11
- 11
app/src/main/java/com/tianrun/sipcall/login/LoginActivity.java View File

@@ -344,17 +344,17 @@ public class LoginActivity extends TrBaseActivity {
344 344
     }
345 345
 
346 346
     public void exit2(View view) {
347
-        Net.login(this.name, this.pw, new HttpUtl.CallBack() {
348
-            @Override
349
-            public void onRequestComplete(int cmd, String result, Object orgs) {
350
-                ActivityMgr.sendMsg(CONS.LOGIN, null);
351
-            }
352
-
353
-            @Override
354
-            public void onRequestError(int cmd, String result, Object orgs) {
355
-                UIUtl.toastI("取得token失败");
356
-            }
357
-        }, null);
347
+//        Net.login(this.name, this.pw, new HttpUtl.CallBack() {
348
+//            @Override
349
+//            public void onRequestComplete(int cmd, String result, Object orgs) {
350
+//                ActivityMgr.sendMsg(CONS.LOGIN, null);
351
+//            }
352
+//
353
+//            @Override
354
+//            public void onRequestError(int cmd, String result, Object orgs) {
355
+//                UIUtl.toastI("取得token失败");
356
+//            }
357
+//        }, null);
358 358
 
359 359
     }
360 360
 }

+ 2
- 2
app/src/main/java/com/tianrun/sipcall/login/MainActivity.java View File

@@ -404,7 +404,7 @@ public class MainActivity extends TrBaseActivity {
404 404
                                     public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
405 405
                                         quickAction.dismiss();
406 406
                                         QMUITipDialog dialog = UIUtl.toastLoading("");
407
-                                        Net.kickMember4Group(currSelectData.id, d.phone, new HttpUtl.CallBack() {
407
+                                        Net.kickMember4Group(currSelectData.audio_code, d.phone, new HttpUtl.CallBack() {
408 408
                                             @Override
409 409
                                             public void onRequestComplete(int cmd, String result, Object orgs) {
410 410
                                                 UIUtl.toastS("移除分机成功");
@@ -478,7 +478,7 @@ public class MainActivity extends TrBaseActivity {
478 478
                         members = members + phNum + ",";
479 479
                     }
480 480
 
481
-                    Net.addMember2Group(currSelectData.id, members, new HttpUtl.CallBack() {
481
+                    Net.addMember2Group(currSelectData.audio_code, members, new HttpUtl.CallBack() {
482 482
                         @Override
483 483
                         public void onRequestComplete(int cmd, String result, Object orgs) {
484 484
                             Net.getGroupMenbers(currSelectData.id, null, currSelectData.id);

+ 0
- 2
app/src/main/java/com/tianrun/sipcall/net/Net.java View File

@@ -128,7 +128,6 @@ public class Net {
128 128
         HttpUtl.doPostAsyn(url, _params, _callback, CMD_deleteGroup, params);
129 129
     }
130 130
 
131
-    //TODO:确认下参数
132 131
     public static void addMember2Group(String task_uuid, String members, HttpUtl.CallBack callBack, Object orgs) {
133 132
         String url = "http://" + ip + ":" + port + "/api/conferences/conference/add";
134 133
         String _params = "opr_nbr=" + task_uuid + "&opr_member=" + members;
@@ -136,7 +135,6 @@ public class Net {
136 135
         HttpUtl.doPostAsyn(url, _params, _callback, CMD_addUser2Group, params);
137 136
     }
138 137
 
139
-    //TODO:确认下参数
140 138
     public static void kickMember4Group(String task_uuid, String members, HttpUtl.CallBack callBack, Object orgs) {
141 139
         String url = "http://" + ip + ":" + port + "/api/conferences/conference/update";
142 140
         String _params = "opr_nbr=" + task_uuid + "&opr_member=" + members + "&opr_action=kick";

BIN
app/src/main/res/drawable-hdpi/fullscreen.png View File


BIN
app/src/main/res/drawable-hdpi/kick.png View File


BIN
app/src/main/res/drawable-hdpi/mute.png View File


BIN
app/src/main/res/drawable-hdpi/unmute.png View File


BIN
app/src/main/res/drawable-hdpi/unvideo.png View File


+ 2
- 2
app/src/main/res/layout/activity_login.xml View File

@@ -91,7 +91,7 @@
91 91
                 android:textSize="20sp" />
92 92
 
93 93
             <Button
94
-                android:layout_width="fill_parent"
94
+                android:layout_width="match_parent"
95 95
                 android:layout_height="wrap_content"
96 96
                 android:layout_marginLeft="10dp"
97 97
                 android:layout_marginTop="10dp"
@@ -101,7 +101,7 @@
101 101
                 android:text="退出"
102 102
                 android:textColor="#FFFFFF"
103 103
                 android:textSize="20sp"
104
-                android:visibility="visible" />
104
+                android:visibility="invisible" />
105 105
         </LinearLayout>
106 106
     </ScrollView>
107 107
 

+ 19
- 0
app/src/main/res/layout/incallmeetingactivity.xml View File

@@ -89,6 +89,24 @@
89 89
         android:layout_marginStart="160dp"
90 90
         android:orientation="horizontal">
91 91
 
92
+        <ImageButton
93
+            android:id="@+id/incall_mute"
94
+            android:layout_width="0dp"
95
+            android:layout_height="fill_parent"
96
+            android:layout_weight="1"
97
+            android:background="@drawable/qmui_divider"
98
+            android:src="@drawable/voice2"
99
+            tools:visibility="visible" />
100
+
101
+        <ImageButton
102
+            android:id="@+id/incall_muteVideo"
103
+            android:layout_width="0dp"
104
+            android:layout_height="fill_parent"
105
+            android:layout_weight="1"
106
+            android:background="@drawable/qmui_divider"
107
+            android:src="@drawable/unvideo"
108
+            tools:visibility="visible" />
109
+
92 110
         <ImageButton
93 111
             android:id="@+id/incall_answer"
94 112
             android:layout_width="0dp"
@@ -105,6 +123,7 @@
105 123
             android:layout_weight="1"
106 124
             android:background="@drawable/call_hangup_background"
107 125
             android:src="@drawable/phone3" />
126
+
108 127
     </LinearLayout>
109 128
 
110 129
     <com.qmuiteam.qmui.widget.tab.QMUITabSegment

Loading…
Cancel
Save