--- a/src/com/beem/project/beem/service/PrivacyListManagerAdapter.java Wed Jun 24 13:04:52 2009 +0200
+++ b/src/com/beem/project/beem/service/PrivacyListManagerAdapter.java Wed Jun 24 19:31:30 2009 +0200
@@ -11,6 +11,7 @@
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.PrivacyItem;
+import org.jivesoftware.smack.packet.PrivacyItem.PrivacyRule;
import android.os.RemoteException;
import android.util.Log;
@@ -26,50 +27,71 @@
private PrivacyListManager mAdaptee = null;
private List<String> mBlockedUser = new ArrayList<String>();
private XMPPConnection mConnection;
-
+ private MyPrivacyListListener privacyPacketListener = new MyPrivacyListListener();
+
public PrivacyListManagerAdapter(XMPPConnection connection) {
mConnection = connection;
+ mAdaptee = PrivacyListManager.getInstanceFor(mConnection);
+ mAdaptee.addListener(privacyPacketListener);
}
-
+
public List<String> getBlockedUsers() {
return mBlockedUser;
}
-
- public void addBlockedUser(String jid) {
+
+ public synchronized void addBlockedUser(String jid) {
if (mAdaptee == null) {
- PrivacyListManager.getInstanceFor(mConnection);
- if (mAdaptee == null) {
- Log.e(TAG, "pas bon");
- }
- mAdaptee.addListener(new MyPrivacyListListener());
+ mAdaptee = PrivacyListManager.getInstanceFor(mConnection);
+ mAdaptee.addListener(privacyPacketListener);
}
-
- Log.d(TAG, "addBlockedUser");
- PrivacyItem pItem = new PrivacyItem("jid", false, 0);
- pItem.setValue(jid);
- pItem.setFilterPresence_out(false);
List<PrivacyItem> pItemList = new ArrayList<PrivacyItem>();
+ PrivacyItem pItem = new PrivacyItem("jid", true, 1);
+ pItem.setFilterMessage(true);
+ pItem.setValue(jid);
pItemList.add(pItem);
+
+ pItem = new PrivacyItem("subscription", true, 2);
+ pItem.setValue(PrivacyRule.SUBSCRIPTION_BOTH);
+ pItemList.add(pItem);
+
try {
- mAdaptee.createPrivacyList(jid, pItemList);
+ if (mAdaptee.getPrivacyList("default") == null) {
+
+ }
+
+ } catch (XMPPException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ClassCastException e) {
+ e.printStackTrace();
+ try {
+ mAdaptee.createPrivacyList("default", pItemList);
+ } catch (XMPPException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+ try {
+ mAdaptee.setActiveListName("default");
+ mAdaptee.setDefaultListName("default");
} catch (XMPPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
+
+ Log.d(TAG, "addBlockedUser");
}
-
+
class MyPrivacyListListener implements PrivacyListListener {
@Override
public void setPrivacyList(String listName, List<PrivacyItem> listItem) {
Log.d(TAG,"setPrivacyList");
-
}
@Override
public void updatedPrivacyList(String listName) {
Log.d(TAG,"updatedPrivacyList");
-
}
}
--- a/src/com/beem/project/beem/service/XmppConnectionAdapter.java Wed Jun 24 13:04:52 2009 +0200
+++ b/src/com/beem/project/beem/service/XmppConnectionAdapter.java Wed Jun 24 19:31:30 2009 +0200
@@ -72,6 +72,7 @@
public XmppConnectionAdapter(final XMPPConnection con, final String login, final String password,
BeemService service) {
mAdaptee = con;
+ PrivacyListManager.getInstanceFor(mAdaptee);
mLogin = login;
mPassword = password;
mService = service;
@@ -111,11 +112,6 @@
@Override
public boolean connectSync() throws RemoteException {
try {
- try {
- PrivacyListManager.getInstanceFor(mAdaptee);
- } catch (NullPointerException e) {
- Log.e(TAG, "pas normal", e);
- }
mAdaptee.connect();
mAdaptee.addConnectionListener(mConListener);
mAdaptee.login(mLogin, mPassword, "BEEM");
@@ -187,7 +183,7 @@
sdm = new ServiceDiscoveryManager(mAdaptee);
sdm.addFeature("http://jabber.org/protocol/disco#info");
JingleManager.setJingleServiceEnabled();
- // sdm.addFeature("http://jabber.org/protocol/nick");
+ sdm.addFeature("jabber:iq:privacy");
}
/**
--- a/src/com/beem/project/beem/ui/ContactDialog.java Wed Jun 24 13:04:52 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactDialog.java Wed Jun 24 19:31:30 2009 +0200
@@ -81,11 +81,11 @@
@Override
public void onClick(View v) {
try {
- xmppFacade.blockUser("beem.test@gmail.com");
+ xmppFacade.blockUser(mContact.getJID());
} catch (RemoteException e) {
- // TODO Auto-generated catch block
e.printStackTrace();
- }
+ }
+ dismiss();
}
}