|
|
@@ -58,6 +58,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
|
|
|
+import com.xzjmyk.pm.activity.ui.erp.util.UserRoleUtils;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.oa.CommonInterface;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.oa.CompanyHandlerInfoUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.oa.http.OAHttpHelper;
|
|
|
@@ -81,7 +82,7 @@ import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
-public class ContactsActivity extends OABaseActivity implements ContactsAdapter.ResultItemsInface{
|
|
|
+public class ContactsActivity extends OABaseActivity implements ContactsAdapter.ResultItemsInface {
|
|
|
|
|
|
@ViewInject(R.id.mList)
|
|
|
private PullToRefreshListView mlist;
|
|
|
@@ -90,13 +91,13 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
|
|
|
private boolean mBind;
|
|
|
private CoreService mXmppService;
|
|
|
-
|
|
|
+
|
|
|
private ContactsAdapter adapter;
|
|
|
private ContactsDao contactsDao;
|
|
|
private EmptyLayout emptyLayout;
|
|
|
- private List<ContactsModel> models=new ArrayList<>();
|
|
|
- private List<ContactsModel> tmodels=new ArrayList<>();
|
|
|
- private int type=0;//0默认情况。1 其它界面调用
|
|
|
+ private List<ContactsModel> models = new ArrayList<>();
|
|
|
+ private List<ContactsModel> tmodels = new ArrayList<>();
|
|
|
+ private int type = 0;//0默认情况。1 其它界面调用
|
|
|
private String searchKey;
|
|
|
|
|
|
|
|
|
@@ -105,10 +106,10 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.activity_contacts);
|
|
|
ViewUtils.inject(this);
|
|
|
- contactsDao=ContactsDao.getInstance();
|
|
|
-
|
|
|
+ contactsDao = ContactsDao.getInstance();
|
|
|
+
|
|
|
initView();
|
|
|
-
|
|
|
+
|
|
|
initData();
|
|
|
}
|
|
|
|
|
|
@@ -125,49 +126,49 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
};
|
|
|
|
|
|
private void initView() {
|
|
|
-
|
|
|
- if (getIntent()!=null){
|
|
|
- type=getIntent().getIntExtra("type",0);
|
|
|
- String title=getIntent().getStringExtra("title");
|
|
|
- if (!StringUtils.isEmpty(title)){
|
|
|
+
|
|
|
+ if (getIntent() != null) {
|
|
|
+ type = getIntent().getIntExtra("type", 0);
|
|
|
+ String title = getIntent().getStringExtra("title");
|
|
|
+ if (!StringUtils.isEmpty(title)) {
|
|
|
getSupportActionBar().setTitle(title);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
getSupportActionBar().setTitle(getString(R.string.common_Contact_person));
|
|
|
}
|
|
|
}
|
|
|
//设置为空显示列表
|
|
|
- emptyLayout = new EmptyLayout(ct,mlist.getRefreshableView());
|
|
|
+ emptyLayout = new EmptyLayout(ct, mlist.getRefreshableView());
|
|
|
emptyLayout.setShowLoadingButton(false);
|
|
|
emptyLayout.setShowEmptyButton(false);
|
|
|
emptyLayout.setShowErrorButton(false);
|
|
|
// emptyLayout.setEmptyViewRes(R.layout.book_empty_list);
|
|
|
-
|
|
|
+
|
|
|
mBind = activity.bindService(CoreService.getIntent(), mServiceConnection, activity.BIND_AUTO_CREATE);
|
|
|
mlist.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
|
|
|
mlist.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
|
|
|
@Override
|
|
|
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
|
|
|
- ThreadPool.getThreadPool().addTask(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- if (CommonUtil.isNetWorkConnected(MyApplication.getInstance())) {
|
|
|
- if (!ListUtils.isEmpty(tmodels)) {
|
|
|
- tmodels.clear();
|
|
|
- }
|
|
|
- contactsDao.delete();//删除缓存
|
|
|
- loadUUFriendForNet();//先加载UU好友---》企业架构人员----》本地通讯录
|
|
|
- }else{
|
|
|
- getCaceData(true);//先加载UU好友---》企业架构人员----》本地通讯录
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ ThreadPool.getThreadPool().addTask(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ if (CommonUtil.isNetWorkConnected(MyApplication.getInstance())) {
|
|
|
+ if (!ListUtils.isEmpty(tmodels)) {
|
|
|
+ tmodels.clear();
|
|
|
+ }
|
|
|
+ contactsDao.delete();//删除缓存
|
|
|
+ loadUUFriendForNet();//先加载UU好友---》企业架构人员----》本地通讯录
|
|
|
+ } else {
|
|
|
+ getCaceData(true);//先加载UU好友---》企业架构人员----》本地通讯录
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
});
|
|
|
mlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
@Override
|
|
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
|
- ContactsAdapter.ViewHolder viewHolder= ( ContactsAdapter.ViewHolder) view.getTag();
|
|
|
- if (type==0) {//默认情况
|
|
|
+ ContactsAdapter.ViewHolder viewHolder = (ContactsAdapter.ViewHolder) view.getTag();
|
|
|
+ if (type == 0) {//默认情况
|
|
|
if (viewHolder.model.getType() == 3) {
|
|
|
return;
|
|
|
}
|
|
|
@@ -183,18 +184,18 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
//friend.setStatus();
|
|
|
intent.putExtra("friend", friend);
|
|
|
startActivity(intent);
|
|
|
- }else if(type==1){ //获取对象界面
|
|
|
- if (viewHolder.model.getType() == 3){
|
|
|
+ } else if (type == 1) { //获取对象界面
|
|
|
+ if (viewHolder.model.getType() == 3) {
|
|
|
//邀请注册 拿IMID
|
|
|
- Intent intent=new Intent();
|
|
|
- intent.putExtra("data",viewHolder.model);
|
|
|
- setResult(0x20,intent);
|
|
|
+ Intent intent = new Intent();
|
|
|
+ intent.putExtra("data", viewHolder.model);
|
|
|
+ setResult(0x20, intent);
|
|
|
+ finish();
|
|
|
+ } else {
|
|
|
+ Intent intent = new Intent();
|
|
|
+ intent.putExtra("data", viewHolder.model);
|
|
|
+ setResult(0x20, intent);
|
|
|
finish();
|
|
|
- }else{
|
|
|
- Intent intent=new Intent();
|
|
|
- intent.putExtra("data",viewHolder.model);
|
|
|
- setResult(0x20,intent);
|
|
|
- finish();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -203,46 +204,50 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
voiceSearchView.addTextChangedListener(new EditChangeListener() {
|
|
|
@Override
|
|
|
public void afterTextChanged(Editable s) {
|
|
|
- searchKey= s.toString();
|
|
|
- if(!StringUtils.isEmpty(s.toString())){
|
|
|
+ searchKey = s.toString();
|
|
|
+ LogUtil.d("arison"," searchKey:"+searchKey);
|
|
|
+ if (!StringUtils.isEmpty(s.toString())) {
|
|
|
mlist.setMode(PullToRefreshBase.Mode.DISABLED);
|
|
|
- List<ContactsModel> cacheData= contactsDao.find(s.toString());
|
|
|
- if (adapter!=null){
|
|
|
- if (ListUtils.isEmpty(cacheData)){
|
|
|
- searchContactsByNet(s.toString());
|
|
|
- return;
|
|
|
- }
|
|
|
- models.clear();
|
|
|
- models.addAll(cacheData);
|
|
|
- adapter.notifyDataSetChanged();
|
|
|
- if (models.size()==0){
|
|
|
- emptyLayout.showEmpty();
|
|
|
+ List<ContactsModel> cacheData = contactsDao.find(s.toString());
|
|
|
+ if (adapter != null) {
|
|
|
+ if (ListUtils.isEmpty(cacheData)) {
|
|
|
+ LogUtil.d("arison","searchContactsByNet:"+searchKey);
|
|
|
+ searchContactsByNet(s.toString());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ models.clear();
|
|
|
+ models.addAll(cacheData);
|
|
|
+ adapter.notifyDataSetChanged();
|
|
|
+ //查询需要优化
|
|
|
+ getStateByPhones(cacheData);
|
|
|
+ if (models.size() == 0) {
|
|
|
+ emptyLayout.showEmpty();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+
|
|
|
}
|
|
|
- }else{
|
|
|
-
|
|
|
- }
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
mlist.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
|
|
|
- getCaceData(true);
|
|
|
+ getCaceData(false);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private void initData() {
|
|
|
- if(!ListUtils.isEmpty(models)){
|
|
|
+ if (!ListUtils.isEmpty(models)) {
|
|
|
models.clear();
|
|
|
}
|
|
|
showLoading();
|
|
|
- adapter=new ContactsAdapter(this,models);
|
|
|
+ adapter = new ContactsAdapter(this, models);
|
|
|
mlist.setAdapter(adapter);
|
|
|
String[] permissions = {Manifest.permission.READ_CONTACTS};
|
|
|
if (PermissionUtil.lacksPermissions(ct, permissions)) {
|
|
|
PermissionUtil.requestPermission(this, PermissionUtil.DEFAULT_REQUEST, permissions);
|
|
|
} else {
|
|
|
- getCaceData(true);
|
|
|
+ getCaceData(false);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -251,25 +256,24 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
|
if (requestCode == PermissionUtil.DEFAULT_REQUEST) {
|
|
|
if (grantResults.length != 1 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
|
|
|
- ToastUtil.showToast(ct,R.string.not_system_permission);
|
|
|
+ ToastUtil.showToast(ct, R.string.not_system_permission);
|
|
|
} else {
|
|
|
- getCaceData(true);
|
|
|
+ getCaceData(false);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
//1
|
|
|
- public void loadCompanyContacts(){
|
|
|
+ public void loadCompanyContacts() {
|
|
|
ThreadPool.getThreadPool().addTask(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
List<EmployeesEntity> emdatas = getEmListByDB();
|
|
|
- if (emdatas!=null){
|
|
|
- LogUtil.d("Test","企业架构人员不为空!");
|
|
|
- for (EmployeesEntity entity:emdatas){
|
|
|
- ContactsModel model=new ContactsModel();
|
|
|
+ if (emdatas != null) {
|
|
|
+ LogUtil.d("Test", "企业架构人员不为空!");
|
|
|
+ for (EmployeesEntity entity : emdatas) {
|
|
|
+ ContactsModel model = new ContactsModel();
|
|
|
model.setImid(String.valueOf(entity.getEm_IMID()));
|
|
|
model.setType(2);
|
|
|
model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
|
|
|
@@ -281,25 +285,25 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
tmodels.add(model);
|
|
|
}
|
|
|
//执行第二步
|
|
|
- loadLocalContacts();
|
|
|
- }else{
|
|
|
+ loadLocalContacts();
|
|
|
+ } else {
|
|
|
//联网取企业架构
|
|
|
loadUASFriendsNet();
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//2
|
|
|
- public void loadIMContacts(){
|
|
|
+ public void loadIMContacts() {
|
|
|
ThreadPool.getThreadPool().addTask(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
- List<Friend> friends = FriendDao.getInstance().getFriends(MyApplication.getInstance().mLoginUser.getUserId());
|
|
|
- if (friends!=null){
|
|
|
- LogUtil.d("Test","IM好友不为空!");
|
|
|
- for (Friend entity:friends){
|
|
|
- ContactsModel model=new ContactsModel();
|
|
|
+ List<Friend> friends = FriendDao.getInstance().getFriends(MyApplication.getInstance().mLoginUser.getUserId());
|
|
|
+ if (friends != null) {
|
|
|
+ LogUtil.d("Test", "IM好友不为空!");
|
|
|
+ for (Friend entity : friends) {
|
|
|
+ ContactsModel model = new ContactsModel();
|
|
|
model.setImid(String.valueOf(entity.getUserId()));
|
|
|
model.setType(1);
|
|
|
model.setName(entity.getShowName());
|
|
|
@@ -311,28 +315,28 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
tmodels.add(model);
|
|
|
}
|
|
|
loadCompanyContacts();
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//联网取UU好友数据
|
|
|
loadUUFriendForNet();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
});
|
|
|
}
|
|
|
|
|
|
//3需要权限
|
|
|
- public void loadLocalContacts(){
|
|
|
+ public void loadLocalContacts() {
|
|
|
ThreadPool.getThreadPool().addTask(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
List<Contacts> contacts =
|
|
|
- ContactsUtils.getContacts1();
|
|
|
- if ( contacts !=null){
|
|
|
- for (Contacts entity: contacts ){
|
|
|
- ContactsModel model=new ContactsModel();
|
|
|
+ ContactsUtils.getContacts1();
|
|
|
+ if (contacts != null) {
|
|
|
+ for (Contacts entity : contacts) {
|
|
|
+ ContactsModel model = new ContactsModel();
|
|
|
model.setImid("0");
|
|
|
- model.setName(StringUtils.isEmpty(entity.getName())?entity.getNickname():entity.getName());
|
|
|
+ model.setName(StringUtils.isEmpty(entity.getName()) ? entity.getNickname() : entity.getName());
|
|
|
model.setType(3);
|
|
|
model.setEmail("");
|
|
|
model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
|
|
|
@@ -340,7 +344,7 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
model.setWhichsys("");
|
|
|
model.setCompany("");
|
|
|
tmodels.add(model);
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
contactsDao.save(tmodels);
|
|
|
getCaceData(false);
|
|
|
@@ -351,52 +355,61 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @desc:加载通讯录数据
|
|
|
- * @author:Arison on 2017/7/19
|
|
|
- */
|
|
|
- public void getCaceData(final boolean isHasNet){
|
|
|
+ * @desc:加载通讯录数据
|
|
|
+ * @author:Arison on 2017/7/19
|
|
|
+ */
|
|
|
+ public void getCaceData(final boolean isHasNet) {
|
|
|
ThreadPool.getThreadPool().addTask(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
- final List<ContactsModel> lists= getLocalContactsByDB();
|
|
|
- if (!ListUtils.isEmpty(lists)||!isHasNet){
|
|
|
- LogUtil.d("Test","缓存不为空!");
|
|
|
- getStateByPhones(lists);
|
|
|
- OAHttpHelper.getInstance().post(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- //更新ui
|
|
|
- if (adapter!=null) {
|
|
|
- models.clear();
|
|
|
- models.addAll(lists);
|
|
|
- adapter.notifyDataSetChanged();
|
|
|
- if (adapter.getCount()==0)emptyLayout.showEmpty();
|
|
|
- mlist.onRefreshComplete();
|
|
|
- voiceSearchView.getSearch_edit().setHint(lists.size()+"位联系人");
|
|
|
- dimssLoading();
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- }else{
|
|
|
- LogUtil.d("Test","-----------缓存为空!---------");
|
|
|
- tmodels.clear();
|
|
|
- loadIMContacts();
|
|
|
- }
|
|
|
+ final List<ContactsModel> lists = getLocalContactsByDB();
|
|
|
+ LogUtil.d("Test", "!ListUtils.isEmpty(lists)=" + !ListUtils.isEmpty(lists));
|
|
|
+ boolean falg = !ListUtils.isEmpty(lists) && !isHasNet;
|
|
|
+ LogUtil.d("Test", "缓存不为空!" + falg);
|
|
|
+ if (falg) {
|
|
|
+ LogUtil.d("Test", "缓存不为空!");
|
|
|
+ getStateByPhones(lists);
|
|
|
+ OAHttpHelper.getInstance().post(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ //更新ui
|
|
|
+ if (adapter != null) {
|
|
|
+ models.clear();
|
|
|
+ models.addAll(lists);
|
|
|
+ adapter.notifyDataSetChanged();
|
|
|
+ if (adapter.getCount() == 0) emptyLayout.showEmpty();
|
|
|
+ mlist.onRefreshComplete();
|
|
|
+ voiceSearchView.getSearch_edit().setHint(lists.size() + "位联系人");
|
|
|
+ dimssLoading();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ } else {
|
|
|
+ LogUtil.d("Test", "-----------缓存为空!---------");
|
|
|
+// tmodels.clear();
|
|
|
+// contactsDao.delete();
|
|
|
+// loadIMContacts();
|
|
|
+ if (!ListUtils.isEmpty(tmodels)) {
|
|
|
+ tmodels.clear();
|
|
|
+ }
|
|
|
+ contactsDao.delete();//删除缓存
|
|
|
+ loadUUFriendForNet();//先加载UU好友---》企业架构人员----》本地通讯录
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
- private List<ContactsModel> getLocalContactsByDB(){
|
|
|
- if (StringUtils.isEmpty(searchKey)){
|
|
|
- List<ContactsModel> models=contactsDao.find();
|
|
|
- return models;
|
|
|
- }else{
|
|
|
- return contactsDao.find(searchKey);
|
|
|
+
|
|
|
+ private List<ContactsModel> getLocalContactsByDB() {
|
|
|
+ if (StringUtils.isEmpty(searchKey)) {
|
|
|
+ List<ContactsModel> models = contactsDao.find();
|
|
|
+ return models;
|
|
|
+ } else {
|
|
|
+ return contactsDao.find(searchKey);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private List<EmployeesEntity> getEmListByDB() {
|
|
|
+ private List<EmployeesEntity> getEmListByDB() {
|
|
|
DBManager manager = new DBManager();
|
|
|
String master = CommonUtil.getMaster();
|
|
|
List<EmployeesEntity> emList = null;
|
|
|
@@ -404,20 +417,20 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
try {
|
|
|
emList = manager.select_getEmployee(new String[]{master}, "whichsys=?");
|
|
|
} catch (Exception e) {
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
manager.closeDB();
|
|
|
return emList;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
@Deprecated
|
|
|
- private void getStateByPhones(final List<ContactsModel> models){
|
|
|
+ private void getStateByPhones(final List<ContactsModel> models) {
|
|
|
StringBuilder builder = new StringBuilder();
|
|
|
- int i=0;
|
|
|
- for (ContactsModel u:models) {
|
|
|
- if (u.getType()==3) {
|
|
|
+ int i = 0;
|
|
|
+ for (ContactsModel u : models) {
|
|
|
+ if (u.getType() == 3) {
|
|
|
if (i == models.size() - 1) {
|
|
|
builder.append(u.getPhone());
|
|
|
} else {
|
|
|
@@ -431,14 +444,14 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
params.put("token", MyApplication.getInstance().mAccessToken);
|
|
|
params.put("userid", myUserId);
|
|
|
params.put("telephones", builder.toString());
|
|
|
- LogUtil.d("array myUserId="+myUserId);
|
|
|
- LogUtil.d("array builder.toString="+builder.toString());
|
|
|
+ LogUtil.d("array myUserId=" + myUserId);
|
|
|
+ LogUtil.d("array builder.toString=" + builder.toString());
|
|
|
StringJsonObjectRequest<String> request = new StringJsonObjectRequest<String>(
|
|
|
MyApplication.getInstance().getConfig().APP_QUER_YUSER, new Response.ErrorListener() {
|
|
|
@Override
|
|
|
public void onErrorResponse(VolleyError arg0) {
|
|
|
// ToastUtil.showErrorNet(MyApplication.getInstance());
|
|
|
- // showModel(models);
|
|
|
+ // showModel(models);
|
|
|
}
|
|
|
}, new StringJsonObjectRequest.Listener<String>() {
|
|
|
@Override
|
|
|
@@ -451,6 +464,7 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
}, String.class, params);
|
|
|
MyApplication.getInstance().getFastVolley().addDefaultRequest("Volley", request);
|
|
|
}
|
|
|
+
|
|
|
@Deprecated
|
|
|
private void hanlderAppQueryuserInThread(String message) {
|
|
|
if (new JsonValidator().validate(message)) {
|
|
|
@@ -460,7 +474,7 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
String user = object.getString("user");
|
|
|
JSONArray array = JSON.parseArray(user);
|
|
|
LogUtil.i("array=" + array);
|
|
|
-
|
|
|
+
|
|
|
if (!ListUtils.isEmpty(array)) {
|
|
|
JSONObject o = null;
|
|
|
// for (ContactsModel model:models){
|
|
|
@@ -471,13 +485,14 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
String telephone = OACheckUtil.getJson2Text(o, "telephone");
|
|
|
String isfriend = OACheckUtil.getJson2Text(o, "isfriend");
|
|
|
int _id = OACheckUtil.getJsonIntager(o, "_id");
|
|
|
- for (int j=0;j<models.size();j++) {
|
|
|
- ContactsModel model=models.get(j);
|
|
|
+ for (int j = 0; j < models.size(); j++) {
|
|
|
+ ContactsModel model = models.get(j);
|
|
|
if (model.getPhone().equals(telephone)) {
|
|
|
- if (isfriend.equals("0")){
|
|
|
+ if (isfriend.equals("0")) {
|
|
|
model.setType(2);//非好友
|
|
|
model.setImid(String.valueOf(_id));
|
|
|
- }else if (isfriend.equals("1")){
|
|
|
+ // contactsDao.update(model,String.valueOf(_id));
|
|
|
+ } else if (isfriend.equals("1")) {
|
|
|
model.setType(1);//好友
|
|
|
model.setImid(String.valueOf(_id));
|
|
|
}
|
|
|
@@ -488,19 +503,19 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
}
|
|
|
}
|
|
|
//计算全部数据完成
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void onResultForItems(View view,ContactsModel model,int position) {
|
|
|
- TextView textView=(TextView) view;
|
|
|
- String add=MyApplication.getInstance().getString(R.string.add);
|
|
|
- String invite=MyApplication.getInstance().getString(R.string.invite);
|
|
|
- if (textView.getText().toString().equals(add)){
|
|
|
- addUser(model,position);
|
|
|
+ public void onResultForItems(View view, ContactsModel model, int position) {
|
|
|
+ TextView textView = (TextView) view;
|
|
|
+ String add = MyApplication.getInstance().getString(R.string.add);
|
|
|
+ String invite = MyApplication.getInstance().getString(R.string.invite);
|
|
|
+ if (textView.getText().toString().equals(add)) {
|
|
|
+ addUser(model, position);
|
|
|
}
|
|
|
- if (textView.getText().toString().equals(invite)){
|
|
|
- invite(model,position);
|
|
|
+ if (textView.getText().toString().equals(invite)) {
|
|
|
+ invite(model, position);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -518,34 +533,37 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_ADD, new Response.ErrorListener() {
|
|
|
@Override
|
|
|
public void onErrorResponse(VolleyError arg0) {
|
|
|
- dimssLoading();
|
|
|
+ dimssLoading();
|
|
|
ToastUtil.showErrorNet(activity);
|
|
|
}
|
|
|
}, new StringJsonObjectRequest.Listener<AddAttentionResult>() {
|
|
|
@Override
|
|
|
public void onResponse(ObjectResult<AddAttentionResult> result) {
|
|
|
- dimssLoading();
|
|
|
+ dimssLoading();
|
|
|
boolean success = Result.defaultParser(MyApplication.getInstance(), result, true);
|
|
|
String message = result.toString();
|
|
|
if (success) {
|
|
|
showToast(R.string.add_attention_succ, R.color.load_submit);
|
|
|
- // 添加为关注
|
|
|
- User mUser=new User();
|
|
|
- mUser.setUserId(String.valueOf(user.getImid()));//已经开通了UU IM的人
|
|
|
- mUser.setNickName(user.getName());//手机通讯录的名字
|
|
|
- // 发送推送的消息
|
|
|
- NewFriendMessage mess = NewFriendMessage.createWillSendMessage(
|
|
|
- MyApplication.getInstance().mLoginUser, XmppMessage.TYPE_FRIEND, null, mUser);
|
|
|
- mXmppService.sendNewFriendMessage(mUser.getUserId(), mess);
|
|
|
- // 添加为好友
|
|
|
- NewFriendDao.getInstance().ascensionNewFriend(mess, Friend.STATUS_FRIEND);
|
|
|
-
|
|
|
-
|
|
|
- ContactsModel tData= models.get(position);
|
|
|
- tData.setType(1);
|
|
|
- LogUtil.d("Test","tdata:"+JSON.toJSONString(tData));
|
|
|
- contactsDao.update(tData);
|
|
|
- adapter.notifyDataSetChanged();
|
|
|
+ // 添加为关注
|
|
|
+ User mUser = new User();
|
|
|
+ mUser.setUserId(String.valueOf(user.getImid()));//已经开通了UU IM的人
|
|
|
+ mUser.setNickName(user.getName());//手机通讯录的名字
|
|
|
+ // 发送推送的消息
|
|
|
+ NewFriendMessage mess = NewFriendMessage.createWillSendMessage(
|
|
|
+ MyApplication.getInstance().mLoginUser, XmppMessage.TYPE_FRIEND, null, mUser);
|
|
|
+ mXmppService.sendNewFriendMessage(mUser.getUserId(), mess);
|
|
|
+ // 添加为好友
|
|
|
+ NewFriendDao.getInstance().ascensionNewFriend(mess, Friend.STATUS_FRIEND);
|
|
|
+
|
|
|
+
|
|
|
+ ContactsModel tData = models.get(position);
|
|
|
+ if (StringUtils.isEmpty(tData.getWhichsys())) {
|
|
|
+ tData.setWhichsys("");
|
|
|
+ }
|
|
|
+ tData.setType(1);
|
|
|
+ LogUtil.d("Test", "tdata:" + JSON.toJSONString(tData));
|
|
|
+ contactsDao.update(tData);
|
|
|
+ adapter.notifyDataSetChanged();
|
|
|
}
|
|
|
}
|
|
|
}, AddAttentionResult.class, params);
|
|
|
@@ -556,22 +574,23 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
private void invite(ContactsModel user, int position) {
|
|
|
LogUtil.i("invite");
|
|
|
final String name = CommonUtil.getName();
|
|
|
- final String phone = user.getPhone().trim().replaceAll(" ","");
|
|
|
- if (!com.xzjmyk.pm.activity.util.StringUtils.isMobileNumber(phone)) {
|
|
|
- showToast("选择人员电话号码为空或是格式不正确", R.color.load_submit);
|
|
|
- return;
|
|
|
- }
|
|
|
+ final String phone = user.getPhone().trim().replaceAll(" ", "");
|
|
|
+ ;
|
|
|
+// if (!com.xzjmyk.pm.activity.util.StringUtils.isMobileNumber(phone)) {
|
|
|
+// showToast("选择人员电话号码为空或是格式不正确", R.color.load_submit);
|
|
|
+// return;
|
|
|
+// }
|
|
|
StringJsonObjectRequest<AddAttentionResult> request = new StringJsonObjectRequest<AddAttentionResult>(
|
|
|
Request.Method.POST, "http://message.ubtob.com/sms/send", new Response.ErrorListener() {
|
|
|
@Override
|
|
|
public void onErrorResponse(VolleyError arg0) {
|
|
|
- dimssLoading();
|
|
|
+ dimssLoading();
|
|
|
}
|
|
|
}, new StringJsonObjectRequest.Listener<AddAttentionResult>() {
|
|
|
@Override
|
|
|
public void onResponse(ObjectResult<AddAttentionResult> result) {
|
|
|
String message = result.toString();
|
|
|
- showToast("短信发送成功", R.color.load_submit);
|
|
|
+ showToast("短信发送成功", R.color.load_submit);
|
|
|
LogUtil.i("message=" + message);
|
|
|
}
|
|
|
}, AddAttentionResult.class, null) {
|
|
|
@@ -607,17 +626,22 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
public void result(@NonNull boolean success, @NonNull int what, @Nullable String message) {
|
|
|
try {
|
|
|
if (success) {
|
|
|
+ String role = UserRoleUtils.getUserRole();
|
|
|
+ if ("1".equals(role)) {
|
|
|
+ //个人用户不需要加载企业架构
|
|
|
+ loadLocalContacts();
|
|
|
+ }
|
|
|
boolean isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
|
|
|
JSONObject object = JSON.parseObject(message);
|
|
|
- List<EmployeesEntity> emdatas=null;
|
|
|
+ List<EmployeesEntity> emdatas = null;
|
|
|
if (isB2b) {
|
|
|
- emdatas =CompanyHandlerInfoUtil.getEmployeesByB2b(object);
|
|
|
+ emdatas = CompanyHandlerInfoUtil.getEmployeesByB2b(object);
|
|
|
} else {
|
|
|
- emdatas = CompanyHandlerInfoUtil.getEmployeesByNet(object);
|
|
|
+ emdatas = CompanyHandlerInfoUtil.getEmployeesByNet(object);
|
|
|
}
|
|
|
- if (ListUtils.isEmpty(emdatas))return;
|
|
|
- for (EmployeesEntity entity:emdatas){
|
|
|
- ContactsModel model=new ContactsModel();
|
|
|
+ if (ListUtils.isEmpty(emdatas)) return;
|
|
|
+ for (EmployeesEntity entity : emdatas) {
|
|
|
+ ContactsModel model = new ContactsModel();
|
|
|
model.setImid(String.valueOf(entity.getEm_IMID()));
|
|
|
model.setType(2);
|
|
|
model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
|
|
|
@@ -629,7 +653,7 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
tmodels.add(model);
|
|
|
}
|
|
|
loadLocalContacts();
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
loadLocalContacts();
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
@@ -641,11 +665,12 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
|
|
|
|
|
|
String HASHCODE = Integer.toHexString(this.hashCode()) + "@";
|
|
|
+
|
|
|
private void loadUUFriendForNet() {
|
|
|
HashMap<String, String> params = new HashMap<String, String>();
|
|
|
params.put("access_token", MyApplication.getInstance().mAccessToken);
|
|
|
- LogUtil.d("Test", "url:"+MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST);
|
|
|
- LogUtil.d("Test","access_token"+MyApplication.getInstance().mAccessToken);
|
|
|
+ LogUtil.d("Test", "url:" + MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST);
|
|
|
+ LogUtil.d("Test", "access_token" + MyApplication.getInstance().mAccessToken);
|
|
|
StringJsonArrayRequest<AttentionUser> request = new StringJsonArrayRequest<AttentionUser>(
|
|
|
MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST, new Response.ErrorListener() {
|
|
|
@Override
|
|
|
@@ -655,17 +680,17 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
}, new StringJsonArrayRequest.Listener<AttentionUser>() {
|
|
|
@Override
|
|
|
public void onResponse(ArrayResult<AttentionUser> result) {
|
|
|
- LogUtil.d("Test","result:"+result);
|
|
|
+ LogUtil.d("Test", "result:" + result);
|
|
|
boolean success = Result.defaultParser(MyApplication.getInstance(), result, false);
|
|
|
if (success) {
|
|
|
FriendDao.getInstance().addAttentionUsers(OAHttpHelper.getInstance(), MyApplication.getInstance().mLoginUser.getUserId(), result.getData(),
|
|
|
new OnCompleteListener() {
|
|
|
@Override
|
|
|
public void onCompleted() {
|
|
|
- List<Friend> friends = FriendDao.getInstance().getFriends(MyApplication.getInstance().mLoginUser.getUserId());
|
|
|
- if (!ListUtils.isEmpty(friends)){
|
|
|
- for (Friend entity:friends){
|
|
|
- ContactsModel model=new ContactsModel();
|
|
|
+ List<Friend> friends = FriendDao.getInstance().getFriends(MyApplication.getInstance().mLoginUser.getUserId());
|
|
|
+ if (!ListUtils.isEmpty(friends)) {
|
|
|
+ for (Friend entity : friends) {
|
|
|
+ ContactsModel model = new ContactsModel();
|
|
|
model.setImid(String.valueOf(entity.getUserId()));
|
|
|
model.setType(1);
|
|
|
model.setName(entity.getShowName());
|
|
|
@@ -677,58 +702,64 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
|
|
|
tmodels.add(model);
|
|
|
}
|
|
|
}
|
|
|
- loadUASFriendsNet();
|
|
|
+ loadUASFriendsNet();
|
|
|
}
|
|
|
});
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
loadUASFriendsNet();
|
|
|
}
|
|
|
}
|
|
|
}, AttentionUser.class, params);
|
|
|
MyApplication.getInstance().getFastVolley().addDefaultRequest(HASHCODE, request);
|
|
|
}
|
|
|
-
|
|
|
- private void searchContactsByNet(String key){
|
|
|
+
|
|
|
+ private void searchContactsByNet(String key) {
|
|
|
String url = Constants.IM_BASE_URL + "user/appSearch";
|
|
|
Map<String, Object> params = new HashMap<>();
|
|
|
params.put("token", MyApplication.getInstance().mAccessToken);
|
|
|
params.put("name", key);
|
|
|
-
|
|
|
+
|
|
|
LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
|
|
|
headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
|
|
|
ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x01, null, null, "post");
|
|
|
}
|
|
|
-
|
|
|
- private Handler mHandler=new Handler(){
|
|
|
- @Override
|
|
|
- public void handleMessage(Message msg) {
|
|
|
- switch (msg.what){
|
|
|
- case 0x01:
|
|
|
- String result=msg.getData().getString("result");
|
|
|
- String root=JSON.parseObject(result).getString("result");
|
|
|
- JSONArray array=JSON.parseArray(root);
|
|
|
- List<ContactsModel> xmodels=new ArrayList<>();
|
|
|
- for (int i=0;i<array.size();i++){
|
|
|
- ContactsModel model=new ContactsModel();
|
|
|
- model.setType(2);
|
|
|
- model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
|
|
|
- model.setImid(array.getJSONObject(i).getString("imid"));
|
|
|
- model.setName(array.getJSONObject(i).getString("nickname"));
|
|
|
- model.setPhone(array.getJSONObject(i).getString("telephone"));
|
|
|
- xmodels.add(model);
|
|
|
- }
|
|
|
- if (!ListUtils.isEmpty(models)){
|
|
|
- models.clear();
|
|
|
- models.addAll(xmodels);
|
|
|
- if (adapter!=null) {
|
|
|
- adapter.notifyDataSetChanged();
|
|
|
- }
|
|
|
- if (adapter.getCount()==0){
|
|
|
- emptyLayout.showEmpty();
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- };
|
|
|
+
|
|
|
+ private Handler mHandler = new Handler() {
|
|
|
+ @Override
|
|
|
+ public void handleMessage(Message msg) {
|
|
|
+ switch (msg.what) {
|
|
|
+ case 0x01:
|
|
|
+ try {
|
|
|
+ String result = msg.getData().getString("result");
|
|
|
+ String root = JSON.parseObject(result).getString("result");
|
|
|
+ JSONArray array = JSON.parseArray(root);
|
|
|
+ List<ContactsModel> xmodels = new ArrayList<>();
|
|
|
+ for (int i = 0; i < array.size(); i++) {
|
|
|
+ ContactsModel model = new ContactsModel();
|
|
|
+ model.setType(2);
|
|
|
+ model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
|
|
|
+ model.setImid(array.getJSONObject(i).getString("imid"));
|
|
|
+ model.setName(array.getJSONObject(i).getString("nickname"));
|
|
|
+ model.setPhone(array.getJSONObject(i).getString("telephone"));
|
|
|
+ xmodels.add(model);
|
|
|
+ }
|
|
|
+ if (!ListUtils.isEmpty(models)) {
|
|
|
+ models.clear();
|
|
|
+ models.addAll(xmodels);
|
|
|
+ }else{
|
|
|
+ models.addAll(xmodels);
|
|
|
+ }
|
|
|
+ if (adapter != null) {
|
|
|
+ adapter.notifyDataSetChanged();
|
|
|
+ }
|
|
|
+ if (adapter.getCount() == 0) {
|
|
|
+ emptyLayout.showEmpty();
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
}
|