1
0
mirror of https://github.com/nerzhul/ownCloud-SMS-App.git synced 2026-08-23 06:13:04 +00:00

Use spinner instead of big listview when selecting contacts

This commit is contained in:
Loic Blot
2015-08-30 13:44:00 +02:00
parent 8e96526e3c
commit 1a6feec7ee
6 changed files with 83 additions and 49 deletions
@@ -5,17 +5,22 @@ import java.util.ArrayList;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.Spinner;
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;
public class ContactListActivity extends ListActivity implements ASyncContactLoad {
public class ContactListActivity extends Activity implements ASyncContactLoad {
static AccountManager _accountMgr;
ContactListAdapter adapter;
@@ -49,30 +54,37 @@ public class ContactListActivity extends ListActivity implements ASyncContactLoa
android.R.color.holo_red_light);
adapter = new ContactListAdapter(getBaseContext(),
android.R.layout.simple_list_item_1,
android.R.layout.simple_spinner_item,
objects,
R.layout.contact_list_item,
R.id.contactname);
R.id.contactname, this);
setListAdapter(adapter);
final Spinner sp = (Spinner) findViewById(R.id.contact_spinner);
sp.setVisibility(View.INVISIBLE);
sp.setAdapter(adapter);
final ProgressBar contactProgressBar = (ProgressBar) findViewById(R.id.contactlist_pgbar);
for (final Account element : myAccountList) {
if (element.name.equals(accountName)) {
// Load "contacts"
new ContactLoadTask(element, getBaseContext(), adapter, objects).execute();
contactProgressBar.setVisibility(View.VISIBLE);
sp.setVisibility(View.INVISIBLE);
new ContactLoadTask(element, getBaseContext(), adapter, objects, _layout, contactProgressBar, sp).execute();
// Add refresh handler
_layout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
_layout.setRefreshing(true);
sp.setVisibility(View.INVISIBLE);
contactProgressBar.setVisibility(View.VISIBLE);
(new Handler()).post(new Runnable() {
@Override
public void run() {
objects.clear();
adapter.notifyDataSetChanged();
new ContactLoadTask(element, getBaseContext(), adapter, objects).execute();
_layout.setRefreshing(false);
new ContactLoadTask(element, getBaseContext(), adapter, objects, _layout, contactProgressBar, sp).execute();
}
});
}