From 74928e6e4949614513c9bbc5271f6a0a940b120e Mon Sep 17 00:00:00 2001 From: chenbin Date: Mon, 28 Sep 2020 17:07:11 +0800 Subject: [PATCH] bug fix --- .../java/com/tianrun/sipcall/SipEngine.java | 13 ++++++++--- .../sipcall/call/CreateGroupActivity.java | 5 ++++- .../sipcall/call/CreateMeetingActivity.java | 5 ++++- .../tianrun/sipcall/call/InCallActivity.java | 3 +++ .../sipcall/call/InCallMeetingActivity.java | 22 +++++++++++++++---- .../java/com/tianrun/sipcall/db/DBGroup.java | 5 +++++ .../java/com/tianrun/sipcall/db/DBRoot.java | 4 ++++ .../tianrun/sipcall/login/MainActivity.java | 13 ++++++++--- .../tianrun/sipcall/ui/TrBaseActivity.java | 1 + .../java/com/tianrun/sipcall/utils/CONS.java | 1 + .../com/tianrun/sipcall/utils/HttpUtl.java | 4 +++- app/src/main/res/layout/activity_login.xml | 2 +- .../main/res/layout/incallmeetingactivity.xml | 8 ++++--- 13 files changed, 69 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/tianrun/sipcall/SipEngine.java b/app/src/main/java/com/tianrun/sipcall/SipEngine.java index 80a91e8..8830168 100644 --- a/app/src/main/java/com/tianrun/sipcall/SipEngine.java +++ b/app/src/main/java/com/tianrun/sipcall/SipEngine.java @@ -4,6 +4,7 @@ package com.tianrun.sipcall; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import com.tianrun.sipcall.call.CallMediaUtils; import com.tianrun.sipcall.call.InCallActivity; @@ -220,8 +221,13 @@ public class SipEngine implements BluetelInterface { @Override public void NotifyCallMediaState(int callid, int r, int l, int payload) { - logmy.e("NotifyCallMediaState" + callid + "<>" + r + "<>" + l + "<>" + payload); - ActivityMgr.sendMsg(CONS.MEDIASTATE, new CallMediaUtils(callid, payload, r, l)); + logmy.e("NotifyCallMediaState=========" + callid + "<>" + r + "<>" + l + "<>" + payload); + ActivityMgr.topActivity.handler.postDelayed(new Runnable() { + @Override + public void run() { + ActivityMgr.sendMsg(CONS.MEDIASTATE, new CallMediaUtils(callid, payload, r, l)); + } + }, 500); } @Override @@ -266,9 +272,10 @@ public class SipEngine implements BluetelInterface { * @return */ public int CallNumber(String number, boolean isVideo) { - int callid = myBluetelEngine.CallNumber(number, ip, port, isVideo); int calltype = isVideo ? 0 : 1; + int callid = myBluetelEngine.CallNumber(number, ip, port, isVideo); GoToInCall(App.getContext(), number, "呼叫中", calltype, callid); + callPagesConfig.add(new InCallUtils(number, false, isVideo, 0, 0, number, "呼叫中", false, 0, callid)); return callid; } diff --git a/app/src/main/java/com/tianrun/sipcall/call/CreateGroupActivity.java b/app/src/main/java/com/tianrun/sipcall/call/CreateGroupActivity.java index 1a63d44..1eb0a16 100644 --- a/app/src/main/java/com/tianrun/sipcall/call/CreateGroupActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/call/CreateGroupActivity.java @@ -164,7 +164,7 @@ public class CreateGroupActivity extends TrBaseActivity { for (DBUser u : DBUser.allUser) { if (mapUsers.get(u.phone) == null) { listPhone.add(u.phone); - list.add(u.phone + " | " + u.name); + list.add(u.phone + " " + u.name); } } if(list.size() == 0) { @@ -218,6 +218,9 @@ public class CreateGroupActivity extends TrBaseActivity { str = str + us.phone + ","; } } + if(str.length() > 0) { + str = str.substring(0, str.length() - 1); + } return str; } diff --git a/app/src/main/java/com/tianrun/sipcall/call/CreateMeetingActivity.java b/app/src/main/java/com/tianrun/sipcall/call/CreateMeetingActivity.java index 1f6fac7..4d185a4 100644 --- a/app/src/main/java/com/tianrun/sipcall/call/CreateMeetingActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/call/CreateMeetingActivity.java @@ -178,7 +178,7 @@ public class CreateMeetingActivity extends TrBaseActivity { for (DBUser u : DBUser.allUser) { if (mapUsers.get(u.phone) == null && u.isOnline()) { // 只有空闲的才加入 listPhone.add(u.phone); - list.add(u.phone + " | " + u.name); + list.add(u.phone + " " + u.name); } } if(list.size() == 0) { @@ -236,6 +236,9 @@ public class CreateMeetingActivity extends TrBaseActivity { str = str + us.phone + ","; } } + if(str.length() > 0) { + str = str.substring(0, str.length() - 1); + } return str; } diff --git a/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java b/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java index 68fec1f..5635da8 100644 --- a/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/call/InCallActivity.java @@ -240,6 +240,9 @@ public class InCallActivity extends TrBaseActivity implements OnClickListener { @Override public boolean handleMessage(Message m) { switch (m.what) { + case CONS.ONGETCALLID: + callid = (int)m.obj; + break; case CONS.CALLSTATE: callstate = (String) m.obj; show.setText(callnumber + callstate); diff --git a/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java b/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java index a1b9c17..259ba84 100644 --- a/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java @@ -149,11 +149,14 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList getMembers(); getMemberTimer(); initTabAndPager(); + mTabSegment.setVisibility(View.INVISIBLE); } static void getMemberTimer() { - CONS.SENDMESSAGETO(handler_CallActivity, -1, null); - handler_CallActivity.postDelayed(getMemberRunner, 2000); + if(handler_CallActivity != null) { + CONS.SENDMESSAGETO(handler_CallActivity, -1, null); + handler_CallActivity.postDelayed(getMemberRunner, 2000); + } } static Runnable getMemberRunner = new Runnable() { @Override @@ -316,6 +319,9 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList return; } DBUser d = (DBUser) data; + if(d.isOffline()) { + return; + } QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this, QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56), QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56)) @@ -564,6 +570,9 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList @Override public boolean handleMessage(Message m) { switch (m.what) { + case CONS.ONGETCALLID: + callid = (int)m.obj; + break; case CONS.CALLSTATE: callstate = (String) m.obj; show.setText(callnumber + callstate); @@ -578,10 +587,12 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList int l = utils.getL(); int payload = utils.getPayload(); if (r != 0 || l != 0) { + mTabSegment.setVisibility(View.VISIBLE); //开始视频 ShowVideoView(true); startVideoStream(SipEngine.getInstance().getip(), r, l, payload); } else { + mTabSegment.setVisibility(View.INVISIBLE); //开始音频 stopVideoStream(false); ShowVideoView(false); @@ -620,7 +631,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList break; } c = 0; - logmy.e(callnumber + "--" + server + "--" + rport + "--" + lport); + logmy.e("startVideoStream=============="+ callnumber + "--" + server + "--" + rport + "--" + lport); if (engineServer != null) { ShowVideoView(true); /* @@ -799,7 +810,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList for (DBUser u : DBUser.allUser) { if (!containMember(u.phone) || u.isOnline()) { listPhone.add(u.phone); - list.add(u.phone + " | " + u.name); + list.add(u.phone + " " + u.name); } } if (list.size() == 0) { @@ -836,6 +847,9 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList String phNum = listPhone.get(selectIndexs[i]); members = members + phNum + ","; } + if(members.length() > 0) { + members = members.substring(0, members.length() - 1); + } Net.addMember2Group(callnumber, members, new HttpUtl.CallBack() { @Override diff --git a/app/src/main/java/com/tianrun/sipcall/db/DBGroup.java b/app/src/main/java/com/tianrun/sipcall/db/DBGroup.java index 02270b4..69cfccf 100644 --- a/app/src/main/java/com/tianrun/sipcall/db/DBGroup.java +++ b/app/src/main/java/com/tianrun/sipcall/db/DBGroup.java @@ -1,11 +1,16 @@ package com.tianrun.sipcall.db; +import android.os.Build; + +import androidx.annotation.RequiresApi; + import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; public class DBGroup { public DBHead head; diff --git a/app/src/main/java/com/tianrun/sipcall/db/DBRoot.java b/app/src/main/java/com/tianrun/sipcall/db/DBRoot.java index 912bc3b..3e3c6a1 100644 --- a/app/src/main/java/com/tianrun/sipcall/db/DBRoot.java +++ b/app/src/main/java/com/tianrun/sipcall/db/DBRoot.java @@ -1,5 +1,9 @@ package com.tianrun.sipcall.db; +import android.os.Build; + +import androidx.annotation.RequiresApi; + import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.tianrun.sipcall.net.Net; diff --git a/app/src/main/java/com/tianrun/sipcall/login/MainActivity.java b/app/src/main/java/com/tianrun/sipcall/login/MainActivity.java index cbff21d..3a9b49c 100644 --- a/app/src/main/java/com/tianrun/sipcall/login/MainActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/login/MainActivity.java @@ -75,7 +75,7 @@ public class MainActivity extends TrBaseActivity { AudioManager audioManager; ImageView buttonAddVol; ImageView buttonDelVol; - DBHead currSelectData; + public static DBHead currSelectData; ImageView imageViewSelfStatus; TextView textViewSelfStatus; @@ -346,7 +346,11 @@ public class MainActivity extends TrBaseActivity { } public static void getUsersData() { - Net.getUsers(null, null); + if(currSelectData != null && !currSelectData.isAll()) { + Net.getGroupMenbers(currSelectData.id, null, currSelectData.id); + } else { + Net.getUsers(null, null); + } mainHandler.postDelayed(runGetUsers, 3000); } @@ -464,7 +468,7 @@ public class MainActivity extends TrBaseActivity { for (DBUser u : DBUser.allUser) { if (!group.containsUser(u.phone)) { listPhone.add(u.phone); - list.add(u.phone + " | " + u.name); + list.add(u.phone + " " + u.name); } } if (list.size() == 0) { @@ -501,6 +505,9 @@ public class MainActivity extends TrBaseActivity { String phNum = listPhone.get(selectIndexs[i]); members = members + phNum + ","; } + if(members.length() > 0) { + members = members.substring(0, members.length() - 1); + } Net.addMember2Group(currSelectData.audio_code, members, new HttpUtl.CallBack() { @Override diff --git a/app/src/main/java/com/tianrun/sipcall/ui/TrBaseActivity.java b/app/src/main/java/com/tianrun/sipcall/ui/TrBaseActivity.java index 952a00a..3af3f00 100644 --- a/app/src/main/java/com/tianrun/sipcall/ui/TrBaseActivity.java +++ b/app/src/main/java/com/tianrun/sipcall/ui/TrBaseActivity.java @@ -28,6 +28,7 @@ public class TrBaseActivity extends AppCompatActivity implements Handler.Callbac @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); + ActivityMgr.onShowActivity(this); } @Override diff --git a/app/src/main/java/com/tianrun/sipcall/utils/CONS.java b/app/src/main/java/com/tianrun/sipcall/utils/CONS.java index a0e4689..d769def 100644 --- a/app/src/main/java/com/tianrun/sipcall/utils/CONS.java +++ b/app/src/main/java/com/tianrun/sipcall/utils/CONS.java @@ -33,6 +33,7 @@ public class CONS { public static final int INCOMINGMESSAGE = 208;//来短信了 public static final int showpic = 209; public static final int LOGINFAILED = 210; + public static final int ONGETCALLID = 211; public static void SENDMESSAGETO(Handler handler, int menu, Object object) { if (handler != null) { diff --git a/app/src/main/java/com/tianrun/sipcall/utils/HttpUtl.java b/app/src/main/java/com/tianrun/sipcall/utils/HttpUtl.java index e89f3af..7fdd7e4 100644 --- a/app/src/main/java/com/tianrun/sipcall/utils/HttpUtl.java +++ b/app/src/main/java/com/tianrun/sipcall/utils/HttpUtl.java @@ -240,7 +240,9 @@ public class HttpUtl { } int retCode = conn.getResponseCode(); - if(retCode == 401) { + + if (retCode == 200) { + } else if(retCode == 401) { checkTokenFailed(retCode); } else { UIUtl.toastI("内部错误"); diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 9826982..2a07051 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -269,7 +269,7 @@ android:text="退出" android:textColor="#FFFFFF" android:textSize="20sp" - android:visibility="visible" /> + android:visibility="invisible" /> diff --git a/app/src/main/res/layout/incallmeetingactivity.xml b/app/src/main/res/layout/incallmeetingactivity.xml index fc5eb4a..3ba39cb 100644 --- a/app/src/main/res/layout/incallmeetingactivity.xml +++ b/app/src/main/res/layout/incallmeetingactivity.xml @@ -4,7 +4,9 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/IncallMeetingRoot" android:layout_width="fill_parent" - android:layout_height="fill_parent"> + android:layout_height="fill_parent" + android:background="@drawable/callbackground" + android:visibility="visible"> + android:visibility="invisible"> + android:visibility="invisible">