This commit is contained in:
2020-09-14 16:43:36 +08:00
parent 56485ff0dd
commit ad03559dac
12 changed files with 203 additions and 62 deletions

View File

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

View File

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

View File

@@ -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);
}
}

View File

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

View File

@@ -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";

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -91,7 +91,7 @@
android:textSize="20sp" />
<Button
android:layout_width="fill_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
@@ -101,7 +101,7 @@
android:text="退出"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:visibility="visible" />
android:visibility="invisible" />
</LinearLayout>
</ScrollView>

View File

@@ -89,6 +89,24 @@
android:layout_marginStart="160dp"
android:orientation="horizontal">
<ImageButton
android:id="@+id/incall_mute"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@drawable/qmui_divider"
android:src="@drawable/voice2"
tools:visibility="visible" />
<ImageButton
android:id="@+id/incall_muteVideo"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@drawable/qmui_divider"
android:src="@drawable/unvideo"
tools:visibility="visible" />
<ImageButton
android:id="@+id/incall_answer"
android:layout_width="0dp"
@@ -105,6 +123,7 @@
android:layout_weight="1"
android:background="@drawable/call_hangup_background"
android:src="@drawable/phone3" />
</LinearLayout>
<com.qmuiteam.qmui.widget.tab.QMUITabSegment