|
|
@@ -11,6 +11,7 @@ import android.os.Bundle;
|
|
|
import android.os.Handler;
|
|
|
import android.os.IBinder;
|
|
|
import android.os.Message;
|
|
|
+import android.support.v7.widget.RecyclerView;
|
|
|
import android.text.TextUtils;
|
|
|
import android.util.Log;
|
|
|
import android.view.LayoutInflater;
|
|
|
@@ -22,7 +23,6 @@ import android.widget.BaseAdapter;
|
|
|
import android.widget.Button;
|
|
|
import android.widget.CheckBox;
|
|
|
import android.widget.ImageView;
|
|
|
-import android.widget.ListView;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
@@ -60,7 +60,6 @@ import com.xzjmyk.pm.activity.util.ImageUtil;
|
|
|
import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
|
|
|
import com.xzjmyk.pm.activity.util.TimeUtils;
|
|
|
import com.xzjmyk.pm.activity.util.ToastUtil;
|
|
|
-import com.xzjmyk.pm.activity.util.ViewHolder;
|
|
|
import com.xzjmyk.pm.activity.view.ClearEditText;
|
|
|
import com.xzjmyk.pm.activity.view.HorizontalListView;
|
|
|
import com.xzjmyk.pm.activity.volley.ObjectResult;
|
|
|
@@ -94,12 +93,12 @@ public class SelectContactsActivity extends BaseActivity {
|
|
|
|
|
|
private final int LAST_ICON = -1;
|
|
|
|
|
|
- private ListView mListView;
|
|
|
+ private RecyclerView mListView;
|
|
|
private HorizontalListView mHorizontalListView;
|
|
|
private Button mOkBtn;
|
|
|
|
|
|
private List<Friend> mFriendList;
|
|
|
- private ListViewAdapter mAdapter;
|
|
|
+ private RecycAdapter mAdapter;
|
|
|
private List<Integer> mSelectPositions;
|
|
|
private HorListViewAdapter mHorAdapter;
|
|
|
public ProgressDialog mProgressDialog;
|
|
|
@@ -113,8 +112,8 @@ public class SelectContactsActivity extends BaseActivity {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.activity_select_contacts);
|
|
|
mFriendList = new ArrayList<Friend>();
|
|
|
- mAdapter = new ListViewAdapter();
|
|
|
- mSelectPositions = new ArrayList<Integer>();
|
|
|
+ mAdapter = new RecycAdapter();
|
|
|
+ mSelectPositions = new ArrayList<>();
|
|
|
mSelectPositions.add(LAST_ICON);// 增加一个虚线框的位置
|
|
|
mHorAdapter = new HorListViewAdapter();
|
|
|
mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
|
|
|
@@ -145,23 +144,23 @@ public class SelectContactsActivity extends BaseActivity {
|
|
|
|
|
|
private void initView() {
|
|
|
getSupportActionBar().setTitle(R.string.select_contacts);
|
|
|
- mListView = (ListView) findViewById(R.id.list_view);
|
|
|
+ mListView = (RecyclerView) findViewById(R.id.list_view);
|
|
|
mHorizontalListView = (HorizontalListView) findViewById(R.id.horizontal_list_view);
|
|
|
mOkBtn = (Button) findViewById(R.id.ok_btn);
|
|
|
mListView.setAdapter(mAdapter);
|
|
|
mHorizontalListView.setAdapter(mHorAdapter);
|
|
|
- mOkBtn.setText(getString(R.string.add_chat_ok_btn, mSelectPositions.size() - 1));
|
|
|
-
|
|
|
- mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
- @Override
|
|
|
- public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
|
|
|
- if (hasSelected(position)) {
|
|
|
- removeSelect(position);
|
|
|
- } else {
|
|
|
- addSelect(position);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ //TODO mOkBtn.setText(getString(R.string.add_chat_ok_btn, mSelectPositions.size() - 1));
|
|
|
+ //TODO
|
|
|
+// mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
+// @Override
|
|
|
+// public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
|
|
|
+// if (hasSelected(position)) {
|
|
|
+// removeSelect(position);
|
|
|
+// } else {
|
|
|
+// addSelect(position);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// });
|
|
|
|
|
|
mHorizontalListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
@Override
|
|
|
@@ -170,9 +169,9 @@ public class SelectContactsActivity extends BaseActivity {
|
|
|
return;
|
|
|
}
|
|
|
mSelectPositions.remove(position);
|
|
|
- mAdapter.notifyDataSetInvalidated();
|
|
|
+ mAdapter.notifyDataSetChanged();
|
|
|
mHorAdapter.notifyDataSetInvalidated();
|
|
|
- mOkBtn.setText(getString(R.string.add_chat_ok_btn, mSelectPositions.size() - 1));
|
|
|
+//TODO mOkBtn.setText(getString(R.string.add_chat_ok_btn, mSelectPositions.size() - 1));
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -212,9 +211,9 @@ public class SelectContactsActivity extends BaseActivity {
|
|
|
private void addSelect(int position) {
|
|
|
if (!hasSelected(position)) {
|
|
|
mSelectPositions.add(0, position);
|
|
|
- mAdapter.notifyDataSetInvalidated();
|
|
|
+ mAdapter.notifyDataSetChanged();
|
|
|
mHorAdapter.notifyDataSetInvalidated();
|
|
|
- mOkBtn.setText(getString(R.string.add_chat_ok_btn, mSelectPositions.size() - 1));
|
|
|
+ //TODO mOkBtn.setText(getString(R.string.add_chat_ok_btn, mSelectPositions.size() - 1));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -231,47 +230,86 @@ public class SelectContactsActivity extends BaseActivity {
|
|
|
|
|
|
private void removeSelect(int position) {
|
|
|
mSelectPositions.remove(Integer.valueOf(position));
|
|
|
- mAdapter.notifyDataSetInvalidated();
|
|
|
+ mAdapter.notifyDataSetChanged();
|
|
|
mHorAdapter.notifyDataSetInvalidated();
|
|
|
- mOkBtn.setText(getString(R.string.add_chat_ok_btn, mSelectPositions.size() - 1));
|
|
|
+ //TODO mOkBtn.setText(getString(R.string.add_chat_ok_btn, mSelectPositions.size() - 1));
|
|
|
}
|
|
|
|
|
|
|
|
|
- private class ListViewAdapter extends BaseAdapter {
|
|
|
+ private class RecycAdapter extends RecyclerView.Adapter<RecycAdapter.ViewHolder> {
|
|
|
@Override
|
|
|
- public int getCount() {
|
|
|
- return mFriendList.size();
|
|
|
+ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
|
+ View v = LayoutInflater.from(mContext).inflate(R.layout.row_select_contacts, parent, false);
|
|
|
+ return new ViewHolder(v);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Object getItem(int position) {
|
|
|
- return mFriendList.get(position);
|
|
|
+ public void onBindViewHolder(ViewHolder holder, int position) {
|
|
|
+ AvatarHelper.getInstance().displayAvatar(mFriendList.get(position).getUserId(), holder.avatarImg, true);
|
|
|
+ holder.userNameTv.setText(mFriendList.get(position).getNickName());
|
|
|
+ if (mSelectPositions.contains(Integer.valueOf(position))) {
|
|
|
+ holder.checkBox.setChecked(true);
|
|
|
+ } else {
|
|
|
+ holder.checkBox.setChecked(false);
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public long getItemId(int position) {
|
|
|
- return position;
|
|
|
+ public int getItemCount() {
|
|
|
+ return mFriendList.size();
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public View getView(int position, View convertView, ViewGroup parent) {
|
|
|
- if (convertView == null) {
|
|
|
- convertView = LayoutInflater.from(mContext).inflate(R.layout.row_select_contacts, parent, false);
|
|
|
- }
|
|
|
- ImageView avatarImg = ViewHolder.get(convertView, R.id.avatar_img);
|
|
|
- TextView userNameTv = ViewHolder.get(convertView, R.id.user_name_tv);
|
|
|
- CheckBox checkBox = ViewHolder.get(convertView, R.id.check_box);
|
|
|
- AvatarHelper.getInstance().displayAvatar(mFriendList.get(position).getUserId(), avatarImg, true);
|
|
|
- userNameTv.setText(mFriendList.get(position).getNickName());
|
|
|
- checkBox.setChecked(false);
|
|
|
- if (mSelectPositions.contains(Integer.valueOf(position))) {
|
|
|
- checkBox.setChecked(true);
|
|
|
+ class ViewHolder extends RecyclerView.ViewHolder {
|
|
|
+ ImageView avatarImg;
|
|
|
+ TextView userNameTv;
|
|
|
+ CheckBox checkBox;
|
|
|
+
|
|
|
+ public ViewHolder(View itemView) {
|
|
|
+ super(itemView);
|
|
|
+ avatarImg = (ImageView) itemView.findViewById(R.id.avatar_img);
|
|
|
+ userNameTv = (TextView) itemView.findViewById(R.id.user_name_tv);
|
|
|
+ checkBox = (CheckBox) itemView.findViewById(R.id.check_box);
|
|
|
}
|
|
|
- return convertView;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+// private class ListViewAdapter extends BaseAdapter {
|
|
|
+// @Override
|
|
|
+// public int getCount() {
|
|
|
+// return mFriendList.size();
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public Object getItem(int position) {
|
|
|
+// return mFriendList.get(position);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public long getItemId(int position) {
|
|
|
+// return position;
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public View getView(int position, View convertView, ViewGroup parent) {
|
|
|
+// if (convertView == null) {
|
|
|
+// convertView = LayoutInflater.from(mContext).inflate(R.layout.row_select_contacts, parent, false);
|
|
|
+// }
|
|
|
+// ImageView avatarImg = ViewHolder.get(convertView, R.id.avatar_img);
|
|
|
+// TextView userNameTv = ViewHolder.get(convertView, R.id.user_name_tv);
|
|
|
+// CheckBox checkBox = ViewHolder.get(convertView, R.id.check_box);
|
|
|
+// AvatarHelper.getInstance().displayAvatar(mFriendList.get(position).getUserId(), avatarImg, true);
|
|
|
+// userNameTv.setText(mFriendList.get(position).getNickName());
|
|
|
+// checkBox.setChecked(false);
|
|
|
+// if (mSelectPositions.contains(Integer.valueOf(position))) {
|
|
|
+// checkBox.setChecked(true);
|
|
|
+// }
|
|
|
+// return convertView;
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+
|
|
|
private class HorListViewAdapter extends BaseAdapter {
|
|
|
@Override
|
|
|
public int getCount() {
|
|
|
@@ -317,7 +355,6 @@ public class SelectContactsActivity extends BaseActivity {
|
|
|
* @return:
|
|
|
*/
|
|
|
private void showCreateGroupChatDialog() {
|
|
|
-
|
|
|
if (mXmppService == null || !mXmppService.isMucEnable()) {
|
|
|
ToastUtil.showToast(mContext, R.string.service_start_failed);
|
|
|
return;
|
|
|
@@ -406,20 +443,19 @@ public class SelectContactsActivity extends BaseActivity {
|
|
|
inviteUsers.add(userId);
|
|
|
}
|
|
|
//开启线程处理合成群头像操作
|
|
|
- final Thread uploadImageTask =
|
|
|
- new Thread(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- uploadIsEnd = false;//开始上传任务
|
|
|
- photoId = NumberUtils.generateNumber2();//八位不重复随机数
|
|
|
- inviteUsers.add(0, MyApplication.getInstance().mLoginUser.getUserId());
|
|
|
- image = createChatImage(inviteUsers);
|
|
|
- Message msg = mhandler.obtainMessage();
|
|
|
- msg.getData().putString("roomjId", roomJid);
|
|
|
- msg.what = uploadFile;
|
|
|
- mhandler.sendMessage(msg);
|
|
|
- }
|
|
|
- });
|
|
|
+ final Thread uploadImageTask = new Thread(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ uploadIsEnd = false;//开始上传任务
|
|
|
+ photoId = NumberUtils.generateNumber2();//八位不重复随机数
|
|
|
+ inviteUsers.add(0, MyApplication.getInstance().mLoginUser.getUserId());
|
|
|
+ image = createChatImage(inviteUsers);
|
|
|
+ Message msg = mhandler.obtainMessage();
|
|
|
+ msg.getData().putString("roomjId", roomJid);
|
|
|
+ msg.what = uploadFile;
|
|
|
+ mhandler.sendMessage(msg);
|
|
|
+ }
|
|
|
+ });
|
|
|
uploadImageTask.start();
|
|
|
params.put("text", JSON.toJSONString(inviteUsers));
|
|
|
|
|
|
@@ -624,22 +660,17 @@ public class SelectContactsActivity extends BaseActivity {
|
|
|
* @return:
|
|
|
*/
|
|
|
public void updateIMChatImageId(String roomjId, String photoId) {
|
|
|
-// this.uploadIsEnd=true;
|
|
|
String url = MyApplication.getInstance().getConfig().apiUrl + "room/setRelationGroupPhoto";
|
|
|
final String requestTag = "loginManagerSystem";
|
|
|
Map<String, String> params = new HashMap<String, String>();
|
|
|
params.put("access_token", MyApplication.getInstance().mAccessToken);
|
|
|
params.put("roomId", roomjId);
|
|
|
params.put("photoid", photoId);
|
|
|
-// final ProgressDialog dialog = ProgressDialogUtil.init(mContext, null, getString(R.string.please_wait), true);
|
|
|
-// ProgressDialogUtil.show(dialog);
|
|
|
StringJsonObjectRequest<String> mRequest = new StringJsonObjectRequest<String>(
|
|
|
Request.Method.GET, url,
|
|
|
new Response.ErrorListener() {
|
|
|
@Override
|
|
|
public void onErrorResponse(VolleyError volleyError) {
|
|
|
-// ProgressDialogUtil.dismiss(dialog);
|
|
|
-// ToastUtil.showErrorNet(mContext);
|
|
|
}
|
|
|
},
|
|
|
new StringJsonObjectRequest.Listener<String>() {
|
|
|
@@ -674,7 +705,6 @@ public class SelectContactsActivity extends BaseActivity {
|
|
|
List<MyBitmapEntity> mList = new LinkedList<MyBitmapEntity>();
|
|
|
String value = PropertiesUtil.readData(this, String.valueOf(count),
|
|
|
R.raw.data);
|
|
|
-// LogUtil.d("value=>" + value);
|
|
|
String[] arr1 = value.split(";");
|
|
|
int length = arr1.length;
|
|
|
for (int i = 0; i < length; i++) {
|