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; + } + +}