# HG changeset patch # User Marseille # Date 1245863181 -7200 # Node ID 3ac42eddf713e732ec4d70e2d4619eda758774a2 # Parent 597ee98a647730667368baccea3994b0a95840bb# Parent 1ba29ab8e122728c31ce8bf91177d93ec146a9ba Merge. diff -r 597ee98a6477 -r 3ac42eddf713 src/com/beem/project/beem/service/PrivacyListManagerAdapter.java --- a/src/com/beem/project/beem/service/PrivacyListManagerAdapter.java Wed Jun 24 18:36:56 2009 +0200 +++ b/src/com/beem/project/beem/service/PrivacyListManagerAdapter.java Wed Jun 24 19:06:21 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; @@ -19,57 +20,78 @@ /** * @author nikita - * + * A finir */ public class PrivacyListManagerAdapter extends IPrivacyListManager.Stub { public static final String TAG = "PrivacyListManagerAdapter"; private PrivacyListManager mAdaptee = null; private List mBlockedUser = new ArrayList(); private XMPPConnection mConnection; - + private MyPrivacyListListener privacyPacketListener = new MyPrivacyListListener(); + public PrivacyListManagerAdapter(XMPPConnection connection) { mConnection = connection; + mAdaptee = PrivacyListManager.getInstanceFor(mConnection); + mAdaptee.addListener(privacyPacketListener); } - + public List 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 pItemList = new ArrayList(); + 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 listItem) { Log.d(TAG,"setPrivacyList"); - } @Override public void updatedPrivacyList(String listName) { Log.d(TAG,"updatedPrivacyList"); - } } diff -r 597ee98a6477 -r 3ac42eddf713 src/com/beem/project/beem/service/RosterAdapter.java --- a/src/com/beem/project/beem/service/RosterAdapter.java Wed Jun 24 18:36:56 2009 +0200 +++ b/src/com/beem/project/beem/service/RosterAdapter.java Wed Jun 24 19:06:21 2009 +0200 @@ -71,51 +71,31 @@ RosterEntry contact = mAdaptee.getEntry(user); if (contact != null) { res = mContacts.get(user); - if (groups != null) { - for (String groupStr : groups) { - boolean found = false; - for (RosterGroup group : mAdaptee.getGroups()) { - if (group.getName().equals(groupStr) && !group.contains(contact)) { - try { - group.addEntry(contact); - res.addGroup(groupStr); - found = true; - } catch (XMPPException e) { - Log.e(TAG, "add new contact", e); - } - } - } - if (!found) { - try { - mAdaptee.createGroup(groupStr).addEntry(contact); - } catch (XMPPException e) { - e.printStackTrace(); - } catch (IllegalArgumentException e) { - } - res.addGroup(groupStr); - } - } - } } else { try { mAdaptee.createEntry(user, name, groups); + contact = mAdaptee.getEntry(user); res = new Contact(user); mContacts.put(user, res); - if (groups != null) { - for (String groupStr : groups) { - try { - mAdaptee.createGroup(groupStr); - } catch (IllegalArgumentException e) { - // e.printStackTrace(); - } - res.addGroup(groupStr); - } - } } catch (XMPPException e) { Log.e(TAG, "Error while adding new contact", e); return null; } } + if (groups != null) { + for (String groupStr : groups) { + RosterGroup group = mAdaptee.getGroup(groupStr); + if (group == null) { + group = mAdaptee.createGroup(groupStr); + } + try { + group.addEntry(contact); + } catch (XMPPException e) { + e.printStackTrace(); + } + res.addGroup(groupStr); + } + } return res; } diff -r 597ee98a6477 -r 3ac42eddf713 src/com/beem/project/beem/service/XmppConnectionAdapter.java --- a/src/com/beem/project/beem/service/XmppConnectionAdapter.java Wed Jun 24 18:36:56 2009 +0200 +++ b/src/com/beem/project/beem/service/XmppConnectionAdapter.java Wed Jun 24 19:06:21 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"); } /** diff -r 597ee98a6477 -r 3ac42eddf713 src/com/beem/project/beem/ui/ContactDialog.java --- a/src/com/beem/project/beem/ui/ContactDialog.java Wed Jun 24 18:36:56 2009 +0200 +++ b/src/com/beem/project/beem/ui/ContactDialog.java Wed Jun 24 19:06:21 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(); } }