Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.50 KB | None | 0 0
  1. public void init(String userId, String pwd) {
  2. Log.i("XMPP", "Initializing!");
  3.  
  4. mPassword = DatabaseManager.Session.getClientPassword(this);
  5. HOST = "xm3.conversity.net";
  6. xMppUserName = DatabaseManager.Session.getXmppUserName(this);
  7. xMppOnlyUserName = xMppUserName.split("@")[0];
  8. agentId = DatabaseManager.Session.getAgentNameId(this);
  9. PORT = DatabaseManager.Session.getPortNumber(this);
  10. Log.e("xmpp", "mPassword:" + mPassword);
  11. Log.e("xmpp", "HOST:" + HOST);
  12. Log.e("xmpp", "xMppOnlyUserName:" + xMppOnlyUserName);
  13. Log.e("xmpp", "xMppUserName:" + xMppUserName);
  14. Log.e("xmpp", "agentId:" + agentId);
  15. Log.e("xmpp", "PORT:" + String.valueOf(PORT));
  16.  
  17. XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
  18. configBuilder.setUsernameAndPassword(xMppUserName, passWord);
  19. configBuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
  20. configBuilder.setResource("Android");
  21. configBuilder.setServiceName(DOMAIN);
  22. configBuilder.setHost(HOST);
  23. configBuilder.setPort(PORT);
  24. configBuilder.setSendPresence(true);
  25. configBuilder.setDebuggerEnabled(true);
  26. configBuilder.setCompressionEnabled(true);
  27. connection = new XMPPTCPConnection(configBuilder.build());
  28. connection.addConnectionListener(connectionListener);
  29.  
  30.  
  31. // ReconnectionManager.getInstanceFor(connection).enableAutomaticReconnection();
  32.  
  33. // connection.setPacketReplyTimeout(10000);
  34. // PingManager.setDefaultPingInterval(600);
  35. // PingManager.getInstanceFor(connection).registerPingFailedListener((PingFailedListener) this);
  36. chatmanager = ChatManager.getInstanceFor(connection);
  37. chatmanager.addChatListener(new ChatManagerListener() {
  38. @Override
  39. public void chatCreated(Chat chat, boolean createdLocally) {
  40. chat.addMessageListener(new ChatMessageListener() {
  41. @Override
  42. public void processMessage(Chat chat, final Message message) {
  43. Log.e("Xmpp", String.valueOf(chat) + " === " + message.toString() + "MESSAGE: " + message.getBody());
  44. Handler refresh = new Handler(Looper.getMainLooper());
  45. refresh.post(new Runnable() {
  46. public void run() {
  47. Log.e("Xmpp", "RECIVE MESSAGE: " + message.getBody() + message.getFrom() + "StanzaID: " + message.getBodies());
  48. String[] strings = {message.getBody(), "2", Utility.getCurrentTime(), message.getThread(), "A", "6", "7", DatabaseManager.Message.START_CHAT, ""};
  49. DatabaseManager.Message.insertValues(getApplicationContext(), strings);
  50. Intent i = new Intent(ChatActivity.CHAT_BROADCAST);
  51. i.putExtra(ChatActivity.KEY_ACTION, ChatActivity.NEW_MESSAGE);
  52. getApplicationContext().sendBroadcast(i);
  53.  
  54. final Handler handler = new Handler();
  55. handler.postDelayed(new Runnable() {
  56. @Override
  57. public void run() {
  58. // Do something after 5s = 5000ms
  59. // disconnectConnection();
  60. }
  61. }, 3000);
  62. }
  63. });
  64. }
  65. });
  66. }
  67. });
  68.  
  69. }
  70.  
  71. // Disconnect Function
  72. public void disconnectConnection() {
  73.  
  74. new Thread(new Runnable() {
  75. @Override
  76. public void run() {
  77. connection.disconnect();
  78. Log.e("xmpp", "connection.disconnect();");
  79. }
  80. }).start();
  81. }
  82.  
  83. public void connectConnection() {
  84. AsyncTask<Void, Void, Boolean> connectionThread = new AsyncTask<Void, Void, Boolean>() {
  85.  
  86. @Override
  87. protected Boolean doInBackground(Void... arg0) {
  88.  
  89. // Create a connection
  90. try {
  91. connection.connect();
  92. login();
  93. connected = true;
  94. final ScheduledExecutorService scheduleTaskExecutor = Executors.newSingleThreadScheduledExecutor();
  95. scheduleTaskExecutor.scheduleWithFixedDelay(new Runnable() {
  96. @Override
  97. public void run() {
  98. Log.d("xmpp", "inside run()");
  99. Log.d("xmpp", "isconnect: " + connection.isConnected() + " Auth: " + connection.isAuthenticated());
  100.  
  101. /* if(!Utility.isNetworkAvailable(getApplicationContext())){
  102. // disconnectConnection();
  103. }
  104. else */
  105. if (connection.isConnected()) {
  106. sendMessagesToServer();
  107.  
  108. } else {
  109. try {
  110. connection.connect();
  111. login();
  112. } catch (SmackException e) {
  113. e.printStackTrace();
  114. } catch (IOException e) {
  115. e.printStackTrace();
  116. } catch (XMPPException e) {
  117. e.printStackTrace();
  118. }
  119.  
  120. }
  121. }
  122. }, 0, 2, TimeUnit.SECONDS);
  123.  
  124.  
  125. } catch (IOException e) {
  126. } catch (SmackException e) {
  127.  
  128. } catch (XMPPException e) {
  129. }
  130.  
  131. return null;
  132. }
  133. };
  134. connectionThread.execute();
  135. }
  136.  
  137. private void sendMessagesToServer() {
  138.  
  139. try {
  140. connection.sendPacket(new Presence(Presence.Type.available));
  141. } catch (SmackException.NotConnectedException e) {
  142. e.printStackTrace();
  143. }
  144. // Log.e(TAG,"in side sendMessagesToServer()");
  145. DatabaseManager dbManager = new DatabaseManager(this);
  146. dbManager.open();
  147. Cursor c = dbManager.getMessages();
  148. while (c.moveToNext()) {
  149. //Read the message details
  150. String status = c.getString(DatabaseManager.Message.INDEX_STATUS);
  151. // Log.e("PREM", status + String.valueOf(status.equalsIgnoreCase("P")));
  152. if (status.equalsIgnoreCase("P")) {
  153.  
  154.  
  155. String message = c.getString(DatabaseManager.Message.INDEX_MESSAGE);
  156. String id = c.getString(0);
  157. sendMsg(message);
  158. dbManager.updateMessageStatus(id, jid);
  159. }
  160. }
  161. c.close();
  162. dbManager.close();
  163. }
  164.  
  165.  
  166. public void sendMsg(String message) {
  167. if (connection.isConnected() == true) {
  168. // Assume we've created an XMPPConnection name "connection"._
  169. chatmanager = ChatManager.getInstanceFor(connection);
  170. newChat = chatmanager.createChat(agentId);
  171.  
  172. try {
  173. newChat.sendMessage(message);
  174. jid = newChat.getThreadID();
  175. Log.i("Xmpp", "message send to server");
  176. Log.i("Xmpp", "thread: " + newChat.getThreadID() + " Listner: " + newChat.getListeners() + " participant" + newChat.getParticipant());
  177. } catch (SmackException.NotConnectedException e) {
  178. e.printStackTrace();
  179. }
  180. }
  181. }
  182.  
  183. public void login() {
  184.  
  185. try {
  186. connection.login(xMppOnlyUserName, DatabaseManager.Session.getClientPassword(this));
  187. Log.i("Xmpp", "Yey! We're connected to the Xmpp server!");
  188.  
  189. } catch (XMPPException | SmackException | IOException e) {
  190. e.printStackTrace();
  191. } catch (Exception e) {
  192. }
  193.  
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement