--- a/src/com/beem/project/beem/BeemService.java Thu Dec 29 22:40:40 2011 +0100
+++ b/src/com/beem/project/beem/BeemService.java Thu Jan 05 22:12:25 2012 +0100
@@ -43,14 +43,22 @@
*/
package com.beem.project.beem;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
+import org.jivesoftware.smack.Connection;
import org.jivesoftware.smack.Roster;
import org.jivesoftware.smack.Roster.SubscriptionMode;
+import org.jivesoftware.smack.SmackConfiguration;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.provider.ProviderManager;
+import org.jivesoftware.smackx.PrivateDataManager;
+import org.jivesoftware.smackx.bookmark.BookmarkManager;
+import org.jivesoftware.smackx.bookmark.BookmarkedConference;
+import org.jivesoftware.smackx.muc.DiscussionHistory;
+import org.jivesoftware.smackx.muc.MultiUserChat;
import org.jivesoftware.smackx.packet.ChatStateExtension;
import org.jivesoftware.smackx.provider.DelayInfoProvider;
import org.jivesoftware.smackx.provider.DiscoverInfoProvider;
@@ -285,43 +293,66 @@
// pep.registerPEPParserExtension("urn:xmpp:avatar:metadata", avaMeta);
// pm.addExtensionProvider("event", "http://jabber.org/protocol/pubsub#event", pep);
- /*
- * // Private Data Storage pm.addIQProvider("query", "jabber:iq:private", new
- * PrivateDataManager.PrivateDataIQProvider()); // Time try { pm.addIQProvider("query", "jabber:iq:time",
- * Class.forName("org.jivesoftware.smackx.packet.Time")); } catch (ClassNotFoundException e) {
- * Log.w("TestClient", "Can't load class for org.jivesoftware.smackx.packet.Time"); } // Roster Exchange
- * pm.addExtensionProvider("x", "jabber:x:roster", new RosterExchangeProvider()); // Message Events
- * pm.addExtensionProvider("x", "jabber:x:event", new MessageEventProvider()); // XHTML
- * pm.addExtensionProvider("html", "http://jabber.org/protocol/xhtml-im", new XHTMLExtensionProvider()); //
- * Group Chat Invitations pm.addExtensionProvider("x", "jabber:x:conference", new
- * GroupChatInvitation.Provider()); // Data Forms pm.addExtensionProvider("x", "jabber:x:data", new
- * DataFormProvider()); // MUC User pm.addExtensionProvider("x", "http://jabber.org/protocol/muc#user", new
- * MUCUserProvider()); // MUC Admin pm.addIQProvider("query", "http://jabber.org/protocol/muc#admin", new
- * MUCAdminProvider()); // MUC Owner pm.addIQProvider("query", "http://jabber.org/protocol/muc#owner", new
- * MUCOwnerProvider()); // Version try { pm.addIQProvider("query", "jabber:iq:version",
- * Class.forName("org.jivesoftware.smackx.packet.Version")); } catch (ClassNotFoundException e) { // Not sure
- * what's happening here. Log.w("TestClient", "Can't load class for org.jivesoftware.smackx.packet.Version"); }
- * // VCard pm.addIQProvider("vCard", "vcard-temp", new VCardProvider()); // Offline Message Requests
- * pm.addIQProvider("offline", "http://jabber.org/protocol/offline", new OfflineMessageRequest.Provider()); //
- * Offline Message Indicator pm.addExtensionProvider("offline", "http://jabber.org/protocol/offline", new
- * OfflineMessageInfo.Provider()); // Last Activity pm.addIQProvider("query", "jabber:iq:last", new
- * LastActivity.Provider()); // User Search pm.addIQProvider("query", "jabber:iq:search", new
- * UserSearch.Provider()); // SharedGroupsInfo pm.addIQProvider("sharedgroup",
- * "http://www.jivesoftware.org/protocol/sharedgroup", new SharedGroupsInfo.Provider()); // JEP-33: Extended
- * Stanza Addressing pm.addExtensionProvider("addresses", "http://jabber.org/protocol/address", new
- * MultipleAddressesProvider()); // FileTransfer pm.addIQProvider("si", "http://jabber.org/protocol/si", new
- * StreamInitiationProvider()); pm.addIQProvider("query", "http://jabber.org/protocol/bytestreams", new
- * BytestreamsProvider()); pm.addIQProvider("open", "http://jabber.org/protocol/ibb", new IBBProviders.Open());
- * pm.addIQProvider("close", "http://jabber.org/protocol/ibb", new IBBProviders.Close());
- * pm.addExtensionProvider("data", "http://jabber.org/protocol/ibb", new IBBProviders.Data());
- * pm.addIQProvider("command", COMMAND_NAMESPACE, new AdHocCommandDataProvider());
- * pm.addExtensionProvider("malformed-action", COMMAND_NAMESPACE, new
- * AdHocCommandDataProvider.MalformedActionError()); pm.addExtensionProvider("bad-locale", COMMAND_NAMESPACE,
- * new AdHocCommandDataProvider.BadLocaleError()); pm.addExtensionProvider("bad-payload", COMMAND_NAMESPACE, new
- * AdHocCommandDataProvider.BadPayloadError()); pm.addExtensionProvider("bad-sessionid", COMMAND_NAMESPACE, new
- * AdHocCommandDataProvider.BadSessionIDError()); pm.addExtensionProvider("session-expired", COMMAND_NAMESPACE,
- * new AdHocCommandDataProvider.SessionExpiredError());
- */
+ // Private Data Storage for Bookmarks
+ pm.addIQProvider("query", "jabber:iq:private", new PrivateDataManager.PrivateDataIQProvider());
+
+ // Time
+ // try {
+ // pm.addIQProvider("query", "jabber:iq:time", Class.forName("org.jivesoftware.smackx.packet.Time"));
+ // } catch (ClassNotFoundException e) {
+ // Log.w("TestClient", "Can't load class for org.jivesoftware.smackx.packet.Time");
+ // }
+ // // Roster Exchange
+ // pm.addExtensionProvider("x", "jabber:x:roster", new RosterExchangeProvider());
+ // // Message Events
+ // pm.addExtensionProvider("x", "jabber:x:event", new MessageEventProvider());
+ // // XHTML
+ // pm.addExtensionProvider("html", "http://jabber.org/protocol/xhtml-im", new XHTMLExtensionProvider());
+ // //Group Chat Invitations
+ // pm.addExtensionProvider("x", "jabber:x:conference", new GroupChatInvitation.Provider());
+ // // Data Forms
+ // pm.addExtensionProvider("x", "jabber:x:data", new DataFormProvider()); // MUC User
+ // pm.addExtensionProvider("x", "http://jabber.org/protocol/muc#user", new MUCUserProvider());
+ // // MUC Admin
+ // pm.addIQProvider("query", "http://jabber.org/protocol/muc#admin", new MUCAdminProvider());
+ // // MUC Owner
+ // pm.addIQProvider("query", "http://jabber.org/protocol/muc#owner", new MUCOwnerProvider());
+ // // Version
+ // try {
+ // pm.addIQProvider("query", "jabber:iq:version", Class.forName("org.jivesoftware.smackx.packet.Version"));
+ // } catch (ClassNotFoundException e) {
+ // // Not sure what's happening here.
+ // Log.w("TestClient", "Can't load class for org.jivesoftware.smackx.packet.Version");
+ // }
+ // // VCard
+ // pm.addIQProvider("vCard", "vcard-temp", new VCardProvider());
+ // // Offline Message Requests
+ // pm.addIQProvider("offline", "http://jabber.org/protocol/offline", new OfflineMessageRequest.Provider());
+ // // Offline Message Indicator
+ // pm.addExtensionProvider("offline", "http://jabber.org/protocol/offline", new OfflineMessageInfo.Provider());
+ // // Last Activity
+ // pm.addIQProvider("query", "jabber:iq:last", new LastActivity.Provider());
+ // // User Search
+ // pm.addIQProvider("query", "jabber:iq:search", new UserSearch.Provider());
+ // // SharedGroupsInfo
+ // pm.addIQProvider("sharedgroup", "http://www.jivesoftware.org/protocol/sharedgroup",
+ // new SharedGroupsInfo.Provider());
+ // // JEP-33: Extended Stanza Addressing
+ // pm.addExtensionProvider("addresses", "http://jabber.org/protocol/address", new MultipleAddressesProvider());
+ // FileTransfer
+ // pm.addIQProvider("si", "http://jabber.org/protocol/si", new StreamInitiationProvider());
+ // pm.addIQProvider("query", "http://jabber.org/protocol/bytestreams", new BytestreamsProvider());
+ // pm.addIQProvider("open", "http://jabber.org/protocol/ibb", new IBBProviders.Open());
+ // pm.addIQProvider("close", "http://jabber.org/protocol/ibb", new IBBProviders.Close());
+ // pm.addExtensionProvider("data", "http://jabber.org/protocol/ibb", new IBBProviders.Data());
+ // pm.addIQProvider("command", COMMAND_NAMESPACE, new AdHocCommandDataProvider());
+ // pm.addExtensionProvider("malformed-action", COMMAND_NAMESPACE,
+ // new AdHocCommandDataProvider.MalformedActionError());
+ // pm.addExtensionProvider("bad-locale", COMMAND_NAMESPACE, new AdHocCommandDataProvider.BadLocaleError());
+ // pm.addExtensionProvider("bad-payload", COMMAND_NAMESPACE, new AdHocCommandDataProvider.BadPayloadError());
+ // pm.addExtensionProvider("bad-sessionid", COMMAND_NAMESPACE, new AdHocCommandDataProvider.BadSessionIDError());
+ // pm.addExtensionProvider("session-expired", COMMAND_NAMESPACE,
+ // new AdHocCommandDataProvider.SessionExpiredError());
}
/**
@@ -535,7 +566,32 @@
}
}
- //TODO: ADD MESSAGE TO CONFIRM CONNECTION OF THE ACCOUNT
+ if (mConnection.containsKey(accountName)) {
+ Connection xmppCo = mConnection.get(accountName).getAdaptee();
+ Collection<BookmarkedConference> list = null;
+ try {
+ BookmarkManager bm = BookmarkManager.getBookmarkManager(xmppCo);
+ list = bm.getBookmarkedConferences();
+ } catch (XMPPException e) {
+ Log.e(TAG, "BookmarkManager", e);
+ }
+ for (BookmarkedConference bookmarkedConference : list) {
+ Log.e("TAG + BOOKMARK", bookmarkedConference.getName());
+ // Create a MultiUserChat using a Connection for a room
+ MultiUserChat muc2 = new MultiUserChat(xmppCo, bookmarkedConference.getJid());
+
+ // User2 joins the new room using a password and specifying
+ // the amount of history to receive. In this example we are requesting the last 5 messages.
+ DiscussionHistory history = new DiscussionHistory();
+ history.setMaxStanzas(5);
+ try {
+ muc2.join(bookmarkedConference.getNickname(), bookmarkedConference.getPassword(), history, SmackConfiguration.getPacketReplyTimeout());
+ } catch (XMPPException e) {
+ Log.e(TAG, "MUC Join Problem", e);
+ }
+ }
+ }
+ //TODO: ADD MESSAGE || TOAST TO CONFIRM CONNECTION OF THE ACCOUNT
sendBroadcast(res);
}