This commit is contained in:
2020-09-11 22:59:19 +08:00
parent 22fd760d55
commit 8c5c97c549
15 changed files with 607 additions and 50 deletions

View File

@@ -1,6 +1,7 @@
package com.tianrun.sipcall.login;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.media.AudioManager;
@@ -39,11 +40,12 @@ import com.tianrun.sipcall.SipEngine;
import com.tianrun.sipcall.call.CallActivity;
import com.tianrun.sipcall.call.CreateGroupActivity;
import com.tianrun.sipcall.call.CreateMeetingActivity;
import com.tianrun.sipcall.db.DBGroup;
import com.tianrun.sipcall.db.DBHead;
import com.tianrun.sipcall.db.DBUser;
import com.tianrun.sipcall.db.UserViews;
import com.tianrun.sipcall.net.Net;
import com.tianrun.sipcall.net.NetPkg;
import com.tianrun.sipcall.ui.ActivityMgr;
import com.tianrun.sipcall.ui.TrAdapter;
import com.tianrun.sipcall.ui.TrBaseActivity;
import com.tianrun.sipcall.ui.UIUtl;
@@ -193,7 +195,7 @@ public class MainActivity extends TrBaseActivity {
DBHead h = headers.get(0);
headers.clear();
headers.add(h);
headers.addAll(DBHead.allGroups);
headers.addAll(DBHead.allHeads);
mPagerAdapter.notifyDataSetChanged();
mTabSegment.reset();
@@ -238,10 +240,20 @@ public class MainActivity extends TrBaseActivity {
//显示分机
allUsers.clear();
if(currSelectData.isAll()) {
if (currSelectData.isAll()) {
allUsers.addAll(DBUser.allUser);
setUsers();
} else {
DBGroup group = DBGroup.getGroup(currSelectData.id);
if (group != null) {
allUsers.addAll(group.users);
}
//根据权限来处理
if (DBUser.mySelf.isManager) {
DBUser u = new DBUser("", "添加分机", "false");
u.isAddFlag = true;
allUsers.add(u);
}
setUsers();
//取得数据
Net.getGroupMenbers(currSelectData.id, null, currSelectData.id);
@@ -264,7 +276,7 @@ public class MainActivity extends TrBaseActivity {
public void refreshView() {
//通话音量
//通话音量
int max = audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
int current = audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
textVolum.setText("音量:" + current);
@@ -314,14 +326,6 @@ public class MainActivity extends TrBaseActivity {
handler.postDelayed(runGetUsers, 3000);
}
public class UserViews {
public TextView textViewName;
public TextView textViewNum;
public ImageView imageViewStatus;
public ImageView imageViewPhoneIcon;
public ImageView imageViewAddflag;
}
public void setUsers() {
if (DBUser.allUser == null) return;
if (adapterUser == null) {
@@ -365,7 +369,7 @@ public class MainActivity extends TrBaseActivity {
public void clickCallback(Object data, AdapterView<?> parent, View view, int position, long id) {
DBUser d = (DBUser) data;
if (d.isAddFlag) {
//TODO:
showUsersMultiChoiceDialog();
return;
}
QMUIQuickAction qa = QMUIPopups.quickAction(MainActivity.this,
@@ -399,7 +403,21 @@ public class MainActivity extends TrBaseActivity {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
//TODO:移除分机
QMUITipDialog dialog = UIUtl.toastLoading("");
Net.kickMember4Group(currSelectData.id, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
UIUtl.toastS("移除分机成功");
//取得数据
Net.getGroupMenbers(currSelectData.id, null, currSelectData.id);
dialog.dismiss();
}
@Override
public void onRequestError(int cmd, String result, Object orgs) {
dialog.dismiss();
}
}, null);
}
}
));
@@ -412,9 +430,74 @@ public class MainActivity extends TrBaseActivity {
}
}
// public void refreshHeadList() {
// adapter.notifyDataSetChanged();
// }
private void showUsersMultiChoiceDialog() {
List<String> list = new ArrayList<>();
List<String> listPhone = new ArrayList<>();
DBGroup group = DBGroup.getGroup(currSelectData.id);
if (group == null) {
return;
}
for (DBUser u : DBUser.allUser) {
if (!group.containsUser(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.addUser2Group(currSelectData.id, members, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
Net.getGroupMenbers(currSelectData.id, null, currSelectData.id);
}
@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();
}
public void call(View view) {
startActivity(new Intent(MainActivity.this, CallActivity.class));
@@ -460,10 +543,12 @@ public class MainActivity extends TrBaseActivity {
}
break;
case Net.CMD_getGroupMenbers:
NetPkg pkg = (NetPkg)(m.obj);
String oldUUID = pkg.orgs.toString();
NetPkg pkg = (NetPkg) (m.obj);
String oldUUID = pkg.orgs != null ? pkg.orgs.toString() : "";
if (!currSelectData.isAll() && oldUUID.equals(currSelectData.id)) {
//TODO:解析数据
DBGroup group = DBGroup.getGroup(currSelectData.id);
allUsers.clear();
allUsers.addAll(group.users);
//根据权限来处理
if (DBUser.mySelf.isManager) {
DBUser u = new DBUser("", "添加分机", "false");
@@ -554,8 +639,20 @@ public class MainActivity extends TrBaseActivity {
.addAction(0, "删除", QMUIDialogAction.ACTION_PROP_NEGATIVE, new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
//TODO:
Net.deleteGroup(currSelectData.id, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
UIUtl.toastS("分组删除成功");
Net.getGroups(null, null);
}
@Override
public void onRequestError(int cmd, String result, Object orgs) {
}
}, null);
dialog.dismiss();
}
})
.create(mCurrentDialogStyle).show();