mm
This commit is contained in:
@@ -5,6 +5,7 @@ import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.app.KeyguardManager;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
@@ -28,6 +29,8 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.qmuiteam.qmui.skin.QMUISkinManager;
|
||||
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
|
||||
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
|
||||
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
|
||||
import com.qmuiteam.qmui.widget.dialog.QMUITipDialog;
|
||||
import com.qmuiteam.qmui.widget.popup.QMUIPopups;
|
||||
import com.qmuiteam.qmui.widget.popup.QMUIQuickAction;
|
||||
@@ -36,7 +39,9 @@ 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;
|
||||
@@ -64,6 +69,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
||||
private SMPercentFrameLayout localRenderLayout;
|
||||
private SMPercentFrameLayout remoteRenderLayout;
|
||||
private ImageButton incall_answer, incall_hangup;
|
||||
private View imageButtonAddUser;
|
||||
private TextView show;
|
||||
GridView gridUser;
|
||||
QMUITabSegment mTabSegment;
|
||||
@@ -72,11 +78,13 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
||||
private EngineServer engineServer;
|
||||
|
||||
private int callid = -1;//当前通话的id
|
||||
private String meetingName = "";
|
||||
private String callnumber = "未知";
|
||||
private String callstate = "未知";
|
||||
private int calltype = 0; //0音频1视频
|
||||
private boolean VIDEOSTATE = false;
|
||||
public static Intent incallIntent;
|
||||
|
||||
TrAdapter adapterUser;
|
||||
|
||||
List<DBUser> allUsers = new ArrayList<>();
|
||||
@@ -160,6 +168,12 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
||||
|
||||
mTabSegment = findViewById(R.id.ScreenType);
|
||||
mContentViewPager = findViewById(R.id.contentViewPager);
|
||||
imageButtonAddUser = findViewById(R.id.imageButtonAddUser);
|
||||
if (DBUser.mySelf.isManager) {
|
||||
imageButtonAddUser.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
imageButtonAddUser.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
private void initTabAndPager() {
|
||||
@@ -195,18 +209,21 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
||||
}
|
||||
});
|
||||
}
|
||||
public void getMembers()
|
||||
{
|
||||
|
||||
public void getMembers() {
|
||||
Net.getGroupMenbers(callnumber, new HttpUtl.CallBack() {
|
||||
@Override
|
||||
public void onRequestComplete(int cmd, String result, Object orgs) {
|
||||
JSONObject jo = JSONObject.parseObject(result);
|
||||
meetingName = jo.getString("topic");
|
||||
JSONArray array = jo.getJSONArray("members_msg");
|
||||
allUsers.clear();
|
||||
for(Object o:array) {
|
||||
allUsers.add(new DBUser((JSONObject)o));
|
||||
for (Object o : array) {
|
||||
allUsers.add(new DBUser((JSONObject) o));
|
||||
}
|
||||
setUsers();
|
||||
|
||||
show.setText(meetingName + " " + callstate);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -218,20 +235,23 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
||||
|
||||
public void setUsers() {
|
||||
if (adapterUser == null) {
|
||||
adapterUser = UIUtl.setList(this, gridUser, R.layout.list_item_user, allUsers, new TrAdapter.Callback() {
|
||||
adapterUser = UIUtl.setList(this, gridUser, R.layout.list_item_user_meeting, allUsers, new TrAdapter.Callback() {
|
||||
@Override
|
||||
public void initCallback(Object data, int position, View prefabView, ViewGroup parent) {
|
||||
UserViews views = null;
|
||||
UserMeetingViews views = null;
|
||||
if (prefabView.getTag() == null) {
|
||||
views = new UserViews();
|
||||
views = new UserMeetingViews();
|
||||
views.textViewName = prefabView.findViewById(R.id.textViewName);
|
||||
views.textViewNum = prefabView.findViewById(R.id.textViewNum);
|
||||
views.imageViewStatus = prefabView.findViewById(R.id.imageViewStatus);
|
||||
views.imageViewAddflag = prefabView.findViewById(R.id.imageViewAddflag);
|
||||
views.imageViewPhoneIcon = prefabView.findViewById(R.id.imageView3PhoneIcon);
|
||||
views.memberStatus1 = prefabView.findViewById(R.id.memberStatus1);
|
||||
views.memberStatus2 = prefabView.findViewById(R.id.memberStatus2);
|
||||
views.memberStatus3 = prefabView.findViewById(R.id.memberStatus3);
|
||||
prefabView.setTag(views);
|
||||
} else {
|
||||
views = (UserViews) (prefabView.getTag());
|
||||
views = (UserMeetingViews) (prefabView.getTag());
|
||||
}
|
||||
DBUser d = (DBUser) data;
|
||||
views.textViewName.setText(d.name);
|
||||
@@ -256,6 +276,9 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
||||
|
||||
@Override
|
||||
public void clickCallback(Object data, AdapterView<?> parent, View view, int position, long id) {
|
||||
if (!DBUser.mySelf.isManager) {
|
||||
return;
|
||||
}
|
||||
DBUser d = (DBUser) data;
|
||||
QMUIQuickAction qa = QMUIPopups.quickAction(InCallMeetingActivity.this,
|
||||
QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 56),
|
||||
@@ -265,6 +288,128 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
||||
.skinManager(QMUISkinManager.defaultInstance(InCallMeetingActivity.this))
|
||||
.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(
|
||||
new QMUIQuickAction.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
|
||||
quickAction.dismiss();
|
||||
Net.unmuteMember4Group(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);
|
||||
}
|
||||
}
|
||||
));
|
||||
} 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.muteMember4Group(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);
|
||||
}
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
if (VIDEOSTATE) {
|
||||
if (d.isVMute) {
|
||||
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.unvmuteMember4Group(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);
|
||||
}
|
||||
}
|
||||
));
|
||||
} 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.vmuteMember4Group(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);
|
||||
}
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
@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(
|
||||
new QMUIQuickAction.OnClickListener() {
|
||||
@Override
|
||||
@@ -471,6 +616,85 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
|
||||
}
|
||||
}
|
||||
|
||||
public void addMember(View v) {
|
||||
showUsersMultiChoiceDialog();
|
||||
}
|
||||
|
||||
boolean containMember(String phone) {
|
||||
for (DBUser u : allUsers) {
|
||||
if (u.phone.equals(phone)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void showUsersMultiChoiceDialog() {
|
||||
List<String> list = new ArrayList<>();
|
||||
List<String> listPhone = new ArrayList<>();
|
||||
for (DBUser u : DBUser.allUser) {
|
||||
if (!containMember(u.phone)) {
|
||||
listPhone.add(u.phone);
|
||||
list.add(u.phone + " | " + u.name);
|
||||
}
|
||||
}
|
||||
if (list.size() == 0) {
|
||||
UIUtl.toastI("所有分机已经添加");
|
||||
return;
|
||||
}
|
||||
|
||||
final String[] items = new String[list.size()];
|
||||
list.toArray(items);
|
||||
final QMUIDialog.MultiCheckableDialogBuilder builder = new QMUIDialog.MultiCheckableDialogBuilder(this)
|
||||
.setTitle("选择要加入的分机号")
|
||||
// .setCheckedItems(new int[]{1, 3})
|
||||
.setSkinManager(QMUISkinManager.defaultInstance(this))
|
||||
.addItems(items, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
|
||||
}
|
||||
});
|
||||
builder.addAction("取消", new QMUIDialogAction.ActionListener() {
|
||||
@Override
|
||||
public void onClick(QMUIDialog dialog, int index) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
builder.addAction("确定", new QMUIDialogAction.ActionListener() {
|
||||
@Override
|
||||
public void onClick(QMUIDialog dialog, int index) {
|
||||
int[] selectIndexs = builder.getCheckedItemIndexes();
|
||||
if (selectIndexs.length > 0) {
|
||||
List<DBUser> list = new ArrayList<>();
|
||||
String members = "";
|
||||
for (int i = 0; i < selectIndexs.length; i++) {
|
||||
String phNum = listPhone.get(selectIndexs[i]);
|
||||
members = members + phNum + ",";
|
||||
}
|
||||
|
||||
Net.addMember2Group(callnumber, members, 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);
|
||||
}
|
||||
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
int mCurrentDialogStyle = com.qmuiteam.qmui.R.style.QMUI_Dialog;
|
||||
builder.create(mCurrentDialogStyle).show();
|
||||
}
|
||||
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
void fullScreen() {
|
||||
int flag = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
|
||||
@@ -21,6 +21,10 @@ public class DBUser {
|
||||
public boolean isManager = false;
|
||||
public boolean isAddFlag = false;
|
||||
|
||||
public boolean isMute = false;
|
||||
public boolean isVMute = false;
|
||||
public boolean isLayout = false;
|
||||
|
||||
public DBUser(String name, String phone, String status) {
|
||||
this.name = name;
|
||||
this.phone = phone;
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.tianrun.sipcall.db;
|
||||
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class UserMeetingViews extends UserViews {
|
||||
public ImageView memberStatus1;
|
||||
public ImageView memberStatus2;
|
||||
public ImageView memberStatus3;
|
||||
}
|
||||
@@ -478,7 +478,7 @@ public class MainActivity extends TrBaseActivity {
|
||||
members = members + phNum + ",";
|
||||
}
|
||||
|
||||
Net.addUser2Group(currSelectData.id, members, new HttpUtl.CallBack() {
|
||||
Net.addMember2Group(currSelectData.id, members, new HttpUtl.CallBack() {
|
||||
@Override
|
||||
public void onRequestComplete(int cmd, String result, Object orgs) {
|
||||
Net.getGroupMenbers(currSelectData.id, null, currSelectData.id);
|
||||
|
||||
@@ -26,6 +26,12 @@ public class Net {
|
||||
public static final int CMD_deleteGroup = 7007;
|
||||
public static final int CMD_addUser2Group = 7008;
|
||||
public static final int CMD_kickMember4Group = 7009;
|
||||
public static final int CMD_muteMember4Group = 7010;
|
||||
public static final int CMD_unmuteMember4Group = 7011;
|
||||
public static final int CMD_vmuteMember4Group = 7012;
|
||||
public static final int CMD_unvmuteMember4Group = 7013;
|
||||
public static final int CMD_vidlayoutMember4Group = 7014;
|
||||
public static final int CMD_vidfloorMember4Group = 7015;
|
||||
|
||||
static HttpUtl.CallBack _callback = new HttpUtl.CallBack() {
|
||||
@Override
|
||||
@@ -123,9 +129,9 @@ public class Net {
|
||||
}
|
||||
|
||||
//TODO:确认下参数
|
||||
public static void addUser2Group(String task_uuid, String members, HttpUtl.CallBack callBack, Object orgs) {
|
||||
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;
|
||||
String _params = "opr_nbr=" + task_uuid + "&opr_member=" + members;
|
||||
Object[] params = {callBack, orgs};
|
||||
HttpUtl.doPostAsyn(url, _params, _callback, CMD_addUser2Group, params);
|
||||
}
|
||||
@@ -133,15 +139,51 @@ public class Net {
|
||||
//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";
|
||||
String _params = "opr_nbr=" + task_uuid + "&opr_member=" + members + "&opr_action=kick";
|
||||
Object[] params = {callBack, orgs};
|
||||
HttpUtl.doPostAsyn(url, _params, _callback, CMD_kickMember4Group, params);
|
||||
}
|
||||
|
||||
// public static void updateGroup(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;
|
||||
// Object[] params = {callBack, orgs};
|
||||
// HttpUtl.doPostAsyn(url, _params, _callback, CMD_updateGroup, params);
|
||||
// }
|
||||
//mute:禁言、unmute:取消禁言、vmute:关闭视频、unvmute:恢复视频、kick:踢出、vidlayout:切换布局、vidfloor:切换到主画面
|
||||
public static void muteMember4Group(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=mute";
|
||||
Object[] params = {callBack, orgs};
|
||||
HttpUtl.doPostAsyn(url, _params, _callback, CMD_muteMember4Group, params);
|
||||
}
|
||||
|
||||
public static void unmuteMember4Group(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=unmute";
|
||||
Object[] params = {callBack, orgs};
|
||||
HttpUtl.doPostAsyn(url, _params, _callback, CMD_unmuteMember4Group, params);
|
||||
}
|
||||
|
||||
public static void vmuteMember4Group(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=vmute";
|
||||
Object[] params = {callBack, orgs};
|
||||
HttpUtl.doPostAsyn(url, _params, _callback, CMD_vmuteMember4Group, params);
|
||||
}
|
||||
|
||||
public static void unvmuteMember4Group(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=unvmute";
|
||||
Object[] params = {callBack, orgs};
|
||||
HttpUtl.doPostAsyn(url, _params, _callback, CMD_unvmuteMember4Group, params);
|
||||
}
|
||||
|
||||
public static void vidlayoutMember4Group(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=vidlayout";
|
||||
Object[] params = {callBack, orgs};
|
||||
HttpUtl.doPostAsyn(url, _params, _callback, CMD_vidlayoutMember4Group, params);
|
||||
}
|
||||
|
||||
public static void vidfloorMember4Group(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=vidfloor";
|
||||
Object[] params = {callBack, orgs};
|
||||
HttpUtl.doPostAsyn(url, _params, _callback, CMD_vidfloorMember4Group, params);
|
||||
}
|
||||
}
|
||||
|
||||
BIN
app/src/main/res/drawable-hdpi/bg3.9.png
Normal file
BIN
app/src/main/res/drawable-hdpi/bg3.9.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.8 KiB |
@@ -77,7 +77,7 @@
|
||||
<com.qmuiteam.qmui.widget.tab.QMUITabSegment
|
||||
android:id="@+id/ScreenType"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_height="40dp"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
|
||||
|
||||
@@ -13,6 +13,18 @@
|
||||
android:layout_height="match_parent"
|
||||
android:background="#15516C" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/imageButtonAddUser"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginStart="65dp"
|
||||
android:layout_marginEnd="0dp"
|
||||
android:layout_marginBottom="13dp"
|
||||
android:onClick="addMember"
|
||||
app:srcCompat="@drawable/add" />
|
||||
|
||||
<GridView
|
||||
android:id="@+id/GridUser"
|
||||
android:layout_width="160dp"
|
||||
@@ -21,8 +33,8 @@
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginStart="0dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="0dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:layout_marginBottom="60dp"
|
||||
android:horizontalSpacing="10dp"
|
||||
android:numColumns="1">
|
||||
|
||||
@@ -51,6 +63,7 @@
|
||||
android:id="@+id/remote_video_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</blue.view.SMPercentFrameLayout>
|
||||
|
||||
<blue.view.SMPercentFrameLayout
|
||||
@@ -94,21 +107,10 @@
|
||||
android:src="@drawable/phone3" />
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/show"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="30dp"
|
||||
android:text="123"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="20sp" />
|
||||
|
||||
<com.qmuiteam.qmui.widget.tab.QMUITabSegment
|
||||
android:id="@+id/ScreenType"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_marginStart="170dp"
|
||||
android:orientation="horizontal" />
|
||||
@@ -120,4 +122,16 @@
|
||||
android:layout_weight="1"
|
||||
android:fitsSystemWindows="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/show"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="30dp"
|
||||
android:text="123"
|
||||
android:textAlignment="viewEnd"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="18sp" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
125
app/src/main/res/layout/list_item_user_meeting.xml
Normal file
125
app/src/main/res/layout/list_item_user_meeting.xml
Normal file
@@ -0,0 +1,125 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/Item_user"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageViewBg"
|
||||
android:layout_width="170dp"
|
||||
android:layout_height="110dp"
|
||||
app:srcCompat="@drawable/bg3" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageViewStatus"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignStart="@+id/imageViewBg"
|
||||
android:layout_alignTop="@+id/imageViewBg"
|
||||
android:layout_alignEnd="@+id/imageViewBg"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:visibility="visible"
|
||||
app:srcCompat="@drawable/bg_half"
|
||||
app:tint="#8BC34A" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/imageViewStatus"
|
||||
android:layout_alignStart="@+id/imageViewStatus"
|
||||
android:layout_alignTop="@+id/imageViewStatus"
|
||||
android:layout_alignEnd="@+id/imageViewStatus"
|
||||
android:layout_marginStart="0dp"
|
||||
android:layout_marginTop="50dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:text="小张"
|
||||
android:textAlignment="center"
|
||||
android:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewNum"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignStart="@+id/imageViewStatus"
|
||||
android:layout_alignTop="@+id/imageViewStatus"
|
||||
android:layout_alignEnd="@+id/imageViewStatus"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:text="100000"
|
||||
android:textAlignment="center"
|
||||
android:textColor="#FFFFFF" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView3PhoneIcon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignStart="@+id/imageViewStatus"
|
||||
android:layout_alignTop="@+id/imageViewStatus"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="15dp"
|
||||
app:srcCompat="@drawable/phone" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageViewAddflag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignEnd="@+id/imageViewBg"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_marginStart="70dp"
|
||||
android:layout_marginTop="57dp"
|
||||
android:layout_marginEnd="76dp"
|
||||
android:visibility="gone"
|
||||
app:srcCompat="@drawable/add"
|
||||
app:tint="#DDDDDD" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="170dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_alignStart="@+id/imageViewBg"
|
||||
android:layout_alignEnd="@+id/imageViewBg"
|
||||
android:layout_alignBottom="@+id/imageViewBg"
|
||||
android:layout_alignParentEnd="false"
|
||||
android:layout_marginStart="0dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:layout_marginEnd="0dp"
|
||||
android:layout_marginBottom="0dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/memberStatus1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="19dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
app:srcCompat="@android:drawable/stat_sys_speakerphone"
|
||||
app:tint="#999999" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/memberStatus2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="19dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
android:layout_weight="1"
|
||||
app:srcCompat="@android:drawable/stat_notify_call_mute"
|
||||
app:tint="#999999" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/memberStatus3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="19dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
android:layout_weight="1"
|
||||
app:srcCompat="@drawable/video"
|
||||
app:tint="#999999" />
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
Reference in New Issue
Block a user