# HG changeset patch # User Nikita Kozlov # Date 1253894275 -7200 # Node ID 6dd5e802c6fbe610392c083b2f8c917a6f349720 # Parent d9737e4bc517fa6a9c3a313bba5602f260701491# Parent e6161048130da78d6f160f554455065d38387342 merge diff -r d9737e4bc517 -r 6dd5e802c6fb AndroidManifest.xml --- a/AndroidManifest.xml Fri Sep 25 17:53:50 2009 +0200 +++ b/AndroidManifest.xml Fri Sep 25 17:57:55 2009 +0200 @@ -44,6 +44,12 @@ android:name="com.beem.project.beem.service.XmppConnectionAdapter.CONNECTION_CLOSED" /> + + + + + + diff -r d9737e4bc517 -r 6dd5e802c6fb res/layout/jingle_call_activity.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/res/layout/jingle_call_activity.xml Fri Sep 25 17:57:55 2009 +0200 @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + diff -r d9737e4bc517 -r 6dd5e802c6fb res/values-en/strings.xml --- a/res/values-en/strings.xml Fri Sep 25 17:53:50 2009 +0200 +++ b/res/values-en/strings.xml Fri Sep 25 17:57:55 2009 +0200 @@ -207,5 +207,6 @@ Add a contact Settings All contacts + No group diff -r d9737e4bc517 -r 6dd5e802c6fb res/values-fr/strings.xml --- a/res/values-fr/strings.xml Fri Sep 25 17:53:50 2009 +0200 +++ b/res/values-fr/strings.xml Fri Sep 25 17:57:55 2009 +0200 @@ -201,5 +201,6 @@ Ajouter un contact Paramètres Tous les contacts + Aucun groupe diff -r d9737e4bc517 -r 6dd5e802c6fb src/com/beem/project/beem/jingle/JingleService.java --- a/src/com/beem/project/beem/jingle/JingleService.java Fri Sep 25 17:53:50 2009 +0200 +++ b/src/com/beem/project/beem/jingle/JingleService.java Fri Sep 25 17:57:55 2009 +0200 @@ -40,9 +40,6 @@ mMediaManagers = new ArrayList(); mMediaManagers.add(new MicrophoneRTPManager(bt)); - //mJingleManager = new JingleManager(xmppConnection, mMediaManagers); - //mJingleManager.addJingleSessionRequestListener(new BeemJingleSessionRequestListener()); - } /** diff -r d9737e4bc517 -r 6dd5e802c6fb src/com/beem/project/beem/jingle/demo/JingleCallActivity.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/com/beem/project/beem/jingle/demo/JingleCallActivity.java Fri Sep 25 17:57:55 2009 +0200 @@ -0,0 +1,88 @@ +package com.beem.project.beem.jingle.demo; + +import org.jivesoftware.smack.ConnectionConfiguration; +import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.XMPPException; +import org.jivesoftware.smack.util.StringUtils; + +import android.app.Activity; +import android.os.Bundle; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import com.beem.project.beem.R; +import com.beem.project.beem.jingle.JingleService; + +/** + * Activity used to test Jingle call. + * @author darisk + */ +public class JingleCallActivity extends Activity { + + private XMPPConnection mConnection; + private ConnectionConfiguration mConf; + private JingleService mJingle; + + private Button mBtconnect; + private Button mBtcall; + private EditText mEdJID; + private EditText mEdPassword; + private EditText mEdReceiver; + + /** + * Constructor. + */ + public JingleCallActivity() { + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + // TODO Auto-generated method stub + super.onCreate(savedInstanceState); + setContentView(R.layout.jingle_call_activity); + // localhost + mConf = new ConnectionConfiguration("10.0.2.2", 5222); + mEdJID = (EditText) findViewById(R.id.jingledemocalljid); + mEdPassword = (EditText) findViewById(R.id.jingledemocallpassword); + mEdReceiver = (EditText) findViewById(R.id.jingledemocallreceiver); + mBtconnect = (Button) findViewById(R.id.jingledemocallconnectbutton); + mBtconnect.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View arg0) { + String jid = mEdJID.getText().toString(); + String login = StringUtils.parseName(jid); + mConnection = new XMPPConnection(mConf); + String password = mEdPassword.getText().toString(); + try { + mConnection.connect(); + mConnection.login(login, password); + mJingle = new JingleService(mConnection); + mBtcall.setEnabled(true); + } catch (XMPPException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + }); + mBtcall = (Button) findViewById(R.id.jingledemocallbutton); + mBtcall.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View arg0) { + String jid = mEdReceiver.getText().toString(); + if (!"".equals(jid)) { + mJingle.call(jid); + Toast.makeText(JingleCallActivity.this, "Appel en cours", Toast.LENGTH_SHORT); + } else + Toast.makeText(JingleCallActivity.this, "Remplir le champ (JID complet en toto@tutu.com/truc)", + Toast.LENGTH_SHORT); + } + }); + + } + +} diff -r d9737e4bc517 -r 6dd5e802c6fb src/com/beem/project/beem/ui/ContactList.java --- a/src/com/beem/project/beem/ui/ContactList.java Fri Sep 25 17:53:50 2009 +0200 +++ b/src/com/beem/project/beem/ui/ContactList.java Fri Sep 25 17:57:55 2009 +0200 @@ -1,5 +1,6 @@ package com.beem.project.beem.ui; +import java.security.spec.MGF1ParameterSpec; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -160,6 +161,12 @@ unbindService(mServConn); } + @Override + public void onContentChanged() { + super.onContentChanged(); + Log.i("OO", "CHANGED"); + } + /** * Comparator Contact by Name. */ @@ -267,7 +274,7 @@ @Override public boolean onItemLongClick(AdapterView arg0, View v, int pos, long lpos) { Contact c = mListContact.get(pos); - ContactDialog dialogContact = new ContactDialog(ContactList.this, c, "MYSTATICGROUP"); + ContactDialog dialogContact = new ContactDialog(ContactList.this, c, mCurGroup); dialogContact.setOwnerActivity(ContactList.this); dialogContact.show(); return true; @@ -362,8 +369,21 @@ } @Override - public void onEntryDeleteFromGroup(String group, String jid) throws RemoteException { - // TODO Auto-generated method stub + public void onEntryDeleteFromGroup(String group, String jid) throws RemoteException { + List tmpContactList = mContactOnGroup.get(group); + Contact curContact = null; + for (Contact c : tmpContactList) { + if (jid.equals(c.getJID())) { + curContact = c; + tmpContactList.remove(c); + c.getGroups().remove(group); + break; + } + } + if (curContact != null && curContact.getGroups().size() == 0) { + mContactOnGroup.get(getString(R.string.contact_list_no_group)).add(curContact); + } + mHandler.post(new RunnableChange()); } /** @@ -371,7 +391,6 @@ */ @Override public void onPresenceChanged(PresenceAdapter presence) throws RemoteException { - // TODO gerer la presence au niveau de chaque ressources ? String from = presence.getFrom(); boolean resfound = false; for (Contact curContact : mListContact) { @@ -584,16 +603,20 @@ List tmpGroupList = mRoster.getGroupsNames(); Collections.sort(tmpGroupList); mListGroup = tmpGroupList; + mListGroup.add(getString(R.string.contact_list_no_group)); if (tmpGroupList.size() > 0) { + List tmpNoGroup = new ArrayList(); for (String s : tmpGroupList) { List tmpList = new ArrayList(); for (Contact c : tmpContactList) { - if (c.getGroups().contains(s)) { + if (c.getGroups().size() == 0 && !tmpNoGroup.contains(c)) + tmpNoGroup.add(c); + else if (c.getGroups().contains(s)) tmpList.add(c); - } } mContactOnGroup.put(s, tmpList); } + mContactOnGroup.put(getString(R.string.contact_list_no_group), tmpNoGroup); mCurGroup = tmpGroupList.get(0); } else { mCurGroup = null;