137 lines
4.1 KiB
Java
137 lines
4.1 KiB
Java
package com.tianrun.sipcall.db;
|
|
|
|
import android.util.Log;
|
|
import android.widget.ImageView;
|
|
import android.widget.TextView;
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.serializer.FloatCodec;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
|
|
public class DBUser {
|
|
public static List<DBUser> allUser = new ArrayList<>();
|
|
public static HashMap<String, DBUser> mapUsers = new HashMap<>();
|
|
public static DBUser mySelf;
|
|
public String name = "";
|
|
public String phone = "";
|
|
public String status = "";
|
|
public int groupOrder = 0;
|
|
public int priority = 0;
|
|
public boolean isManager = true;
|
|
public boolean isAddFlag = false;
|
|
|
|
public boolean isMute = false;
|
|
public boolean isVMute = false;
|
|
public boolean isLayout = false;
|
|
public boolean isEmpty = false;
|
|
private static final String TAG = "DBUser";
|
|
|
|
public DBUser(String name, String phone, String status) {
|
|
this.name = name;
|
|
this.phone = phone;
|
|
this.status = status;
|
|
}
|
|
|
|
public DBUser () {
|
|
}
|
|
|
|
public DBUser(JSONObject d) {
|
|
try {
|
|
this.name = d.getString("name");
|
|
this.phone = d.getString("extn");
|
|
this.status = d.getString("sip_state");
|
|
status = status == null ? "" : status;
|
|
String weight = d.getString("weight");
|
|
if (weight != null) {
|
|
this.isManager = weight.equals("1") ? true : false;
|
|
} 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;
|
|
|
|
String _groupOrder = d.getString("group_order");
|
|
this.groupOrder = _groupOrder != null ? Integer.parseInt(_groupOrder) : 0;
|
|
String _priority = d.getString("priority");
|
|
this.priority = _priority != null ? Integer.parseInt(_priority) : 0;
|
|
isEmpty = false;
|
|
} catch (Exception e){
|
|
Log.i(TAG, "onRequestComplete: " + e);
|
|
}
|
|
}
|
|
|
|
public boolean isBusy() {
|
|
return status.equals("busy");
|
|
}
|
|
|
|
public boolean isOnline() {
|
|
return status.equals("true");
|
|
}
|
|
|
|
public boolean isOffline() {
|
|
return status.equals("false");
|
|
}
|
|
|
|
public static void onGetUsers(JSONArray array) {
|
|
allUser.clear();
|
|
DBUser u;
|
|
int cellSize = 5;
|
|
int oldGroupOrder = -1;
|
|
for (Object o : array) {
|
|
u = new DBUser((JSONObject) o);
|
|
if(oldGroupOrder >= 0 && oldGroupOrder != u.groupOrder) {
|
|
//需要分组
|
|
int yushu = allUser.size() % cellSize;
|
|
if(yushu > 0){
|
|
yushu = cellSize - yushu;
|
|
for (int i=0;i<yushu;i++){
|
|
DBUser _u = new DBUser();
|
|
_u.isEmpty = true;
|
|
allUser.add(_u);
|
|
}
|
|
}
|
|
}
|
|
oldGroupOrder = u.groupOrder;
|
|
allUser.add(u);
|
|
mapUsers.put(u.phone, u);
|
|
if (mySelf != null && u.phone.equals(mySelf.phone)) {
|
|
mySelf = u;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void refreshUser(DBUser user) {
|
|
for(int i=0; i < allUser.size();i++) {
|
|
DBUser u = allUser.get(i);
|
|
if(u.phone.equals(user.phone)) {
|
|
allUser.set(i, user);
|
|
mapUsers.put(user.phone, user);
|
|
return;
|
|
}
|
|
}
|
|
allUser.add(user);
|
|
mapUsers.put(user.phone, user);
|
|
}
|
|
|
|
public static void onGetGroupMembers(JSONObject content) {
|
|
DBGroup group = new DBGroup();
|
|
group.head = new DBHead(content);
|
|
JSONArray array = content.getJSONArray("members_msg");
|
|
for (Object o : array) {
|
|
DBUser u = new DBUser((JSONObject) o);
|
|
refreshUser(u);
|
|
}
|
|
}
|
|
|
|
public static DBUser getUser(String phoneNo) {
|
|
return mapUsers.get(phoneNo);
|
|
}
|
|
|
|
}
|