merge
authornikita@localhost
Wed, 24 Jun 2009 19:31:30 +0200
changeset 290 ee4c051de429
parent 288 b4112a39526c
child 291 ab161e8a58f5
merge
src/com/beem/project/beem/service/PrivacyListManagerAdapter.java
src/com/beem/project/beem/service/XmppConnectionAdapter.java
src/com/beem/project/beem/ui/ContactDialog.java
--- 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();
 	}	
     }