diff --git a/res/layout/account_list_item.xml b/res/layout/account_list_item.xml
new file mode 100644
index 0000000..7475226
--- /dev/null
+++ b/res/layout/account_list_item.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/src/fr/unix_experience/owncloud_sms/activities/RestoreSMSAccountListActivity.java b/src/fr/unix_experience/owncloud_sms/activities/RestoreSMSAccountListActivity.java
index 5a91422..9fb0e0f 100644
--- a/src/fr/unix_experience/owncloud_sms/activities/RestoreSMSAccountListActivity.java
+++ b/src/fr/unix_experience/owncloud_sms/activities/RestoreSMSAccountListActivity.java
@@ -2,28 +2,41 @@ package fr.unix_experience.owncloud_sms.activities;
import java.util.ArrayList;
+import android.accounts.Account;
+import android.accounts.AccountManager;
import android.app.ListActivity;
import android.os.Bundle;
-import android.widget.ArrayAdapter;
import fr.unix_experience.owncloud_sms.R;
+import fr.unix_experience.owncloud_sms.adapters.AndroidAccountAdapter;
public class RestoreSMSAccountListActivity extends ListActivity {
- ArrayList listItems = new ArrayList();
- ArrayAdapter adapter;
+ ArrayList listItems = new ArrayList();
+ AndroidAccountAdapter adapter;
+
+ private static String _accountType;
+ private static AccountManager _accountMgr;
@Override
public void onCreate(final Bundle icicle) {
super.onCreate(icicle);
+
+ _accountType = getString(R.string.account_type);
+ _accountMgr = AccountManager.get(getBaseContext());
+
setContentView(R.layout.restore_activity_accountlist);
- adapter = new ArrayAdapter(this,
+ adapter = new AndroidAccountAdapter(this,
android.R.layout.simple_list_item_1,
- listItems);
+ listItems,
+ R.layout.account_list_item,
+ R.id.accountname);
setListAdapter(adapter);
- listItems.add("test");
- listItems.add("test2");
- listItems.add("test3");
- listItems.add("test4s");
+ final Account[] myAccountList = _accountMgr.getAccountsByType(_accountType);
+ for (final Account element : myAccountList) {
+ listItems.add(element);
+ }
+
+
adapter.notifyDataSetChanged();
}
}
diff --git a/src/fr/unix_experience/owncloud_sms/adapters/AndroidAccountAdapter.java b/src/fr/unix_experience/owncloud_sms/adapters/AndroidAccountAdapter.java
new file mode 100644
index 0000000..b48fe41
--- /dev/null
+++ b/src/fr/unix_experience/owncloud_sms/adapters/AndroidAccountAdapter.java
@@ -0,0 +1,47 @@
+package fr.unix_experience.owncloud_sms.adapters;
+
+import java.util.ArrayList;
+
+import android.accounts.Account;
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+public class AndroidAccountAdapter extends ArrayAdapter {
+
+ private final ArrayList _accounts;
+ private static int _itemLayout;
+ private static int _accountFieldId;
+
+ public AndroidAccountAdapter(final Context context, final int resource,
+ final ArrayList objects, final int itemLayout, final int accountFieldId) {
+ super(context, resource, objects);
+ _accounts = objects;
+ _itemLayout = itemLayout;
+ _accountFieldId = accountFieldId;
+ }
+
+ @Override
+ public View getView(final int position, final View convertView, final ViewGroup parent) {
+ View v = convertView;
+ if (v == null) {
+ final LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ v = inflater.inflate(_itemLayout, null);
+ }
+
+ final Account account = _accounts.get(position);
+
+ if (account != null) {
+ final TextView label = (TextView) v.findViewById(_accountFieldId);
+ if (label != null) {
+ label.setText(account.name + " -->");
+ }
+ }
+
+ return v;
+ }
+
+}