# HG changeset patch # User marseille@marseille-desktop # Date 1237590014 -3600 # Node ID b915994d895e6f7e85517156e45cfa56c49feaef # Parent b6f30d35ea22d67dd5bae54e179c16345fd58802# Parent 55868b881f04a779d1a29b2bddb6c00ef182e8cb Merge diff -r 55868b881f04 -r b915994d895e AndroidManifest.xml --- a/AndroidManifest.xml Fri Mar 20 14:25:25 2009 +0100 +++ b/AndroidManifest.xml Sat Mar 21 00:00:14 2009 +0100 @@ -1,22 +1,26 @@ - - - - - - - - - - - - - - - + package="com.beem.project.beem" android:versionCode="1" + android:versionName="1.0"> + + + + + + + + + + + + + + + + + + diff -r 55868b881f04 -r b915994d895e res/drawable/avatar.png Binary file res/drawable/avatar.png has changed diff -r 55868b881f04 -r b915994d895e res/drawable/bart.jpg Binary file res/drawable/bart.jpg has changed diff -r 55868b881f04 -r b915994d895e res/layout/beem.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/res/layout/beem.xml Sat Mar 21 00:00:14 2009 +0100 @@ -0,0 +1,35 @@ + + + + + + + + + + + \ No newline at end of file diff -r 55868b881f04 -r b915994d895e res/layout/contactlist.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/res/layout/contactlist.xml Sat Mar 21 00:00:14 2009 +0100 @@ -0,0 +1,19 @@ + + + + + + + + diff -r 55868b881f04 -r b915994d895e res/layout/contactlistgroup.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/res/layout/contactlistgroup.xml Sat Mar 21 00:00:14 2009 +0100 @@ -0,0 +1,16 @@ + + + + + + diff -r 55868b881f04 -r b915994d895e res/layout/main.xml --- a/res/layout/main.xml Fri Mar 20 14:25:25 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - diff -r 55868b881f04 -r b915994d895e res/menu/account.xml --- a/res/menu/account.xml Fri Mar 20 14:25:25 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff -r 55868b881f04 -r b915994d895e res/menu/beemmenu.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/res/menu/beemmenu.xml Sat Mar 21 00:00:14 2009 +0100 @@ -0,0 +1,4 @@ + + + + diff -r 55868b881f04 -r b915994d895e res/values/strings.xml --- a/res/values/strings.xml Fri Mar 20 14:25:25 2009 +0100 +++ b/res/values/strings.xml Sat Mar 21 00:00:14 2009 +0100 @@ -1,15 +1,20 @@ - Beem - -Use the Beem Service -BeemService Created -BeemService destroyed + Beem - -Beem -login -host -password -port + + Creer un compte + Jabber ID + + + Use the Beem Service + BeemService Created + BeemService destroyed + + + Beem + login + host + password + port diff -r 55868b881f04 -r b915994d895e src/com/beem/project/beem/Beem.java --- a/src/com/beem/project/beem/Beem.java Fri Mar 20 14:25:25 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -package com.beem.project.beem; - -import android.app.Activity; -import android.content.Intent; -import android.content.SharedPreferences; -import android.os.Bundle; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.View.OnClickListener; -import android.widget.Button; -import android.widget.EditText; - -public class Beem extends Activity { - - private SharedPreferences mSettings; - - /** - * Called when the activity is first created. - */ - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.main); - mSettings = getSharedPreferences(getString(R.string.PreferenceFileName), MODE_PRIVATE); - showJID(); - Button btConnection = (Button) findViewById(R.id.connection); - btConnection.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - // TODO Auto-generated method stub - startService(new Intent(Beem.this,BeemService.class)); - } - }); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - super.onCreateOptionsMenu(menu); - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.account, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - SettingsDialog Dialog = new SettingsDialog(this, mSettings); - switch (item.getItemId()) { - case R.id.account_edit: - Dialog.show(); - return true; - case R.id.account_about: - return true; - } - return false; - } - - public void showJID() { - EditText ejid = (EditText) findViewById(R.id.jid); - String jid = mSettings.getString("login", "") + - "@" + mSettings.getString("host", "") ; - if (jid.length() == 1) - jid = "Enter Jabber ID / Create New Account"; - ejid.setText(jid); - } - -} diff -r 55868b881f04 -r b915994d895e src/com/beem/project/beem/BeemService.java --- a/src/com/beem/project/beem/BeemService.java Fri Mar 20 14:25:25 2009 +0100 +++ b/src/com/beem/project/beem/BeemService.java Sat Mar 21 00:00:14 2009 +0100 @@ -8,96 +8,125 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; -import com.beem.project.beem.service.IXMPPFacade; - import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.content.SharedPreferences; -import android.content.res.Resources; import android.os.IBinder; import android.os.RemoteException; -import android.widget.TextView; import android.widget.Toast; +import com.beem.project.beem.service.IXMPPFacade; + /** * @author darisk - * + * */ public class BeemService extends Service { private NotificationManager notificationManager; private XMPPConnection connection; + private SharedPreferences settings; + private String login; + private String password; + private String host; - + private IXMPPFacade.Stub bind = new IXMPPFacade.Stub() { - + @Override public List getContactList() throws RemoteException { - // TODO Auto-generated method stub - return null; + return null; + } + + @Override + public List getGroupList() throws RemoteException { + return null; } }; - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see android.app.Service#onBind(android.content.Intent) */ @Override public IBinder onBind(Intent arg0) { - // TODO Auto-generated method stub - return null; + try { + connection = new XMPPConnection("10.0.2.2"); // address du pc host + // de l'emulateur + connection.connect(); + connection.login(login, password); + notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); + showBasicNotification(R.string.BeemServiceCreated); + } catch (XMPPException e) { + // TODO Auto-generated catch block + Toast toast = Toast.makeText(this, "ERREUR " + e.getMessage(), + Toast.LENGTH_LONG); + toast.show(); + notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); + showBasicNotification(R.string.PreferenceFileName); + } + return bind; } - + private void showBasicNotification(int stringResource) { - String text = (String) getText(stringResource); - Notification notif = new Notification(R.drawable.logo, text, System.currentTimeMillis()); - notif.defaults = Notification.DEFAULT_ALL; - notif.setLatestEventInfo(this, text, text, PendingIntent.getActivity(this, 0, new Intent(),0)); - notificationManager.notify(stringResource, notif); - Toast toast = Toast.makeText(this, R.string.BeemServiceCreated, Toast.LENGTH_LONG); - toast.show(); + String text = (String) getText(stringResource); + Notification notif = new Notification(R.drawable.logo, text, System + .currentTimeMillis()); + notif.defaults = Notification.DEFAULT_ALL; + notif.setLatestEventInfo(this, text, text, PendingIntent.getActivity( + this, 0, new Intent(), 0)); + notificationManager.notify(stringResource, notif); + Toast toast = Toast.makeText(this, R.string.BeemServiceCreated, + Toast.LENGTH_LONG); + toast.show(); } - + @Override - public void onCreate(){ - super.onCreate(); - settings = getSharedPreferences(getString(R.string.PreferenceFileName), MODE_PRIVATE); - login = settings.getString(getString(R.string.PreferenceLoginKey), ""); - password = settings.getString(getString(R.string.PreferencePasswordKey), ""); - host = settings.getString(getString(R.string.PreferenceHostKey), ""); + public void onCreate() { + super.onCreate(); + settings = getSharedPreferences(getString(R.string.PreferenceFileName), + MODE_PRIVATE); + login = settings.getString(getString(R.string.PreferenceLoginKey), ""); + password = settings.getString( + getString(R.string.PreferencePasswordKey), ""); + host = settings.getString(getString(R.string.PreferenceHostKey), ""); } - + @Override public void onStart(Intent intent, int startId) { - try { - connection = new XMPPConnection("10.0.2.2"); // address du pc host de l'emulateur - connection.connect(); - connection.login(login, password); - notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); - showBasicNotification(R.string.BeemServiceCreated); - } catch (XMPPException e) { - // TODO Auto-generated catch block - Toast toast = Toast.makeText(this, "ERREUR " + e.getMessage(), Toast.LENGTH_LONG); - toast.show(); - e.printStackTrace(); - } + try { + connection = new XMPPConnection("10.0.2.2"); // address du pc host + // de l'emulateur + connection.connect(); + connection.login(login, password); + notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); + showBasicNotification(R.string.BeemServiceCreated); + } catch (XMPPException e) { + // TODO Auto-generated catch block + Toast toast = Toast.makeText(this, "ERREUR " + e.getMessage(), + Toast.LENGTH_LONG); + toast.show(); + notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); + showBasicNotification(R.string.PreferenceFileName); + } } - + private void closeConnection() { - if (connection != null) - connection.disconnect(); + if (connection != null) + connection.disconnect(); } - + @Override public void onDestroy() { - closeConnection(); - showBasicNotification(R.string.BeemServiceDestroyed); - } + closeConnection(); + } } diff -r 55868b881f04 -r b915994d895e src/com/beem/project/beem/SettingsDialog.java --- a/src/com/beem/project/beem/SettingsDialog.java Fri Mar 20 14:25:25 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -package com.beem.project.beem; - -import android.app.Dialog; -import android.content.Context; -import android.content.SharedPreferences; -import android.view.View; -import android.widget.Button; -import android.widget.EditText; - -/** - * - */ -public class SettingsDialog extends Dialog implements android.view.View.OnClickListener { - - private Beem mbeem; - private SharedPreferences mSettings; - public SettingsDialog(Beem beem, SharedPreferences settings) { - super(beem); - this.mbeem = beem; - this.mSettings = settings; - } - - @Override - protected void onStart() { - super.onStart(); - setContentView(R.layout.settings); - getWindow().setFlags(4, 4); - setTitle("Jabber Account Settings"); - showSettings(); - Button ok = (Button) findViewById(R.id.ok); - ok.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - SharedPreferences.Editor editor = mSettings.edit(); - Context ctx = getContext(); - editor.putString(ctx.getString(R.string.PreferenceHostKey), getWidgetText(R.id.host)); - editor.putString(ctx.getString(R.string.PreferencePortKey), getWidgetText(R.id.port)); - editor.putString(ctx.getString(R.string.PreferenceLoginKey), getWidgetText(R.id.userid)); - editor.putString(ctx.getString(R.string.PreferencePasswordKey), getWidgetText(R.id.password)); - editor.commit(); - this.mbeem.showJID(); - dismiss(); - } - - private void showSettings() { - String tmp; - EditText eHost = (EditText) findViewById(R.id.host); - if ((tmp = mSettings.getString("host","")) != "") - eHost.setText(tmp); - EditText ePort = (EditText) findViewById(R.id.port); - if ((tmp = mSettings.getString("port","")) != "") - ePort.setText(tmp); - EditText eLogin = (EditText) findViewById(R.id.userid); - if ((tmp = mSettings.getString("login","")) != "") - eLogin.setText(tmp); - EditText ePwd = (EditText) findViewById(R.id.password); - if ((tmp = mSettings.getString("password","")) != "") - ePwd.setText(tmp); - } - - private String getWidgetText(int id) { - EditText widget = (EditText) this.findViewById(id); - return widget.getText().toString(); - } -} diff -r 55868b881f04 -r b915994d895e src/com/beem/project/beem/service/IXMPPFacade.aidl --- a/src/com/beem/project/beem/service/IXMPPFacade.aidl Fri Mar 20 14:25:25 2009 +0100 +++ b/src/com/beem/project/beem/service/IXMPPFacade.aidl Sat Mar 21 00:00:14 2009 +0100 @@ -7,5 +7,6 @@ // org.jivesoftware.smack.XMPPConnection getXMPPConnection(); List getContactList(); + List getGroupList(); } diff -r 55868b881f04 -r b915994d895e src/com/beem/project/beem/ui/Beem.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/com/beem/project/beem/ui/Beem.java Sat Mar 21 00:00:14 2009 +0100 @@ -0,0 +1,74 @@ +package com.beem.project.beem.ui; + +import android.app.Activity; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; + +import com.beem.project.beem.R; + +public class Beem extends Activity { + + private SharedPreferences mSettings; + private BeemDialogSettings mDialog; + private Button mButton; + + /** + * Called when the activity is first created. + */ + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.beem); + mSettings = getSharedPreferences( + getString(R.string.PreferenceFileName), MODE_PRIVATE); + mDialog = new BeemDialogSettings(this, mSettings); + + mButton = (Button) findViewById(R.id.connection); + mButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (mButton.getText() == getString(R.string.BeemCreateAccount)) + mDialog.show(); + else + startActivity(new Intent(Beem.this, ContactList.class)); + } + }); + showJID(); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.beemmenu, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.account_edit: + mDialog.show(); + return true; + case R.id.account_about: + return true; + } + return false; + } + + public void showJID() { + String jid = mSettings.getString(getString(R.string.PreferenceLoginKey), "") + "@" + + mSettings.getString(getString(R.string.PreferenceHostKey), ""); + if (jid.length() == 1) + jid = getString(R.string.BeemCreateAccount); + mButton.setText(jid); + } + +} diff -r 55868b881f04 -r b915994d895e src/com/beem/project/beem/ui/BeemDialogSettings.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/com/beem/project/beem/ui/BeemDialogSettings.java Sat Mar 21 00:00:14 2009 +0100 @@ -0,0 +1,76 @@ +package com.beem.project.beem.ui; + +import android.app.Dialog; +import android.content.Context; +import android.content.SharedPreferences; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; + +import com.beem.project.beem.R; + +/** + * + */ +public class BeemDialogSettings extends Dialog implements + android.view.View.OnClickListener { + + private Beem mbeem; + + private SharedPreferences mSettings; + + public BeemDialogSettings(Beem beem, SharedPreferences settings) { + super(beem); + this.mbeem = beem; + this.mSettings = settings; + } + + @Override + protected void onStart() { + super.onStart(); + setContentView(R.layout.beemdialogsettings); + getWindow().setFlags(4, 4); + setTitle("Jabber Account Settings"); + showSettings(); + Button ok = (Button) findViewById(R.id.ok); + ok.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + SharedPreferences.Editor editor = mSettings.edit(); + Context ctx = getContext(); + editor.putString(ctx.getString(R.string.PreferenceHostKey), + getWidgetText(R.id.host)); + editor.putString(ctx.getString(R.string.PreferencePortKey), + getWidgetText(R.id.port)); + editor.putString(ctx.getString(R.string.PreferenceLoginKey), + getWidgetText(R.id.userid)); + editor.putString(ctx.getString(R.string.PreferencePasswordKey), + getWidgetText(R.id.password)); + editor.commit(); + this.mbeem.showJID(); + dismiss(); + } + + private void showSettings() { + String tmp; + EditText eHost = (EditText) findViewById(R.id.host); + if ((tmp = mSettings.getString("host", "")) != "") + eHost.setText(tmp); + EditText ePort = (EditText) findViewById(R.id.port); + if ((tmp = mSettings.getString("port", "")) != "") + ePort.setText(tmp); + EditText eLogin = (EditText) findViewById(R.id.userid); + if ((tmp = mSettings.getString("login", "")) != "") + eLogin.setText(tmp); + EditText ePwd = (EditText) findViewById(R.id.password); + if ((tmp = mSettings.getString("password", "")) != "") + ePwd.setText(tmp); + } + + private String getWidgetText(int id) { + EditText widget = (EditText) this.findViewById(id); + return widget.getText().toString(); + } +} diff -r 55868b881f04 -r b915994d895e src/com/beem/project/beem/ui/ContactList.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/com/beem/project/beem/ui/ContactList.java Sat Mar 21 00:00:14 2009 +0100 @@ -0,0 +1,82 @@ +package com.beem.project.beem.ui; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import android.app.ExpandableListActivity; +import android.content.ComponentName; +import android.content.Intent; +import android.content.ServiceConnection; +import android.os.Bundle; +import android.os.IBinder; +import android.widget.ExpandableListAdapter; +import android.widget.SimpleExpandableListAdapter; + +import com.beem.project.beem.BeemService; +import com.beem.project.beem.R; +import com.beem.project.beem.service.IXMPPFacade; + +public class ContactList extends ExpandableListActivity { + + private IXMPPFacade mService = null; + + @Override + public void onCreate(Bundle saveBundle) { + super.onCreate(saveBundle); + bindService(new Intent(this, BeemService.class), mConnection, + BIND_AUTO_CREATE | BIND_DEBUG_UNBIND); + showContactList(); + } + + private void showContactList() { + ExpandableListAdapter Adapter; + List> groupData = new ArrayList>(); + List>> childData = new ArrayList>>(); + + for (int i = 0; i < 2; i++) { + Map curGroupMap = new HashMap(); + groupData.add(curGroupMap); + curGroupMap.put("NAME", "Group " + i); + + List> children = new ArrayList>(); + for (int j = 0; j < 5; j++) { + Map curChildMap = new HashMap(); + children.add(curChildMap); + curChildMap.put("NAME CHILD", "Child " + j); + } + childData.add(children); + } + + Adapter = new SimpleExpandableListAdapter(this, + groupData, R.layout.contactlistgroup, + new String[] {"NAME"}, new int[] {R.id.textgroup}, + childData, R.layout.contactlist, + new String[] {"NAME CHILD"}, new int[] {R.id.textchild}); + setListAdapter(Adapter); + } + + private ServiceConnection mConnection = new ServiceConnection() { + @Override + public void onServiceConnected(ComponentName name, IBinder service) { + mService = IXMPPFacade.Stub.asInterface(service); + /* + * mService.getGroupList(); mService.getContactList(); + */ + showContactList(); + } + + @Override + public void onServiceDisconnected(ComponentName name) { + } + + }; + + @Override + public void onDestroy() { + super.onDestroy(); + unbindService(mConnection); + } + +}