summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Young <consult.awy@gmail.com>2014-11-13 06:42:37 (GMT)
committerAlan Young <consult.awy@gmail.com>2015-04-10 06:50:58 (GMT)
commit7d2101b93b6253c3ea15b663f7f3dc385cb21364 (patch)
treed81338baf0d117e83cdc07f882cbedd9471e834d /src/com/isode/stroke/muc
parenta20ca7ba40d837abe228462be0aba5d32d6831e3 (diff)
downloadstroke-7d2101b93b6253c3ea15b663f7f3dc385cb21364.zip
stroke-7d2101b93b6253c3ea15b663f7f3dc385cb21364.tar.bz2
Checkpoint - A bunch of initial stuff for Android
MemoryStorages, Storages NickManager, NickResolver CryptoProvider, Hash, SafeByteArray, JavaCryptoProvider CapsInfoGenerator, CapsManager, CapsMemoryStorage, CapsProvider, CapsStorage, CapsInfo CapsInfoSerializer, CapsInfoParser ClientDiscoManager, DiscoInfoResponder, EntityCapsManager, EntityCapsProvider GetDiscoInfoRequest ChatState, Idle Presence, PayloadAddingPresenceSender, PresenceOracle, SubscriptionManager StatusSerializer, StatusShowSerializer, StatusParser, StatusShowParser, Replace, ReplaceParser, ReplaceSerializer SecurityLabel, SecurityLabelsCatalog, GetSecurityLabelsCatalogRequest VCard, GetVCardRequest, SetVCardRequest, VCardManager, VCardMemoryStorage, VCardStorage RosterMemoryStorage, RosterPushResponder, RosterStorage, SetRosterRequest XMPPRoster, XMPPRosterController, XMPPRosterImpl, XMPPRosterItem GetRosterRequest, SetResponder Add parsers and serializers for Idle, VCard, PrivateStorage & Stroage. Add parser for Subject. Add impromptu flag to MUCInvitation. Update copyrights. Change-Id: I9949f506b70e60b3a64f1dadde8f9b235b322e1d
Diffstat (limited to 'src/com/isode/stroke/muc')
-rw-r--r--src/com/isode/stroke/muc/MUC.java33
-rw-r--r--src/com/isode/stroke/muc/MUCBookmarkManager.java8
2 files changed, 28 insertions, 13 deletions
diff --git a/src/com/isode/stroke/muc/MUC.java b/src/com/isode/stroke/muc/MUC.java
index 8df1b89..900bb7d 100644
--- a/src/com/isode/stroke/muc/MUC.java
+++ b/src/com/isode/stroke/muc/MUC.java
@@ -1,13 +1,10 @@
/*
- * Copyright (c) 2012, Isode Limited, London, England.
- * All rights reserved.
- */
-/*
- * Copyright (c) 2010, Kevin Smith
+ * Copyright (c) 2010-2015, Isode Limited, London, England.
* All rights reserved.
*/
package com.isode.stroke.muc;
+import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -32,6 +29,7 @@ import com.isode.stroke.jid.JID.CompareType;
import com.isode.stroke.presence.DirectedPresenceSender;
import com.isode.stroke.queries.GenericRequest;
import com.isode.stroke.queries.IQRouter;
+import com.isode.stroke.signals.Signal;
import com.isode.stroke.signals.Signal1;
import com.isode.stroke.signals.Signal2;
import com.isode.stroke.signals.Signal3;
@@ -70,6 +68,8 @@ public class MUC {
public Signal3<ErrorPayload,JID,MUCOccupant.Role> onRoleChangeFailed =
new Signal3<ErrorPayload,JID,MUCOccupant.Role>();
+ public final Signal onUnlocked = new Signal();
+
private boolean createAsReservedIfNew;
private IQRouter iqRouter_;
private boolean joinComplete_;
@@ -253,25 +253,44 @@ public class MUC {
return occupants.containsKey(nick);
}
+ public Map<String, MUCOccupant> getOccupants() {
+ return Collections.unmodifiableMap(occupants);
+ }
+
/**
* Invite the person with give JID to the chat room
* @param person jabber ID o the person to invite,not nul
*/
public void invitePerson(JID person) {
- invitePerson(person,"");
+ invitePerson(person, "", false, false);
+ }
+
+ /**
+ * Send an invite for the person to join the MUC
+ * @param person jabber ID of the person to invite, not null
+ * @param reason join reason, not null
+ * @param isImpromptu
+ */
+ public void invitePerson(JID person, String reason, boolean isImpromptu) {
+ invitePerson(person, reason, isImpromptu, false);
}
+
/**
* Send an invite for the person to join the MUC
* @param person jabber ID of the person to invite, not null
* @param reason join reason, not null
+ * @param isImpromptu
+ * @param isReuseChat
*/
- public void invitePerson(JID person, String reason) {
+ public void invitePerson(JID person, String reason, boolean isImpromptu, boolean isReuseChat) {
Message message = new Message();
message.setTo(person);
message.setType(Message.Type.Normal);
MUCInvitationPayload invite = new MUCInvitationPayload();
invite.setReason(reason);
+ invite.setIsImpromptu(isImpromptu);
+ invite.setIsContinuation(isReuseChat);
invite.setJID(ownMUCJID.toBare());
message.addPayload(invite);
stanzaChannel.sendMessage(message);
diff --git a/src/com/isode/stroke/muc/MUCBookmarkManager.java b/src/com/isode/stroke/muc/MUCBookmarkManager.java
index 78bddea..36e6d94 100644
--- a/src/com/isode/stroke/muc/MUCBookmarkManager.java
+++ b/src/com/isode/stroke/muc/MUCBookmarkManager.java
@@ -1,9 +1,5 @@
/*
- * Copyright (c) 2012, Isode Limited, London, England.
- * All rights reserved.
- */
-/*
- * Copyright (c) 2010, Remko Tronçon.
+ * Copyright (c) 2010-2015, Isode Limited, London, England.
* All rights reserved.
*/
package com.isode.stroke.muc;
@@ -116,7 +112,7 @@ public class MUCBookmarkManager {
storage = payload;
Vector<MUCBookmark> receivedBookmarks = new Vector<MUCBookmark>();
- for (Storage.Room room : payload.getRooms()) {
+ if (payload != null) for (Storage.Room room : payload.getRooms()) {
receivedBookmarks.add(new MUCBookmark(room));
}