diff --git a/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java
index 4b697b7..b0eecc7 100644
--- a/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java
+++ b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/ContactListActivity.java
@@ -2,23 +2,35 @@ package fr.unix_experience.owncloud_sms.activities.remote_account;
import java.lang.reflect.Array;
import java.util.ArrayList;
+import java.util.Vector;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Activity;
import android.app.ListActivity;
+import android.content.ContentResolver;
+import android.database.Cursor;
+import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
+import android.provider.ContactsContract;
import android.support.v4.widget.SwipeRefreshLayout;
+import android.util.Log;
import android.view.View;
+import android.widget.AdapterView;
+import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.Spinner;
+import android.widget.TextView;
+
+import org.w3c.dom.Text;
import fr.nrz.androidlib.adapters.AndroidAccountAdapter;
import fr.unix_experience.owncloud_sms.R;
import fr.unix_experience.owncloud_sms.adapters.ContactListAdapter;
import fr.unix_experience.owncloud_sms.engine.ASyncContactLoad;
+import fr.unix_experience.owncloud_sms.engine.OCSMSOwnCloudClient;
public class ContactListActivity extends Activity implements ASyncContactLoad {
@@ -60,10 +72,71 @@ public class ContactListActivity extends Activity implements ASyncContactLoad {
R.id.contactname, this);
final Spinner sp = (Spinner) findViewById(R.id.contact_spinner);
- sp.setVisibility(View.INVISIBLE);
- sp.setAdapter(adapter);
-
+ final LinearLayout contactInfos = (LinearLayout) findViewById(R.id.contactinfos_layout);
final ProgressBar contactProgressBar = (ProgressBar) findViewById(R.id.contactlist_pgbar);
+ final TextView contactPhoneList = (TextView) findViewById(R.id.contact_phonelist);
+
+ sp.setVisibility(View.INVISIBLE);
+ contactInfos.setVisibility(View.INVISIBLE);
+
+ sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> parent, View view, int position, long id) {
+ contactInfos.setVisibility(View.INVISIBLE);
+
+ String contactName = sp.getSelectedItem().toString();
+ Vector phoneList = fetchContact(contactName);
+ Integer smsCount = 0;
+ // @TODO asynctask to load more datas
+
+ if (phoneList.size() > 0) {
+ String res = new String("");
+ for (String pn: phoneList) {
+ res += "- " + pn + "\n";
+ }
+ contactPhoneList.setText(res);
+ } else {
+ contactPhoneList.setText(contactName);
+ }
+
+ contactInfos.setVisibility(View.VISIBLE);
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> parent) {
+ // Nothing to do there
+ }
+
+ private Vector fetchContact(String name) {
+ Cursor people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
+ null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " = ?",
+ new String[]{name}, null);
+ people.moveToFirst();
+
+ Vector r = new Vector<>();
+ if (people.getCount() == 0) {
+ return r;
+ }
+
+ String contactId = people.getString(people.getColumnIndex(ContactsContract.Contacts._ID));
+
+ if (people.getString(people.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))
+ .equalsIgnoreCase("1")) {
+ Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
+ null,
+ ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
+ new String[]{contactId}, null);
+ while (phones.moveToNext()) {
+ String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))
+ .replaceAll(" ", "");
+ r.add(phoneNumber);
+ }
+ phones.close();
+ }
+ return r;
+ }
+ });
+ sp.setAdapter(adapter);
for (final Account element : myAccountList) {
if (element.name.equals(accountName)) {
diff --git a/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncContactLoad.java b/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncContactLoad.java
index 11b3a0d..70c3b52 100644
--- a/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncContactLoad.java
+++ b/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncContactLoad.java
@@ -98,8 +98,8 @@ public interface ASyncContactLoad {
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{id}, null);
while (pCur.moveToNext()) {
- String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
- phoneNo = phoneNo.replaceAll(" ", "");
+ String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))
+ .replaceAll(" ", "");
if (serverPhoneList.contains(phoneNo)) {
if (!_objects.contains(name)) {
_objects.add(name);
diff --git a/src/main/res/layout/restore_activity_contactlist.xml b/src/main/res/layout/restore_activity_contactlist.xml
index 8c020eb..861ff29 100644
--- a/src/main/res/layout/restore_activity_contactlist.xml
+++ b/src/main/res/layout/restore_activity_contactlist.xml
@@ -51,6 +51,39 @@
android:indeterminate="true"
android:layout_height="wrap_content"/>
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/res/values-en/strings.xml b/src/main/res/values-en/strings.xml
index 7c4206f..0e1253c 100644
--- a/src/main/res/values-en/strings.xml
+++ b/src/main/res/values-en/strings.xml
@@ -160,5 +160,8 @@ Contributors and issue\'s reporters
Error #18: OcSMS app is not installed or ownCloud awaiting for an upgrade
Invalid phonelist received from server.
Server doesn\'t support this feature. Ensure server version is at least 1.6.
-
+ Contact informations
+ Choose account
+ > Contact phones
+
diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml
index 2654b16..ecfa21f 100644
--- a/src/main/res/values-es/strings.xml
+++ b/src/main/res/values-es/strings.xml
@@ -91,4 +91,6 @@
Proceso de sincronización
Sincronización en progreso...
Error Fatal !
+ Choisissez un compte
+ Informations sur le contact
diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml
index b178a25..f425d5e 100644
--- a/src/main/res/values-fr/strings.xml
+++ b/src/main/res/values-fr/strings.xml
@@ -120,4 +120,16 @@ Les contributeurs et rapporteurs de bugs
Error #18: L\'application OcSMS n\'est pas installée ou ownCloud attend d\'être mis à niveau.
La liste de numéros reçue depuis le serveur est invalide.
Le serveur ne supporte pas cette fonctionnalité. Assurez vous que le serveur est au moins en version 1.6.
+ Informations sur le contact
+ Erreur #6: Liste SMS Nulle
+ Erreur #6: Echec de la création de la requête PUSH
+ Erreur #11: Impossible de se connecter à l\'instance ownCloud
+ Erreur #8: Echec de l\'authentification
+ Erreur #3: Echec du push de la requête
+ Erreur #9: Le serveur a renvoyé un code de retour HTTP non géré
+ Erreur #14: Impossible d\'interpréter la réponse du serveur
+ Erreur #15: Impossible d\'interpréter la réponse du serveur
+ Erreur #12: Impossible de se connecter à l\'instance ownCloud
+ Erreur #13: Impossible de se connecter à l\'instance ownCloud
+ > Numéros de téléphone associés
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index a25fb07..9ee4055 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -170,4 +170,6 @@ Contributors and issue\'s reporters
Error #18: OcSMS app is not installed or ownCloud awaiting for an upgrade
Invalid phonelist received from server.
Server doesn\'t support this feature. Ensure server version is at least 1.6.
+ Contact informations
+ > Contact phones