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 1c25cc7..dc06a66 100644
--- a/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java
+++ b/app/src/main/java/com/tianrun/sipcall/call/InCallMeetingActivity.java
@@ -2,7 +2,6 @@ package com.tianrun.sipcall.call;
import android.annotation.SuppressLint;
-import android.app.Activity;
import android.app.KeyguardManager;
import android.content.Context;
import android.content.DialogInterface;
@@ -39,10 +38,8 @@ import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.tianrun.sipcall.R;
import com.tianrun.sipcall.SipEngine;
-import com.tianrun.sipcall.db.DBGroup;
import com.tianrun.sipcall.db.DBUser;
import com.tianrun.sipcall.db.UserMeetingViews;
-import com.tianrun.sipcall.db.UserViews;
import com.tianrun.sipcall.net.Net;
import com.tianrun.sipcall.ui.TrAdapter;
import com.tianrun.sipcall.ui.TrBaseActivity;
@@ -70,6 +67,8 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
private SMPercentFrameLayout remoteRenderLayout;
private ImageButton incall_answer, incall_hangup;
private View imageButtonAddUser;
+ ImageButton incall_mute;
+ ImageButton incall_muteVideo;
private TextView show;
GridView gridUser;
QMUITabSegment mTabSegment;
@@ -166,6 +165,13 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
remoteRenderLayout = (SMPercentFrameLayout) findViewById(R.id.remote_video_layout);
engineServer = new EngineServer(localRender, remoteRender, localRenderLayout, remoteRenderLayout, true);
+ incall_mute = findViewById(R.id.incall_mute);
+ incall_mute.setOnClickListener(this);
+ incall_muteVideo = findViewById(R.id.incall_muteVideo);
+ incall_muteVideo.setOnClickListener(this);
+ incall_mute.setVisibility(View.INVISIBLE);
+ incall_muteVideo.setVisibility(View.INVISIBLE);
+
mTabSegment = findViewById(R.id.ScreenType);
mContentViewPager = findViewById(R.id.contentViewPager);
imageButtonAddUser = findViewById(R.id.imageButtonAddUser);
@@ -253,6 +259,8 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
} else {
views = (UserMeetingViews) (prefabView.getTag());
}
+
+ views.memberStatus3.setVisibility(View.GONE);
DBUser d = (DBUser) data;
views.textViewName.setText(d.name);
views.textViewNum.setText(d.phone);
@@ -272,6 +280,22 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
views.imageViewPhoneIcon.setVisibility(View.VISIBLE);
views.imageViewAddflag.setVisibility(View.INVISIBLE);
}
+
+ if (d.isMute) {
+ views.memberStatus1.setImageResource(R.drawable.mute);
+ } else {
+ views.memberStatus1.setImageResource(R.drawable.unmute);
+ }
+ if (VIDEOSTATE) {
+ views.memberStatus2.setVisibility(View.VISIBLE);
+ if (d.isVMute) {
+ views.memberStatus2.setImageResource(R.drawable.unvideo);
+ } else {
+ views.memberStatus2.setImageResource(R.drawable.video);
+ }
+ } else {
+ views.memberStatus2.setVisibility(View.GONE);
+ }
}
@Override
@@ -289,7 +313,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
.edgeProtection(QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 20));
if (DBUser.mySelf.isManager) {
if (d.isMute) {
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("取消禁言").onClick(
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unmute).text("取消禁言").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
@@ -308,7 +332,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
}
));
} else {
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("禁言").onClick(
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.mute).text("禁言").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
@@ -330,7 +354,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
if (VIDEOSTATE) {
if (d.isVMute) {
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("回复视频").onClick(
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.video).text("恢复视频").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
@@ -349,7 +373,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
}
));
} else {
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("停止视频").onClick(
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unvideo).text("停止视频").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
@@ -369,45 +393,24 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
));
}
- if (d.isLayout) {
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("恢复布局").onClick(
- new QMUIQuickAction.OnClickListener() {
- @Override
- public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
- quickAction.dismiss();
- Net.vidlayoutMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
- @Override
- public void onRequestComplete(int cmd, String result, Object orgs) {
- getMembers();
- }
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.fullscreen).text("切到主界面").onClick(
+ new QMUIQuickAction.OnClickListener() {
+ @Override
+ public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
+ quickAction.dismiss();
+ Net.vidfloorMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
+ @Override
+ public void onRequestComplete(int cmd, String result, Object orgs) {
+ getMembers();
+ }
- @Override
- public void onRequestError(int cmd, String result, Object orgs) {
- }
- }, null);
- }
+ @Override
+ public void onRequestError(int cmd, String result, Object orgs) {
+ }
+ }, null);
}
- ));
- } else {
- qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("切换布局").onClick(
- new QMUIQuickAction.OnClickListener() {
- @Override
- public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
- quickAction.dismiss();
- Net.vidfloorMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
- @Override
- public void onRequestComplete(int cmd, String result, Object orgs) {
- getMembers();
- }
-
- @Override
- public void onRequestError(int cmd, String result, Object orgs) {
- }
- }, null);
- }
- }
- ));
- }
+ }
+ ));
}
qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("移除").onClick(
@@ -454,8 +457,18 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
super.onResume();
if (callstate.equals("来电")) {
incall_answer.setVisibility(View.VISIBLE);
+ incall_mute.setVisibility(View.GONE);
+ incall_muteVideo.setVisibility(View.GONE);
} else {
incall_answer.setVisibility(View.GONE);
+ if (DBUser.mySelf.isManager) {
+ incall_mute.setVisibility(View.VISIBLE);
+ if (VIDEOSTATE) {
+ incall_muteVideo.setVisibility(View.VISIBLE);
+ } else {
+ incall_muteVideo.setVisibility(View.GONE);
+ }
+ }
}
show.setText(callnumber + callstate);
//控件显示号码,来电,去电,通话中...
@@ -585,6 +598,11 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
*/
engineServer.startVideoStream(this, server, rport, lport, payload, BitRate, FrameRate, w, h, c, true);
VIDEOSTATE = true;
+
+ if (DBUser.mySelf.isManager) {
+ incall_mute.setVisibility(View.VISIBLE);
+ incall_muteVideo.setVisibility(View.VISIBLE);
+ }
}
}
@@ -600,11 +618,113 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
break;
case R.id.incall_answer:
incall_answer.setVisibility(View.GONE);
+ if (DBUser.mySelf.isManager) {
+ incall_mute.setVisibility(View.VISIBLE);
+ }
SipEngine.getInstance().answer(callid);
break;
+ case R.id.incall_mute:
+ muteAll(v);
+ break;
+ case R.id.incall_muteVideo:
+ videomuteAll(v);
+ break;
}
}
+ public void muteAll(View view) {
+ QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this,
+ QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56),
+ QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56))
+ .shadow(true)
+ .dimAmount(0.5f)
+ .skinManager(QMUISkinManager.defaultInstance(InCallMeetingActivity.this))
+ .edgeProtection(QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 20));
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.mute).text("全部禁言").onClick(
+ new QMUIQuickAction.OnClickListener() {
+ @Override
+ public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
+ quickAction.dismiss();
+ Net.muteMember4Group(callnumber, "all", new HttpUtl.CallBack() {
+ @Override
+ public void onRequestComplete(int cmd, String result, Object orgs) {
+ getMembers();
+ }
+
+ @Override
+ public void onRequestError(int cmd, String result, Object orgs) {
+ }
+ }, null);
+ }
+ }
+ ));
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unmute).text("全部取消禁言").onClick(
+ new QMUIQuickAction.OnClickListener() {
+ @Override
+ public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
+ quickAction.dismiss();
+ Net.unmuteMember4Group(callnumber, "all", new HttpUtl.CallBack() {
+ @Override
+ public void onRequestComplete(int cmd, String result, Object orgs) {
+ getMembers();
+ }
+
+ @Override
+ public void onRequestError(int cmd, String result, Object orgs) {
+ }
+ }, null);
+ }
+ }
+ ));
+ qa.show(view);
+ }
+
+ public void videomuteAll(View view) {
+ QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this,
+ QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56),
+ QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56))
+ .shadow(true)
+ .dimAmount(0.5f)
+ .skinManager(QMUISkinManager.defaultInstance(InCallMeetingActivity.this))
+ .edgeProtection(QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 20));
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unvideo).text("全部关闭视频").onClick(
+ new QMUIQuickAction.OnClickListener() {
+ @Override
+ public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
+ quickAction.dismiss();
+ Net.vmuteMember4Group(callnumber, "all", new HttpUtl.CallBack() {
+ @Override
+ public void onRequestComplete(int cmd, String result, Object orgs) {
+ getMembers();
+ }
+
+ @Override
+ public void onRequestError(int cmd, String result, Object orgs) {
+ }
+ }, null);
+ }
+ }
+ ));
+ qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.video).text("全部恢复视频").onClick(
+ new QMUIQuickAction.OnClickListener() {
+ @Override
+ public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
+ quickAction.dismiss();
+ Net.unvmuteMember4Group(callnumber, "all", new HttpUtl.CallBack() {
+ @Override
+ public void onRequestComplete(int cmd, String result, Object orgs) {
+ getMembers();
+ }
+
+ @Override
+ public void onRequestError(int cmd, String result, Object orgs) {
+ }
+ }, null);
+ }
+ }
+ ));
+ qa.show(view);
+ }
public void ShowVideoView(boolean show) {
if (show) {
diff --git a/app/src/main/java/com/tianrun/sipcall/db/DBUser.java b/app/src/main/java/com/tianrun/sipcall/db/DBUser.java
index 56aa42b..1dbff53 100644
--- a/app/src/main/java/com/tianrun/sipcall/db/DBUser.java
+++ b/app/src/main/java/com/tianrun/sipcall/db/DBUser.java
@@ -36,11 +36,15 @@ public class DBUser {
this.phone = d.getString("extn");
this.status = d.getString("sip_state");
String weight = d.getString("weight");
- if(weight != null) {
+ if (weight != null) {
this.isManager = weight.equals("1");
} else {
this.isManager = false;
}
+ String ifMute = d.getString("ifMute");
+ this.isMute = ifMute != null ? ifMute.equals("true") : false;
+ String ifVMute = d.getString("ifVMute");
+ this.isVMute = ifVMute != null ? ifVMute.equals("true") : false;
}
public boolean isBusy() {
diff --git a/app/src/main/java/com/tianrun/sipcall/login/LoginActivity.java b/app/src/main/java/com/tianrun/sipcall/login/LoginActivity.java
index 60986b7..7828081 100644
--- a/app/src/main/java/com/tianrun/sipcall/login/LoginActivity.java
+++ b/app/src/main/java/com/tianrun/sipcall/login/LoginActivity.java
@@ -344,17 +344,17 @@ public class LoginActivity extends TrBaseActivity {
}
public void exit2(View view) {
- Net.login(this.name, this.pw, new HttpUtl.CallBack() {
- @Override
- public void onRequestComplete(int cmd, String result, Object orgs) {
- ActivityMgr.sendMsg(CONS.LOGIN, null);
- }
-
- @Override
- public void onRequestError(int cmd, String result, Object orgs) {
- UIUtl.toastI("取得token失败");
- }
- }, null);
+// Net.login(this.name, this.pw, new HttpUtl.CallBack() {
+// @Override
+// public void onRequestComplete(int cmd, String result, Object orgs) {
+// ActivityMgr.sendMsg(CONS.LOGIN, null);
+// }
+//
+// @Override
+// public void onRequestError(int cmd, String result, Object orgs) {
+// UIUtl.toastI("取得token失败");
+// }
+// }, null);
}
}
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 3033fb4..bd8db94 100644
--- a/app/src/main/java/com/tianrun/sipcall/login/MainActivity.java
+++ b/app/src/main/java/com/tianrun/sipcall/login/MainActivity.java
@@ -404,7 +404,7 @@ public class MainActivity extends TrBaseActivity {
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
QMUITipDialog dialog = UIUtl.toastLoading("");
- Net.kickMember4Group(currSelectData.id, d.phone, new HttpUtl.CallBack() {
+ Net.kickMember4Group(currSelectData.audio_code, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
UIUtl.toastS("移除分机成功");
@@ -478,7 +478,7 @@ public class MainActivity extends TrBaseActivity {
members = members + phNum + ",";
}
- Net.addMember2Group(currSelectData.id, members, new HttpUtl.CallBack() {
+ Net.addMember2Group(currSelectData.audio_code, members, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
Net.getGroupMenbers(currSelectData.id, null, currSelectData.id);
diff --git a/app/src/main/java/com/tianrun/sipcall/net/Net.java b/app/src/main/java/com/tianrun/sipcall/net/Net.java
index be989f3..b72a9f7 100644
--- a/app/src/main/java/com/tianrun/sipcall/net/Net.java
+++ b/app/src/main/java/com/tianrun/sipcall/net/Net.java
@@ -128,7 +128,6 @@ public class Net {
HttpUtl.doPostAsyn(url, _params, _callback, CMD_deleteGroup, params);
}
- //TODO:确认下参数
public static void addMember2Group(String task_uuid, String members, HttpUtl.CallBack callBack, Object orgs) {
String url = "http://" + ip + ":" + port + "/api/conferences/conference/add";
String _params = "opr_nbr=" + task_uuid + "&opr_member=" + members;
@@ -136,7 +135,6 @@ public class Net {
HttpUtl.doPostAsyn(url, _params, _callback, CMD_addUser2Group, params);
}
- //TODO:确认下参数
public static void kickMember4Group(String task_uuid, String members, HttpUtl.CallBack callBack, Object orgs) {
String url = "http://" + ip + ":" + port + "/api/conferences/conference/update";
String _params = "opr_nbr=" + task_uuid + "&opr_member=" + members + "&opr_action=kick";
diff --git a/app/src/main/res/drawable-hdpi/fullscreen.png b/app/src/main/res/drawable-hdpi/fullscreen.png
new file mode 100644
index 0000000..a0b3f21
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/fullscreen.png differ
diff --git a/app/src/main/res/drawable-hdpi/kick.png b/app/src/main/res/drawable-hdpi/kick.png
new file mode 100644
index 0000000..3619f0d
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/kick.png differ
diff --git a/app/src/main/res/drawable-hdpi/mute.png b/app/src/main/res/drawable-hdpi/mute.png
new file mode 100644
index 0000000..cccb336
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/mute.png differ
diff --git a/app/src/main/res/drawable-hdpi/unmute.png b/app/src/main/res/drawable-hdpi/unmute.png
new file mode 100644
index 0000000..2dd6e10
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/unmute.png differ
diff --git a/app/src/main/res/drawable-hdpi/unvideo.png b/app/src/main/res/drawable-hdpi/unvideo.png
new file mode 100644
index 0000000..d66af94
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/unvideo.png differ
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 2621c5f..1fdefe8 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -91,7 +91,7 @@
android:textSize="20sp" />
+ android:visibility="invisible" />
diff --git a/app/src/main/res/layout/incallmeetingactivity.xml b/app/src/main/res/layout/incallmeetingactivity.xml
index 1a2f36a..f84b357 100644
--- a/app/src/main/res/layout/incallmeetingactivity.xml
+++ b/app/src/main/res/layout/incallmeetingactivity.xml
@@ -89,6 +89,24 @@
android:layout_marginStart="160dp"
android:orientation="horizontal">
+
+
+
+
+