AutoCreateRoomUtil.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. package com.xzjmyk.pm.activity.util;
  2. import android.content.ComponentName;
  3. import android.content.Context;
  4. import android.content.ServiceConnection;
  5. import android.os.IBinder;
  6. import android.text.TextUtils;
  7. import android.util.Log;
  8. import com.alibaba.fastjson.JSON;
  9. import com.android.volley.Response;
  10. import com.android.volley.VolleyError;
  11. import com.xzjmyk.pm.activity.MyApplication;
  12. import com.xzjmyk.pm.activity.bean.Area;
  13. import com.xzjmyk.pm.activity.bean.message.MucRoom;
  14. import com.xzjmyk.pm.activity.volley.ObjectResult;
  15. import com.xzjmyk.pm.activity.volley.Result;
  16. import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
  17. import com.xzjmyk.pm.activity.xmpp.CoreService;
  18. import java.util.HashMap;
  19. import java.util.List;
  20. import java.util.Map;
  21. /**
  22. * 自动创建群工具类
  23. * Created by gongpm on 2016/7/26.
  24. */
  25. public class AutoCreateRoomUtil {
  26. private static AutoCreateRoomUtil instence = null;
  27. public AutoCreateRoomUtil() {
  28. }
  29. public static AutoCreateRoomUtil getInstence() {
  30. if (instence == null) {
  31. synchronized (AutoCreateRoomUtil.class) {
  32. instence = new AutoCreateRoomUtil();
  33. }
  34. }
  35. return instence;
  36. }
  37. private ServiceConnection mServiceConnection = new ServiceConnection() {
  38. @Override
  39. public void onServiceDisconnected(ComponentName name) {
  40. mXmppService = null;
  41. }
  42. @Override
  43. public void onServiceConnected(ComponentName name, IBinder service) {
  44. mXmppService = ((CoreService.CoreServiceBinder) service).getService();
  45. create();
  46. }
  47. };
  48. private CoreService mXmppService;
  49. private void createGroupChat(String nickName, String roomName, String roomSubject, String roomDesc,
  50. List<String> inviteUsers, final int or_id) {
  51. // AppConfig mConfig = MyApplication.getInstance().getConfig();
  52. // String roomJid;
  53. //
  54. // //创建群组
  55. // try {
  56. // roomJid = mXmppService.createMucRoom(nickName, roomName, roomSubject, roomDesc);
  57. // } catch (NullPointerException e) {
  58. // roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
  59. // }
  60. // if (TextUtils.isEmpty(roomJid)) {
  61. // ToastUtil.showToast(context, R.string.create_room_failed);
  62. // return;
  63. // }
  64. //
  65. // Map<String, String> params = new HashMap<String, String>();
  66. // params.put("access_token", MyApplication.getInstance().mAccessToken);
  67. // params.put("jid", roomJid);
  68. // params.put("name", roomName);
  69. // params.put("category", "1");
  70. // params.put("desc", roomDesc);
  71. // params.put("countryId", String.valueOf(Area.getDefaultCountyId()));// 国家Id
  72. // Area area = Area.getDefaultProvince();
  73. // if (area != null) {
  74. // params.put("provinceId", String.valueOf(area.getId()));// 省份Id
  75. // }
  76. // area = Area.getDefaultCity();
  77. // if (area != null) {
  78. // params.put("cityId", String.valueOf(area.getId()));// 城市Id
  79. // area = Area.getDefaultDistrict(area.getId());
  80. // if (area != null) {
  81. // params.put("areaId", String.valueOf(area.getId()));// 城市Id
  82. // }
  83. // }
  84. //
  85. // double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
  86. // double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
  87. // if (latitude != 0)
  88. // params.put("latitude", String.valueOf(latitude));
  89. // if (longitude != 0)
  90. // params.put("longitude", String.valueOf(longitude));
  91. // params.put("text", JSON.toJSONString(inviteUsers));
  92. // StringJsonObjectRequest<MucRoom> request = new StringJsonObjectRequest<MucRoom>(mConfig.ROOM_ADD,
  93. // new Response.ErrorListener() {
  94. // @Override
  95. // public void onErrorResponse(VolleyError arg0) {
  96. //
  97. // }
  98. // }, new StringJsonObjectRequest.Listener<MucRoom>() {
  99. // @Override
  100. // public void onResponse(ObjectResult<MucRoom> result) {
  101. // boolean parserResult = Result.defaultParser(context, result, true);
  102. // if (parserResult && result.getData() != null) {
  103. // Log.i("gongpengming", "创建群组成功");
  104. // }
  105. // }
  106. // }, MucRoom.class, params);
  107. // String HASHCODE = Integer.toHexString(this.hashCode()) + "@";
  108. // MyApplication.getInstance().getFastVolley().addDefaultRequest(HASHCODE, request);
  109. }
  110. private String roomName;
  111. private String roomDesc;
  112. private List<String> inviteUsers;
  113. private Context context;
  114. public void create() {
  115. String nickName = MyApplication.getInstance().mLoginUser.getNickName();
  116. Log.i("gongpengming", "mXmppService==" + (mXmppService == null));
  117. String roomJid;
  118. try {
  119. roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
  120. } catch (NullPointerException e) {
  121. roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
  122. }
  123. if (TextUtils.isEmpty(roomJid)) {
  124. Log.i("gongpengming", "roomJid==null");
  125. return;
  126. }
  127. Map<String, String> params = new HashMap<String, String>();
  128. params.put("access_token", MyApplication.getInstance().mAccessToken);
  129. params.put("jid", roomJid);
  130. params.put("name", roomName);
  131. params.put("desc", roomDesc);
  132. params.put("countryId", String.valueOf(Area.getDefaultCountyId()));// 国家Id
  133. Area area = Area.getDefaultProvince();
  134. if (area != null) {
  135. params.put("provinceId", String.valueOf(area.getId()));// 省份Id
  136. }
  137. area = Area.getDefaultCity();
  138. if (area != null) {
  139. params.put("cityId", String.valueOf(area.getId()));// 城市Id
  140. area = Area.getDefaultDistrict(area.getId());
  141. if (area != null) {
  142. params.put("areaId", String.valueOf(area.getId()));// 城市Id
  143. }
  144. }
  145. double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
  146. double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
  147. if (latitude != 0)
  148. params.put("latitude", String.valueOf(latitude));
  149. if (longitude != 0)
  150. params.put("longitude", String.valueOf(longitude));
  151. //TODO 开启线程处理合成群头像操作
  152. params.put("text", JSON.toJSONString(inviteUsers));
  153. StringJsonObjectRequest<MucRoom> request = new StringJsonObjectRequest<MucRoom>(MyApplication.getInstance().getConfig().ROOM_ADD,
  154. new Response.ErrorListener() {
  155. @Override
  156. public void onErrorResponse(VolleyError arg0) {
  157. Log.i("gongpengming", "网络错误");
  158. }
  159. }, new StringJsonObjectRequest.Listener<MucRoom>() {
  160. @Override
  161. public void onResponse(ObjectResult<MucRoom> result) {
  162. boolean parserResult = Result.defaultParser(context, result, true);
  163. if (parserResult && result.getData() != null) {
  164. Log.i("gongpengming", "创建成功" + result.toString());
  165. }
  166. }
  167. }, MucRoom.class, params);
  168. MyApplication.getInstance().getFastVolley().addDefaultRequest("", request);
  169. }
  170. /**
  171. * @param roomName 群名字
  172. * @param inviteUsers 群成员
  173. * @param roomDesc 群说明
  174. */
  175. public void createGroupChat(final Context context, final String roomName, final String roomDesc, List<String> inviteUsers) {
  176. String nickName = MyApplication.getInstance().mLoginUser.getNickName();
  177. boolean mBind = context.bindService(CoreService.getIntent(), mServiceConnection, Context.BIND_AUTO_CREATE);
  178. this.context = context;
  179. this.roomName = roomName;
  180. this.roomDesc = roomDesc;
  181. this.inviteUsers = inviteUsers;
  182. // Log.i("gongpengming", "mBind==" + mBind);
  183. // Log.i("gongpengming", "mXmppService==" + (mXmppService == null));
  184. // String roomJid;
  185. // try {
  186. // roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
  187. // } catch (NullPointerException e) {
  188. // roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
  189. // }
  190. // if (TextUtils.isEmpty(roomJid)) {
  191. // Log.i("gongpengming", "roomJid==null");
  192. // return;
  193. // }
  194. // Map<String, String> params = new HashMap<String, String>();
  195. // params.put("access_token", MyApplication.getInstance().mAccessToken);
  196. // params.put("jid", roomJid);
  197. // params.put("name", roomName);
  198. // params.put("desc", roomDesc);
  199. // params.put("countryId", String.valueOf(Area.getDefaultCountyId()));// 国家Id
  200. //
  201. // Area area = Area.getDefaultProvince();
  202. // if (area != null) {
  203. // params.put("provinceId", String.valueOf(area.getId()));// 省份Id
  204. // }
  205. // area = Area.getDefaultCity();
  206. // if (area != null) {
  207. // params.put("cityId", String.valueOf(area.getId()));// 城市Id
  208. // area = Area.getDefaultDistrict(area.getId());
  209. // if (area != null) {
  210. // params.put("areaId", String.valueOf(area.getId()));// 城市Id
  211. // }
  212. // }
  213. //
  214. // double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
  215. // double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
  216. // if (latitude != 0)
  217. // params.put("latitude", String.valueOf(latitude));
  218. // if (longitude != 0)
  219. // params.put("longitude", String.valueOf(longitude));
  220. // //TODO 开启线程处理合成群头像操作
  221. // params.put("text", JSON.toJSONString(inviteUsers));
  222. // StringJsonObjectRequest<MucRoom> request = new StringJsonObjectRequest<MucRoom>(MyApplication.getInstance().getConfig().ROOM_ADD,
  223. // new Response.ErrorListener() {
  224. // @Override
  225. // public void onErrorResponse(VolleyError arg0) {
  226. // Log.i("gongpengming", "网络错误");
  227. // }
  228. // }, new StringJsonObjectRequest.Listener<MucRoom>() {
  229. // @Override
  230. // public void onResponse(ObjectResult<MucRoom> result) {
  231. // boolean parserResult = Result.defaultParser(context, result, true);
  232. // if (parserResult && result.getData() != null) {
  233. // Log.i("gongpengming", "创建成功" + result.toString());
  234. // }
  235. // }
  236. // }, MucRoom.class, params);
  237. // MyApplication.getInstance().getFastVolley().addDefaultRequest("", request);
  238. }
  239. }