Browse Source

群图片

gongpm 9 years ago
parent
commit
1c8deb062b

+ 3 - 10
WeiChat/build.gradle

@@ -2,18 +2,12 @@ apply plugin: 'com.android.application'
 
 android {
     signingConfigs {
-//        发布版 {
+//        config {
 //            keyPassword '13237658359'
-//            storeFile file('C:/Users/Administrator/Desktop/我的文档/applicationsignname[20150409]')
+//            storeFile file('C:/Users/Arisono/Desktop/applicationsignname[20150409]')
 //            storePassword '13237658359'
 //            keyAlias 'jie-20150409'
 //        }
-        config {
-            keyPassword '13237658359'
-            storeFile file('C:/Users/Arisono/Desktop/applicationsignname[20150409]')
-            storePassword '13237658359'
-            keyAlias 'jie-20150409'
-        }
     }
     compileSdkVersion 22
     buildToolsVersion "22.0.1"
@@ -36,8 +30,7 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
         }
         debug {
-//            signingConfig signingConfigs.发布版
-            signingConfig signingConfigs.config
+//            signingConfig signingConfigs.config
         }
     }
 }

+ 0 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java

@@ -216,7 +216,6 @@ public class MyApplication extends Application {
 				// 最多缓存50M的图片
 				.discCacheFileNameGenerator(new Md5FileNameGenerator()).memoryCache(memoryCache).tasksProcessingOrder(QueueProcessingType.LIFO)
 				.threadPriority(Thread.NORM_PRIORITY - 2).threadPoolSize(4).build();
-
 		// Initialize ImageLoader with configuration.
 		ImageLoader.getInstance().init(config);
 	}

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/message/MucRoom.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.annotation.JSONField;
 import java.util.List;
 
 public class MucRoom {
+
     private String id;// 房间Id
     private String jid;// 房间jid
     private String name;// 房间名字

+ 57 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/helper/AvatarHelper.java

@@ -88,6 +88,52 @@ public class AvatarHelper {
 //            return;
 
     }
+    public void displayRoomAvatar(String userId, final ImageView imageView, final boolean isThumb) {
+        final String url = getAvatarUrl(userId, isThumb);
+        if (TextUtils.isEmpty(url)) {
+            return;
+        }
+
+        Long lastCheckTime = mCheckTimeMaps.get(url);
+        if (lastCheckTime == null || System.currentTimeMillis() - lastCheckTime > 5 * 60 * 1000) {// 至少间隔5分钟检测一下
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    long lastModifyTime = getLastModify(url);
+                    long localLastModified = 0;
+                    final File localFile = ImageLoader.getInstance().getDiscCache().get(url);
+                    if (localFile != null && localFile.exists()) {
+                        localLastModified = localFile.lastModified();
+                    }
+                    final boolean delete = localLastModified < lastModifyTime;
+                    mHandler.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            mCheckTimeMaps.put(url, System.currentTimeMillis());
+                            if (delete) {
+                                if (localFile != null) {
+                                    localFile.delete();
+                                }
+                                List<String> keys = MemoryCacheUtil.findCacheKeysForImageUri(url, ImageLoader.getInstance().getMemoryCache());
+                                if (keys != null && keys.size() > 0) {
+                                    for (String key : keys) {
+                                        ImageLoader.getInstance().getMemoryCache().remove(key);
+                                    }
+                                }
+                            }
+                            display(url, imageView, isThumb);
+                        }
+                    });
+
+                }
+            }).start();
+        } else {
+            display(url, imageView, isThumb);
+        }
+    }
+
+
+
 
     public void displayAvatar(String userId, final ImageView imageView, final boolean isThumb) {
         final String url = getAvatarUrl(userId, isThumb);
@@ -232,7 +278,16 @@ public class AvatarHelper {
             display(url, imageAware, isThumb);
         }
     }
-
+    public static String getRoomAvatarUrl(String userId, boolean isThumb) {
+        String url = null;
+        if (isThumb) {
+            url = MyApplication.getInstance().getConfig().AVATAR_THUMB_PREFIX + "/" +  "/" + userId + ".jpg";
+        } else {
+            url = MyApplication.getInstance().getConfig().AVATAR_ORIGINAL_PREFIX + "/" +   "/" + userId + ".jpg";
+        }
+        Log.i("gongpengming", url);
+        return url;
+    }
     public static String getAvatarUrl(String userId, boolean isThumb) {
         if (TextUtils.isEmpty(userId)) {
             return null;
@@ -254,6 +309,7 @@ public class AvatarHelper {
         } else {
             url = MyApplication.getInstance().getConfig().AVATAR_ORIGINAL_PREFIX + "/" + dirName + "/" + userId + ".jpg";
         }
+        Log.i("gongpengming", url);
         return url;
     }
 

+ 2 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/CompanyContactsActivity.java

@@ -127,6 +127,7 @@ public class CompanyContactsActivity extends BaseActivity {
                     break;
                 case LOAD_SUCCESS_ALLDATA:
                     String result = msg.getData().getString("result");
+                    Log.i("gongpengming",result);
                     JSONObject jsonobject = JSON.parseObject(result);
                     String server_time = jsonobject.getString("sysdate");
                     List<HrorgsEntity> hrorgsEntities = JSON.parseArray(jsonobject.getString("hrorgs"), HrorgsEntity.class);
@@ -667,6 +668,7 @@ public class CompanyContactsActivity extends BaseActivity {
         String url = Constants.getAppBaseUrl(this) + "mobile/getAllHrorgEmps.action";
         final Map<String, Object> param = new HashMap<>();
         param.put("master", master);
+        Log.i("gongpengming", master);
         if (lastdate == null) {
             lastdate = "";
         }

+ 360 - 284
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/groupchat/GroupChatFragment.java

@@ -6,6 +6,7 @@ import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.Environment;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -24,308 +25,383 @@ import com.android.volley.Response.ErrorListener;
 import com.android.volley.VolleyError;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
 import com.xzjmyk.pm.activity.AppConfig;
-import com.xzjmyk.pm.activity.db.dao.FriendDao;
-import com.xzjmyk.pm.activity.helper.AvatarHelper;
-import com.xzjmyk.pm.activity.ui.message.MucChatActivity;
-import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
-import com.xzjmyk.pm.activity.volley.ArrayResult;
-import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
 import com.xzjmyk.pm.activity.AppConstant;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.Friend;
 import com.xzjmyk.pm.activity.bean.message.MucRoom;
 import com.xzjmyk.pm.activity.broadcast.MucgroupUpdateUtil;
+import com.xzjmyk.pm.activity.db.dao.FriendDao;
+import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.base.EasyFragment;
+import com.xzjmyk.pm.activity.ui.message.MucChatActivity;
+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.volley.ArrayResult;
 import com.xzjmyk.pm.activity.volley.Result;
+import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
+
+import org.apache.http.Header;
 
+import java.io.File;
+import java.io.FileNotFoundException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
 public class GroupChatFragment extends EasyFragment {
-	private PullToRefreshListView mPullToRefreshListView;
-	private List<MucRoom> mMucRooms;
-	private MucRoomAdapter mAdapter;
-	private int mPageIndex = 0;
-	private BaseActivity mActivity;
-	private boolean mNeedUpdate = true;
-	private BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() {
-		@Override
-		public void onReceive(Context context, Intent intent) {
-			if (intent.getAction().equals(MucgroupUpdateUtil.ACTION_UPDATE)) {
-				if (isResumed()) {
-					requestData(true);
-				} else {
-					mNeedUpdate = true;
-				}
-			}
-		}
-	};
-
-	public GroupChatFragment() {
-		mMucRooms = new ArrayList<MucRoom>();
-		mAdapter = new MucRoomAdapter();
-	}
-
-	@Override
-	public void onCreate(Bundle savedInstanceState) {
-		super.onCreate(savedInstanceState);
-		setHasOptionsMenu(true);
-		getActivity().registerReceiver(mUpdateReceiver,
-				MucgroupUpdateUtil.getUpdateActionFilter());
-
-	}
-
-	@Override
-	public void onDestroy() {
-		super.onDestroy();
-		getActivity().unregisterReceiver(mUpdateReceiver);
-	}
-
-	@Override
-	public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-		inflater.inflate(R.menu.menu_add_icon, menu);
-		super.onCreateOptionsMenu(menu, inflater);
-	}
-    
-	@Override
-	public boolean onOptionsItemSelected(MenuItem item) {
-		if (item.getItemId() == R.id.add_item) {
-			startActivity(new Intent(getActivity(),
-					SelectContactsActivity.class));
-		}
-		return super.onOptionsItemSelected(item);
-	}
-
-	@Override
-	protected int inflateLayoutId() {
-		return R.layout.layout_pullrefresh_list;
-	}
-
-	@Override
-	protected void onCreateView(Bundle savedInstanceState, boolean createView) {
-		if (createView) {
-			initView();
-		}
-	}
-
-	@SuppressLint("InflateParams")
-	private void initView() {
-		mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
-		mPullToRefreshListView.setAdapter(mAdapter);
-
-		View emptyView = LayoutInflater.from(getActivity()).inflate(
-				R.layout.layout_list_empty_view, null);
-		mPullToRefreshListView.setEmptyView(emptyView);
-
-		mPullToRefreshListView.getRefreshableView().setAdapter(mAdapter);
-
-		mPullToRefreshListView
-				.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
-					@Override
-					public void onPullDownToRefresh(
-							PullToRefreshBase<ListView> refreshView) {
-						requestData(true);
-					}
-
-					@Override
-					public void onPullUpToRefresh(
-							PullToRefreshBase<ListView> refreshView) {
-						requestData(false);
-					}
-				});
-
-		/**@注释:点击进入房间的逻辑 */
-		mPullToRefreshListView.getRefreshableView().setOnItemClickListener(
-				new AdapterView.OnItemClickListener() {
-					@Override
-					public void onItemClick(AdapterView<?> parent, View view,
-							int position, long id) {
-						MucRoom room = mMucRooms.get((int) id);
-						String loginUserId = MyApplication.getInstance().mLoginUser
-								.getUserId();
-						Friend friend = FriendDao.getInstance().getFriend(
-								loginUserId, room.getJid());
-						if (friend == null) {// friend为null,说明之前没加入过该房间,那么调用接口加入
-												// 将房间作为一个好友存到好友表
-							joinRoom(room, loginUserId);
-						} else {
-							interMucChat(room.getJid(), room.getName());
-						}
-
-					}
-				});
-	}
-
-	private void interMucChat(String roomJid, String roomName) {
-		Intent intent = new Intent(getActivity(), MucChatActivity.class);
-		intent.putExtra(AppConstant.EXTRA_USER_ID, roomJid);
-		intent.putExtra(AppConstant.EXTRA_NICK_NAME, roomName);
-		intent.putExtra(AppConstant.EXTRA_IS_GROUP_CHAT, true);
-		startActivity(intent);
-	}
-
-	private void joinRoom(final MucRoom room, final String loginUserId) {
-		Log.d("roamer","joinRoom");
-		HashMap<String, String> params = new HashMap<String, String>();
-		params.put("access_token", MyApplication.getInstance().mAccessToken);
-		params.put("roomId", room.getId());
-		if (room.getUserId() == loginUserId)
-			params.put("type", "1");
-		else
-			params.put("type", "2");
-
-		final ProgressDialog dialog = ProgressDialogUtil.init(getActivity(),
-				null, getString(R.string.please_wait));
-		ProgressDialogUtil.show(dialog);
-
-		StringJsonArrayRequest<Void> request = new StringJsonArrayRequest<Void>(
-				mActivity.mConfig.ROOM_JOIN, new ErrorListener() {
-					@Override
-					public void onErrorResponse(VolleyError arg0) {
-						ToastUtil.showErrorNet(getActivity());
-						ProgressDialogUtil.dismiss(dialog);
-					}
-				}, new StringJsonArrayRequest.Listener<Void>() {
-					@Override
-					public void onResponse(ArrayResult<Void> result) {
-						boolean success = Result.defaultParser(getActivity(),
-								result, true);
-						if (success) {
-							Friend friend = new Friend();// 将房间也存为好友
-							friend.setOwnerId(loginUserId);
-							friend.setUserId(room.getJid());
-							friend.setNickName(room.getName());
-							friend.setDescription(room.getDesc());
-							friend.setRoomFlag(1);
-							friend.setRoomId(room.getId());
-							friend.setRoomCreateUserId(room.getUserId());
-							// timeSend作为取群聊离线消息的标志,所以要在这里设置一个初始值
-							friend.setTimeSend(TimeUtils.sk_time_current_time());
-							friend.setStatus(Friend.STATUS_FRIEND);
-							FriendDao.getInstance()
-									.createOrUpdateFriend(friend);//创建或者更新好友...
-
-							interMucChat(room.getJid(), room.getName());
-						}
-						ProgressDialogUtil.dismiss(dialog);
-					}
-				}, Void.class, params);
-		mActivity.addDefaultRequest(request);
-
-	}
-
-	@Override
-	public void onResume() {
-		super.onResume();
-		if (mNeedUpdate) {
-			mNeedUpdate = false;
-			mPullToRefreshListView.post(new Runnable() {
-				@Override
-				public void run() {
-					mPullToRefreshListView.setPullDownRefreshing(200);
-				}
-			});
-		}
-	}
-
-	@Override
-	public void onActivityCreated(Bundle savedInstanceState) {
-		super.onActivityCreated(savedInstanceState);
-		mActivity = (BaseActivity) getActivity();
-	}
-
-	private void requestData(final boolean isPullDwonToRefersh) {
-		if (isPullDwonToRefersh) {
-			mPageIndex = 0;
-		}
-		HashMap<String, String> params = new HashMap<String, String>();
-		params.put("pageIndex", String.valueOf(mPageIndex));
-		params.put("pageSize", String.valueOf(AppConfig.PAGE_SIZE));
-		params.put("access_token", MyApplication.getInstance().mAccessToken);
-		StringJsonArrayRequest<MucRoom> request = new StringJsonArrayRequest<MucRoom>(
-				mActivity.mConfig.ROOM_LIST_HIS, new ErrorListener() {
-					@Override
-					public void onErrorResponse(VolleyError arg0) {
-						ToastUtil.showErrorNet(getActivity());
-						mPullToRefreshListView.onRefreshComplete();
-					}
-				}, new StringJsonArrayRequest.Listener<MucRoom>() {
-					@Override
-					public void onResponse(ArrayResult<MucRoom> result) {
-
-						boolean success = Result.defaultParser(getActivity(),
-								result, true);
-						if (success) {
-							mPageIndex++;
-							if (isPullDwonToRefersh) {
-								mMucRooms.clear();
-							}
-							List<MucRoom> datas = result.getData();
-							Log.i("Arison","datas:"+ JSON.toJSONString(datas));
-							if (datas != null && datas.size() > 0) {
-								for (int i=0;i<datas.size();i++) {
-									if (datas.get(i).getCategory() == 1) {
-									} else {
-										mMucRooms.add(datas.get(i));
-									}
-								}
-							}
-							mAdapter.notifyDataSetChanged();
-						}
-						mPullToRefreshListView.onRefreshComplete();
-					}
-				}, MucRoom.class, params);
-		mActivity.addDefaultRequest(request);
-	}
-
-	public class MucRoomAdapter extends BaseAdapter {
-
-		@Override
-		public int getCount() {
-			return mMucRooms.size();
-		}
-
-		@Override
-		public Object getItem(int position) {
-			return mMucRooms.get(position);
-		}
-
-		@Override
-		public long getItemId(int position) {
-			return position;
-		}
-
-		@Override
-		public View getView(final int position, View convertView,
-				ViewGroup parent) {
-			if (convertView == null) {
-				convertView = LayoutInflater.from(getActivity()).inflate(
-						R.layout.row_muc_room, parent, false);
-			}
-			ImageView avatar_img = ViewHolder.get(convertView, R.id.avatar_img);
-			TextView nick_name_tv = ViewHolder.get(convertView,
-					R.id.nick_name_tv);
-			TextView content_tv = ViewHolder.get(convertView, R.id.content_tv);
-			TextView time_tv = ViewHolder.get(convertView, R.id.time_tv);
-
-			final MucRoom room = mMucRooms.get(position);
-			AvatarHelper.getInstance().displayAvatar(room.getUserId(),
-					avatar_img, true);
-
-			nick_name_tv.setText(room.getName());
-			time_tv.setText(TimeUtils.getFriendlyTimeDesc(getActivity(),
-					(int) room.getCreateTime()));
-			content_tv.setText(room.getDesc());
-			return convertView;
-		}
-
-	}
+    private PullToRefreshListView mPullToRefreshListView;
+    private List<MucRoom> mMucRooms;
+    private MucRoomAdapter mAdapter;
+    private int mPageIndex = 0;
+    private BaseActivity mActivity;
+    private boolean mNeedUpdate = true;
+    private BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (intent.getAction().equals(MucgroupUpdateUtil.ACTION_UPDATE)) {
+                if (isResumed()) {
+                    requestData(true);
+                } else {
+                    mNeedUpdate = true;
+                }
+            }
+        }
+    };
+    private AppConfig mConfig;
+
+    public GroupChatFragment() {
+        mMucRooms = new ArrayList<MucRoom>();
+        mAdapter = new MucRoomAdapter();
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setHasOptionsMenu(true);
+        getActivity().registerReceiver(mUpdateReceiver,
+                MucgroupUpdateUtil.getUpdateActionFilter());
+
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        getActivity().unregisterReceiver(mUpdateReceiver);
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        inflater.inflate(R.menu.menu_add_icon, menu);
+        super.onCreateOptionsMenu(menu, inflater);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.add_item) {
+            startActivity(new Intent(getActivity(),
+                    SelectContactsActivity.class));
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    protected int inflateLayoutId() {
+        return R.layout.layout_pullrefresh_list;
+    }
+
+    @Override
+    protected void onCreateView(Bundle savedInstanceState, boolean createView) {
+        if (createView) {
+            initView();
+            init();
+        }
+    }
+
+    private void init() {
+        mConfig = MyApplication.getInstance().getConfig();
+        for (int i = 0; i < mMucRooms.size(); i++) {
+            mMucRooms.get(i).getJid();
+        }
+
+    }
+
+    boolean b = false;
+
+    private void test() {
+        for (int i = 0; i < mMucRooms.size(); i++) {
+            Log.i("gongpengming", mMucRooms.get(i).getId());
+            Log.i("gongpengming", mMucRooms.get(i).getJid());
+            Log.i("gongpengming", mMucRooms.get(i).getName());
+            Log.i("gongpengming", mMucRooms.get(i).getUserId());
+        }
+    }
+
+    private void uploadAvatar() {
+        File file = new File(Environment.getExternalStorageDirectory() + "/head1.jpg");
+        if (!file.exists()) {// 文件不存在
+            return;
+        }
+        // 显示正在上传的ProgressDialog
+        RequestParams params = new RequestParams();
+        params.put("userId", 200403010);
+        try {
+            params.put("file1", file);
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+        AsyncHttpClient client = new AsyncHttpClient();
+        client.post(mConfig.AVATAR_UPLOAD_URL, params, new AsyncHttpResponseHandler() {
+            @Override
+            public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
+                boolean success = false;
+                Log.i("gongpengming", "上传成功");
+                if (arg0 == 200) {
+                    Result result = null;
+                    try {
+                        result = JSON.parseObject(new String(arg2), Result.class);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    if (result != null && result.getResultCode() == Result.CODE_SUCCESS) {
+                        success = true;
+                    }
+                }
+                if (success) {
+
+
+                } else {
+                }
+
+            }
+
+            @Override
+            public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
+            }
+        });
+    }
+
+    @SuppressLint("InflateParams")
+    private void initView() {
+        mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
+
+
+        View emptyView = LayoutInflater.from(getActivity()).inflate(
+                R.layout.layout_list_empty_view, null);
+        mPullToRefreshListView.setEmptyView(emptyView);
+
+        mPullToRefreshListView.getRefreshableView().setAdapter(mAdapter);
+
+        mPullToRefreshListView
+                .setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+                    @Override
+                    public void onPullDownToRefresh(
+                            PullToRefreshBase<ListView> refreshView) {
+                        requestData(true);
+                    }
+
+                    @Override
+                    public void onPullUpToRefresh(
+                            PullToRefreshBase<ListView> refreshView) {
+                        requestData(false);
+                    }
+                });
+
+        /**@注释:点击进入房间的逻辑 */
+        mPullToRefreshListView.getRefreshableView().setOnItemClickListener(
+                new AdapterView.OnItemClickListener() {
+                    @Override
+                    public void onItemClick(AdapterView<?> parent, View view,
+                                            int position, long id) {
+                        MucRoom room = mMucRooms.get((int) id);
+                        String loginUserId = MyApplication.getInstance().mLoginUser
+                                .getUserId();
+                        Friend friend = FriendDao.getInstance().getFriend(
+                                loginUserId, room.getJid());
+                        if (friend == null) {// friend为null,说明之前没加入过该房间,那么调用接口加入
+                            // 将房间作为一个好友存到好友表
+                            joinRoom(room, loginUserId);
+                        } else {
+                            interMucChat(room.getJid(), room.getName());
+                        }
+
+                    }
+                });
+    }
+
+    private void interMucChat(String roomJid, String roomName) {
+        Intent intent = new Intent(getActivity(), MucChatActivity.class);
+        intent.putExtra(AppConstant.EXTRA_USER_ID, roomJid);
+        intent.putExtra(AppConstant.EXTRA_NICK_NAME, roomName);
+        intent.putExtra(AppConstant.EXTRA_IS_GROUP_CHAT, true);
+        startActivity(intent);
+    }
+
+    private void joinRoom(final MucRoom room, final String loginUserId) {
+        HashMap<String, String> params = new HashMap<String, String>();
+        params.put("access_token", MyApplication.getInstance().mAccessToken);
+        params.put("roomId", room.getId());
+        if (room.getUserId() == loginUserId)
+            params.put("type", "1");
+        else
+            params.put("type", "2");
+
+        final ProgressDialog dialog = ProgressDialogUtil.init(getActivity(),
+                null, getString(R.string.please_wait));
+        ProgressDialogUtil.show(dialog);
+
+        StringJsonArrayRequest<Void> request = new StringJsonArrayRequest<Void>(
+                mActivity.mConfig.ROOM_JOIN, new ErrorListener() {
+            @Override
+            public void onErrorResponse(VolleyError arg0) {
+                ToastUtil.showErrorNet(getActivity());
+                ProgressDialogUtil.dismiss(dialog);
+            }
+        }, new StringJsonArrayRequest.Listener<Void>() {
+            @Override
+            public void onResponse(ArrayResult<Void> result) {
+                boolean success = Result.defaultParser(getActivity(),
+                        result, true);
+                if (success) {
+                    Friend friend = new Friend();// 将房间也存为好友
+                    friend.setOwnerId(loginUserId);
+                    friend.setUserId(room.getJid());
+                    friend.setNickName(room.getName());
+                    friend.setDescription(room.getDesc());
+                    friend.setRoomFlag(1);
+                    friend.setRoomId(room.getId());
+                    friend.setRoomCreateUserId(room.getUserId());
+                    // timeSend作为取群聊离线消息的标志,所以要在这里设置一个初始值
+                    friend.setTimeSend(TimeUtils.sk_time_current_time());
+                    friend.setStatus(Friend.STATUS_FRIEND);
+                    FriendDao.getInstance()
+                            .createOrUpdateFriend(friend);//创建或者更新好友...
+
+                    interMucChat(room.getJid(), room.getName());
+                }
+                ProgressDialogUtil.dismiss(dialog);
+            }
+        }, Void.class, params);
+        mActivity.addDefaultRequest(request);
+
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        if (mNeedUpdate) {
+            mNeedUpdate = false;
+            mPullToRefreshListView.post(new Runnable() {
+                @Override
+                public void run() {
+                    mPullToRefreshListView.setPullDownRefreshing(200);
+                }
+            });
+        }
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        mActivity = (BaseActivity) getActivity();
+    }
+
+    private void requestData(final boolean isPullDwonToRefersh) {
+        if (isPullDwonToRefersh) {
+            mPageIndex = 0;
+        }
+        HashMap<String, String> params = new HashMap<String, String>();
+        params.put("pageIndex", String.valueOf(mPageIndex));
+        params.put("pageSize", String.valueOf(AppConfig.PAGE_SIZE));
+        params.put("access_token", MyApplication.getInstance().mAccessToken);
+        StringJsonArrayRequest<MucRoom> request = new StringJsonArrayRequest<MucRoom>(
+                mActivity.mConfig.ROOM_LIST_HIS, new ErrorListener() {
+            @Override
+            public void onErrorResponse(VolleyError arg0) {
+                ToastUtil.showErrorNet(getActivity());
+                mPullToRefreshListView.onRefreshComplete();
+            }
+        }, new StringJsonArrayRequest.Listener<MucRoom>() {
+            @Override
+            public void onResponse(ArrayResult<MucRoom> result) {
+                boolean success = Result.defaultParser(getActivity(),
+                        result, true);
+                if (success) {
+                    mPageIndex++;
+                    if (isPullDwonToRefersh) {
+                        mMucRooms.clear();
+                    }
+                    List<MucRoom> datas = result.getData();
+                    if (datas != null && datas.size() > 0) {
+                        for (int i = 0; i < datas.size(); i++) {
+                            if (datas.get(i).getCategory() == 1) {
+                            } else {
+                                mMucRooms.add(datas.get(i));
+                            }
+                        }
+                    }
+                    mAdapter.notifyDataSetChanged();
+                }
+                if (!b) {
+                    b = true;
+//                    uploadAvatar();
+                    test();
+                }
+
+                mPullToRefreshListView.onRefreshComplete();
+            }
+        }, MucRoom.class, params);
+        mActivity.addDefaultRequest(request);
+    }
+
+    public class MucRoomAdapter extends BaseAdapter {
+
+        @Override
+        public int getCount() {
+            return mMucRooms.size();
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return mMucRooms.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public View getView(final int position, View convertView,
+                            ViewGroup parent) {
+            if (convertView == null) {
+                convertView = LayoutInflater.from(getActivity()).inflate(
+                        R.layout.row_muc_room, parent, false);
+            }
+            ImageView avatar_img = ViewHolder.get(convertView, R.id.avatar_img);
+            TextView nick_name_tv = ViewHolder.get(convertView,
+                    R.id.nick_name_tv);
+            TextView content_tv = ViewHolder.get(convertView, R.id.content_tv);
+            TextView time_tv = ViewHolder.get(convertView, R.id.time_tv);
+
+            final MucRoom room = mMucRooms.get(position);
+            AvatarHelper.getInstance().displayAvatar(room.getUserId(),
+                    avatar_img, false);
+
+            nick_name_tv.setText(room.getName());
+            time_tv.setText(TimeUtils.getFriendlyTimeDesc(getActivity(),
+                    (int) room.getCreateTime()));
+            content_tv.setText(room.getDesc());
+            return convertView;
+        }
+
+    }
 
 }

+ 6 - 13
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/groupchat/SelectContactsActivity.java

@@ -6,9 +6,7 @@ import android.content.ComponentName;
 import android.content.Intent;
 import android.content.ServiceConnection;
 import android.os.Bundle;
-import android.os.Handler;
 import android.os.IBinder;
-import android.os.Message;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -28,6 +26,7 @@ import com.android.volley.Response;
 import com.android.volley.VolleyError;
 import com.xzjmyk.pm.activity.AppConstant;
 import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.Area;
 import com.xzjmyk.pm.activity.bean.Friend;
 import com.xzjmyk.pm.activity.bean.MucRoomSimple;
@@ -39,29 +38,22 @@ import com.xzjmyk.pm.activity.db.dao.FriendDao;
 import com.xzjmyk.pm.activity.db.dao.UserDao;
 import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
-import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.JsonValidator;
 import com.xzjmyk.pm.activity.ui.message.MucChatActivity;
+import com.xzjmyk.pm.activity.util.Constants;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
-import com.xzjmyk.pm.activity.util.StringUtils;
 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.Result;
-import com.xzjmyk.pm.activity.xmpp.CoreService;
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.util.Constants;
-import com.xzjmyk.pm.activity.util.ViewHolder;
 import com.xzjmyk.pm.activity.volley.ObjectResult;
+import com.xzjmyk.pm.activity.volley.Result;
 import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
+import com.xzjmyk.pm.activity.xmpp.CoreService;
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -337,6 +329,7 @@ public class SelectContactsActivity extends BaseActivity {
     private void createGroupChat(final String roomName, String roomSubject, final String roomDesc) {
         String nickName = MyApplication.getInstance().mLoginUser.getNickName();
         final String roomJid = mXmppService.createMucRoom(nickName, roomName, roomSubject, roomDesc);
+        Log.i("gongpengming",roomJid);
         if (TextUtils.isEmpty(roomJid)) {
             ToastUtil.showToast(mContext, R.string.create_room_failed);
             return;

+ 4 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/ChatActivity.java

@@ -136,10 +136,12 @@ public class ChatActivity extends ActionBackActivity
         } else if (getIntent() != null) {
             mFriend = (Friend) getIntent().getSerializableExtra(AppConstant.EXTRA_FRIEND);
         }
-
         mAudioManager = (AudioManager) getSystemService(android.app.Service.AUDIO_SERVICE);
         mChatMessages = new ArrayList<ChatMessage>();
-
+        Log.i("gongpengming",mFriend.getUserId());
+        Log.i("gongpengming",mFriend.getOwnerId());
+        Log.i("gongpengming",mFriend.get_id()+"");
+        Log.i("gongpengming",mFriend.getCompanyId()+"");
         Downloader.getInstance().init(MyApplication.getInstance().mAppDir + File.separator + mLoginUserId
                 + File.separator + Environment.DIRECTORY_MUSIC);
         initView();

+ 1 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/RoomInfoActivity.java

@@ -125,7 +125,6 @@ public class RoomInfoActivity extends BaseActivity {
         // 绑定服务
         mXmppBind = bindService(CoreService.getIntent(), mXmppServiceConnection, BIND_AUTO_CREATE);
         initView();
-        Log.i("gongpengming","第一次进 loadMembers");
         loadMembers();
     }
 
@@ -163,7 +162,6 @@ public class RoomInfoActivity extends BaseActivity {
         mDataLoadView.setLoadingEvent(new DataLoadView.LoadingEvent() {
             @Override
             public void load() {
-                Log.i("gongpengming","第二次进 loadMembers");
                 loadMembers();
             }
         });
@@ -771,6 +769,7 @@ public class RoomInfoActivity extends BaseActivity {
             url = MyApplication.getInstance().getConfig().ROOM_MEMBER_DELETE;
         }
         HashMap<String, String> params = new HashMap<String, String>();
+
         params.put("access_token", MyApplication.getInstance().mAccessToken);
         params.put("roomId", sortFriend.getRoomId());
         if (!deleteRoom) {
@@ -993,10 +992,8 @@ public class RoomInfoActivity extends BaseActivity {
         params.put("roomId", mRoom.getRoomId());
         params.put("userId", mLoginUserId);
         params.put("nickname", nickName);
-
         final ProgressDialog dialog = ProgressDialogUtil.init(mContext, null, getString(R.string.please_wait));
         ProgressDialogUtil.show(dialog);
-
         StringJsonObjectRequest<Void> request = new StringJsonObjectRequest<Void>(mConfig.ROOM_MEMBER_UPDATE, new ErrorListener() {
             @Override
             public void onErrorResponse(VolleyError arg0) {
@@ -1027,7 +1024,6 @@ public class RoomInfoActivity extends BaseActivity {
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         if (requestCode == 1 && resultCode == RESULT_OK) {
-            Log.i("gongpengming","第三次进 loadMembers");
             loadMembers();
         }
     }

+ 1 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/xmpp/XMucChatManager.java

@@ -129,9 +129,8 @@ public class XMucChatManager {
 	public String createMucRoom(String myNickName, String roomName, String roomSubject, String roomDesc) {
 		try {
 			String roomId = UUID.randomUUID().toString().replaceAll("-", "");
+
 			String roomJid = roomId + getMucChatServiceName(mConnection);
-			Log.d("roamer", "开始创建房间:" + roomJid);
-			Log.d("Arison", "mConnection:" + mConnection.getUser());
 			// 创建聊天室
 			MultiUserChat muc = new MultiUserChat(mConnection, roomJid);
 			muc.create(myNickName);

BIN
WeiChat/src/main/res/drawable-hdpi/head1.jpg


BIN
WeiChat/src/main/res/drawable-hdpi/head2.jpg


+ 1 - 1
build.gradle

@@ -5,7 +5,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:1.3.0'
+        classpath 'com.android.tools.build:gradle:2.0.0'
     }
 }