chenbin 4 gadus atpakaļ
vecāks
revīzija
b0704fee96

+ 97
- 70
app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java Parādīt failu

@@ -324,54 +324,33 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
324 324
                             .skinManager(QMUISkinManager.defaultInstance(InCallMeetingActivity.this))
325 325
                             .edgeProtection(QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 20));
326 326
                     if (DBUser.mySelf.isManager) {
327
-                        if (d.isMute) {
328
-                            qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unmute).text("取消禁言").onClick(
329
-                                    new QMUIQuickAction.OnClickListener() {
330
-                                        @Override
331
-                                        public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
332
-                                            quickAction.dismiss();
333
-                                            Net.unmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
334
-                                                @Override
335
-                                                public void onRequestComplete(int cmd, String result, Object orgs) {
336
-                                                    getMembers();
337
-                                                }
338
-
339
-                                                @Override
340
-                                                public void onRequestError(int cmd, String result, Object orgs) {
341
-                                                }
342
-                                            }, null);
343
-                                        }
344
-                                    }
345
-                            ));
346
-                        } else {
347
-                            qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.mute).text("禁言").onClick(
348
-                                    new QMUIQuickAction.OnClickListener() {
349
-                                        @Override
350
-                                        public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
351
-                                            quickAction.dismiss();
352
-                                            Net.muteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
353
-                                                @Override
354
-                                                public void onRequestComplete(int cmd, String result, Object orgs) {
355
-                                                    getMembers();
356
-                                                }
327
+                        if(d.isBusy()) {
328
+                            if (d.isMute) {
329
+                                qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unmute).text("取消禁言").onClick(
330
+                                        new QMUIQuickAction.OnClickListener() {
331
+                                            @Override
332
+                                            public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
333
+                                                quickAction.dismiss();
334
+                                                Net.unmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
335
+                                                    @Override
336
+                                                    public void onRequestComplete(int cmd, String result, Object orgs) {
337
+                                                        getMembers();
338
+                                                    }
357 339
 
358
-                                                @Override
359
-                                                public void onRequestError(int cmd, String result, Object orgs) {
360
-                                                }
361
-                                            }, null);
340
+                                                    @Override
341
+                                                    public void onRequestError(int cmd, String result, Object orgs) {
342
+                                                    }
343
+                                                }, null);
344
+                                            }
362 345
                                         }
363
-                                    }
364
-                            ));
365
-                        }
366
-
367
-                        if (VIDEOSTATE) {
368
-                            if (d.isVMute) {
369
-                                qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.video).text("恢复视频").onClick(
346
+                                ));
347
+                            } else {
348
+                                qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.mute).text("禁言").onClick(
370 349
                                         new QMUIQuickAction.OnClickListener() {
371 350
                                             @Override
372 351
                                             public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
373 352
                                                 quickAction.dismiss();
374
-                                                Net.unvmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
353
+                                                Net.muteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
375 354
                                                     @Override
376 355
                                                     public void onRequestComplete(int cmd, String result, Object orgs) {
377 356
                                                         getMembers();
@@ -384,13 +363,55 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
384 363
                                             }
385 364
                                         }
386 365
                                 ));
387
-                            } else {
388
-                                qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unvideo).text("停止视频").onClick(
366
+                            }
367
+
368
+                            if (VIDEOSTATE) {
369
+                                if (d.isVMute) {
370
+                                    qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.video).text("恢复视频").onClick(
371
+                                            new QMUIQuickAction.OnClickListener() {
372
+                                                @Override
373
+                                                public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
374
+                                                    quickAction.dismiss();
375
+                                                    Net.unvmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
376
+                                                        @Override
377
+                                                        public void onRequestComplete(int cmd, String result, Object orgs) {
378
+                                                            getMembers();
379
+                                                        }
380
+
381
+                                                        @Override
382
+                                                        public void onRequestError(int cmd, String result, Object orgs) {
383
+                                                        }
384
+                                                    }, null);
385
+                                                }
386
+                                            }
387
+                                    ));
388
+                                } else {
389
+                                    qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unvideo).text("停止视频").onClick(
390
+                                            new QMUIQuickAction.OnClickListener() {
391
+                                                @Override
392
+                                                public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
393
+                                                    quickAction.dismiss();
394
+                                                    Net.vmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
395
+                                                        @Override
396
+                                                        public void onRequestComplete(int cmd, String result, Object orgs) {
397
+                                                            getMembers();
398
+                                                        }
399
+
400
+                                                        @Override
401
+                                                        public void onRequestError(int cmd, String result, Object orgs) {
402
+                                                        }
403
+                                                    }, null);
404
+                                                }
405
+                                            }
406
+                                    ));
407
+                                }
408
+
409
+                                qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.fullscreen).text("主界面").onClick(
389 410
                                         new QMUIQuickAction.OnClickListener() {
390 411
                                             @Override
391 412
                                             public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
392 413
                                                 quickAction.dismiss();
393
-                                                Net.vmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
414
+                                                Net.vidfloorMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
394 415
                                                     @Override
395 416
                                                     public void onRequestComplete(int cmd, String result, Object orgs) {
396 417
                                                         getMembers();
@@ -405,48 +426,54 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
405 426
                                 ));
406 427
                             }
407 428
 
408
-                            qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.fullscreen).text("主界面").onClick(
429
+                            qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("移除").onClick(
409 430
                                     new QMUIQuickAction.OnClickListener() {
410 431
                                         @Override
411 432
                                         public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
412 433
                                             quickAction.dismiss();
413
-                                            Net.vidfloorMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
434
+                                            QMUITipDialog dialog = UIUtl.toastLoading("");
435
+                                            Net.kickMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
414 436
                                                 @Override
415 437
                                                 public void onRequestComplete(int cmd, String result, Object orgs) {
438
+                                                    UIUtl.toastS("移除分机成功");
416 439
                                                     getMembers();
440
+                                                    dialog.dismiss();
417 441
                                                 }
418 442
 
419 443
                                                 @Override
420 444
                                                 public void onRequestError(int cmd, String result, Object orgs) {
445
+                                                    dialog.dismiss();
421 446
                                                 }
422 447
                                             }, null);
423 448
                                         }
424 449
                                     }
425 450
                             ));
426
-                        }
427
-
428
-                        qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("移除").onClick(
429
-                                new QMUIQuickAction.OnClickListener() {
430
-                                    @Override
431
-                                    public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
432
-                                        quickAction.dismiss();
433
-                                        QMUITipDialog dialog = UIUtl.toastLoading("");
434
-                                        Net.kickMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
435
-                                            @Override
436
-                                            public void onRequestComplete(int cmd, String result, Object orgs) {
437
-                                                UIUtl.toastS("移除分机成功");
438
-                                                getMembers();
439
-                                                dialog.dismiss();
440
-                                            }
451
+                        } else if (d.isOnline()) {
452
+                            //空闲的可以加入进来
453
+                            qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.add).text("加入会议").onClick(
454
+                                    new QMUIQuickAction.OnClickListener() {
455
+                                        @Override
456
+                                        public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
457
+                                            quickAction.dismiss();
458
+                                            QMUITipDialog dialog = UIUtl.toastLoading("");
459
+                                            Net.addMember2Group(callnumber, d.phone, new HttpUtl.CallBack() {
460
+                                                @Override
461
+                                                public void onRequestComplete(int cmd, String result, Object orgs) {
462
+                                                    UIUtl.toastS("加入会议成功");
463
+                                                    getMembers();
464
+                                                    dialog.dismiss();
465
+                                                }
441 466
 
442
-                                            @Override
443
-                                            public void onRequestError(int cmd, String result, Object orgs) {
444
-                                                dialog.dismiss();
445
-                                            }
446
-                                        }, null);
467
+                                                @Override
468
+                                                public void onRequestError(int cmd, String result, Object orgs) {
469
+                                                    dialog.dismiss();
470
+                                                }
471
+                                            }, null);
472
+                                        }
447 473
                                     }
448
-                                }
449
-                        ));
474
+                            ));
475
+
476
+                        }
450 477
                     }
451 478
                     qa.show(view);
452 479
                 }
@@ -770,7 +797,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
770 797
         List<String> list = new ArrayList<>();
771 798
         List<String> listPhone = new ArrayList<>();
772 799
         for (DBUser u : DBUser.allUser) {
773
-            if (!containMember(u.phone)) {
800
+            if (!containMember(u.phone) || u.isOnline()) {
774 801
                 listPhone.add(u.phone);
775 802
                 list.add(u.phone + " | " + u.name);
776 803
             }

+ 1
- 0
app/src/main/java/com/tianrun/sipcall/db/DBRoot.java Parādīt failu

@@ -19,6 +19,7 @@ public class DBRoot {
19 19
             case  Net.CMD_getGroupMenbers:
20 20
                 JSONObject o = JSONObject.parseObject(content);
21 21
                 DBGroup.onGetGroupMembers(o);
22
+                DBUser.onGetGroupMembers(o);
22 23
                 break;
23 24
             default:
24 25
                 break;

+ 23
- 0
app/src/main/java/com/tianrun/sipcall/db/DBUser.java Parādīt failu

@@ -72,6 +72,29 @@ public class DBUser {
72 72
         }
73 73
     }
74 74
 
75
+    public static void refreshUser(DBUser user) {
76
+        for(int i=0; i < allUser.size();i++) {
77
+            DBUser u = allUser.get(i);
78
+            if(u.phone.equals(user.phone)) {
79
+                allUser.set(i, user);
80
+                mapUsers.put(user.phone, user);
81
+                return;
82
+            }
83
+        }
84
+        allUser.add(user);
85
+        mapUsers.put(user.phone, user);
86
+    }
87
+
88
+    public static void onGetGroupMembers(JSONObject content) {
89
+        DBGroup group = new DBGroup();
90
+        group.head = new DBHead(content);
91
+        JSONArray array = content.getJSONArray("members_msg");
92
+        for (Object o : array) {
93
+            DBUser u = new DBUser((JSONObject) o);
94
+            refreshUser(u);
95
+        }
96
+    }
97
+
75 98
     public static DBUser getUser(String phoneNo) {
76 99
         return mapUsers.get(phoneNo);
77 100
     }

+ 6
- 11
app/src/main/java/com/tianrun/sipcall/login/MainActivity.java Parādīt failu

@@ -4,11 +4,13 @@ import android.content.Context;
4 4
 import android.content.DialogInterface;
5 5
 import android.content.Intent;
6 6
 import android.graphics.Color;
7
+import android.graphics.drawable.Drawable;
7 8
 import android.media.AudioManager;
8 9
 import android.os.Build;
9 10
 import android.os.Bundle;
10 11
 import android.os.Handler;
11 12
 import android.os.Message;
13
+import android.os.ParcelUuid;
12 14
 import android.view.View;
13 15
 import android.view.ViewGroup;
14 16
 import android.widget.AdapterView;
@@ -19,6 +21,7 @@ import android.widget.TextView;
19 21
 
20 22
 import androidx.annotation.NonNull;
21 23
 import androidx.annotation.RequiresApi;
24
+import androidx.core.content.ContextCompat;
22 25
 import androidx.viewpager.widget.PagerAdapter;
23 26
 import androidx.viewpager.widget.ViewPager;
24 27
 
@@ -213,6 +216,7 @@ public class MainActivity extends TrBaseActivity {
213 216
         mTabSegment.notifyDataChanged();
214 217
     }
215 218
 
219
+    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
216 220
     private void initTabAndPager() {
217 221
         mContentViewPager.setAdapter(mPagerAdapter);
218 222
 //        mContentViewPager.setCurrentItem(mDestPage.getPosition(), false);
@@ -220,7 +224,7 @@ public class MainActivity extends TrBaseActivity {
220 224
         for (int i = 0; i < headers.size(); i++) {
221 225
             mTabSegment.addTab(tabBuilder.setText(headers.get(i).name).build(this));
222 226
         }
223
-        int space = QMUIDisplayHelper.dp2px(this, 16);
227
+        int space = QMUIDisplayHelper.dp2px(this, 17);
224 228
         mTabSegment.setIndicator(new QMUITabIndicator(
225 229
                 QMUIDisplayHelper.dp2px(this, 2), false, true));
226 230
         mTabSegment.setMode(QMUITabSegment.MODE_SCROLLABLE);
@@ -615,16 +619,7 @@ public class MainActivity extends TrBaseActivity {
615 619
     }
616 620
 
617 621
     public void logout(View v) {
618
-        SipEngine.getInstance().onLine = false;
619
-        SipEngine.getInstance().isRelogin = true;
620
-//        SipEngine.getInstance().Unregister();
621
-//        SipEngine.getInstance().stop();
622
-        Intent intent = new Intent(App.getContext(), LoginActivity.class);
623
-        Bundle bundle = new Bundle();
624
-        bundle.putBoolean("donotAutoLogin", true);
625
-        intent.putExtras(bundle);
626
-        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
627
-        startActivity(intent);
622
+        UIUtl.doLogout();
628 623
         finish();
629 624
     }
630 625
 

+ 4
- 1
app/src/main/java/com/tianrun/sipcall/net/Net.java Parādīt failu

@@ -72,7 +72,10 @@ public class Net {
72 72
                     }
73 73
                 });
74 74
             }
75
-            UIUtl.toastI(result);
75
+//            UIUtl.toastI(result);
76
+            if(cmd == CMD_getUsers) {
77
+                UIUtl.doLogout();
78
+            }
76 79
         }
77 80
     };
78 81
 

+ 22
- 0
app/src/main/java/com/tianrun/sipcall/ui/UIUtl.java Parādīt failu

@@ -1,6 +1,8 @@
1 1
 package com.tianrun.sipcall.ui;
2 2
 
3 3
 import android.content.Context;
4
+import android.content.Intent;
5
+import android.os.Bundle;
4 6
 import android.view.View;
5 7
 import android.widget.AdapterView;
6 8
 import android.widget.GridView;
@@ -12,6 +14,9 @@ import com.qmuiteam.qmui.skin.QMUISkinManager;
12 14
 import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
13 15
 import com.qmuiteam.qmui.widget.dialog.QMUITipDialog;
14 16
 import com.tianrun.sipcall.App;
17
+import com.tianrun.sipcall.SipEngine;
18
+import com.tianrun.sipcall.login.LoginActivity;
19
+import com.tianrun.sipcall.utils.HttpUtl;
15 20
 
16 21
 import java.util.List;
17 22
 
@@ -168,4 +173,21 @@ public class UIUtl {
168 173
         }
169 174
         builder.build().show();
170 175
     }
176
+
177
+    public static void doLogout() {
178
+        UIUtl.toastI("Token 失效");
179
+        HttpUtl.token = null;
180
+        ActivityMgr.hideAll();
181
+        SipEngine.getInstance().onLine = false;
182
+        SipEngine.getInstance().isRelogin = true;
183
+//        SipEngine.getInstance().Unregister();
184
+//        SipEngine.getInstance().stop();
185
+        Intent intent = new Intent(App.getContext(), LoginActivity.class);
186
+        Bundle bundle = new Bundle();
187
+        bundle.putBoolean("donotAutoLogin", true);
188
+        intent.putExtras(bundle);
189
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
190
+//                ActivityMgr.topActivity.startActivity(intent);
191
+        App.getInstance().startActivity(intent);
192
+    }
171 193
 }

+ 9
- 16
app/src/main/java/com/tianrun/sipcall/utils/HttpUtl.java Parādīt failu

@@ -160,6 +160,7 @@ public class HttpUtl {
160 160
                 checkTokenFailed(retCode);
161 161
                 return "";
162 162
             } else {
163
+                UIUtl.toastI("内部错误");
163 164
                 throw new RuntimeException(" responseCode :" + retCode);
164 165
             }
165 166
 
@@ -184,20 +185,7 @@ public class HttpUtl {
184 185
 
185 186
     static void checkTokenFailed(int code) {
186 187
         if (code == 401) {
187
-            UIUtl.toastI("Token 失效");
188
-            token = null;
189
-            ActivityMgr.hideAll();
190
-            SipEngine.getInstance().onLine = false;
191
-            SipEngine.getInstance().isRelogin = true;
192
-//        SipEngine.getInstance().Unregister();
193
-//        SipEngine.getInstance().stop();
194
-            Intent intent = new Intent(App.getContext(), LoginActivity.class);
195
-            Bundle bundle = new Bundle();
196
-            bundle.putBoolean("donotAutoLogin", true);
197
-            intent.putExtras(bundle);
198
-            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
199
-//                ActivityMgr.topActivity.startActivity(intent);
200
-            App.getInstance().startActivity(intent);
188
+            UIUtl.doLogout();
201 189
         }
202 190
     }
203 191
 
@@ -209,7 +197,7 @@ public class HttpUtl {
209 197
      * @return 所代表远程资源的响应结果
210 198
      * @throws Exception
211 199
      */
212
-    public static String doPost(String url, String param) {
200
+    public static String doPost(String url, String param) throws Exception {
213 201
         PrintWriter out = null;
214 202
         BufferedReader in = null;
215 203
         String result = "";
@@ -252,7 +240,12 @@ public class HttpUtl {
252 240
             }
253 241
 
254 242
             int retCode = conn.getResponseCode();
255
-            checkTokenFailed(retCode);
243
+            if(retCode == 401) {
244
+                checkTokenFailed(retCode);
245
+            } else {
246
+                UIUtl.toastI("内部错误");
247
+                throw new RuntimeException(" responseCode :" + retCode);
248
+            }
256 249
         } catch (Exception e) {
257 250
             e.printStackTrace();
258 251
             Log.i("http", e.toString());

+ 1
- 1
app/src/main/res/layout/activity_login.xml Parādīt failu

@@ -269,7 +269,7 @@
269 269
                 android:text="退出"
270 270
                 android:textColor="#FFFFFF"
271 271
                 android:textSize="20sp"
272
-                android:visibility="invisible" />
272
+                android:visibility="visible" />
273 273
 
274 274
         </LinearLayout>
275 275
     </ScrollView>

Notiek ielāde…
Atcelt
Saglabāt