diff --git a/briar-android/src/org/briarproject/android/contact/ContactListActivity.java b/briar-android/src/org/briarproject/android/contact/ContactListActivity.java index 4b39c1295d141212aa7a6c61a1c540c69592c6f1..79188325459bfcc0ae347f82f233eb40e653cacd 100644 --- a/briar-android/src/org/briarproject/android/contact/ContactListActivity.java +++ b/briar-android/src/org/briarproject/android/contact/ContactListActivity.java @@ -133,7 +133,12 @@ public class ContactListActivity extends BriarActivity private void displayContacts(final List<ContactListItem> contacts) { runOnUiThread(new Runnable() { public void run() { - adapter.addAll(contacts); + if (contacts.size() > 0) { + adapter.addAll(contacts); + } else { + // no contacts to display, make sure progress bar is hidden + list.showData(); + } } }); } diff --git a/briar-android/src/org/briarproject/android/util/BriarRecyclerView.java b/briar-android/src/org/briarproject/android/util/BriarRecyclerView.java index 891d155ffe3340271cfdf293bde933d2bbe3af5c..4e50c1d5d53a55ff8cca34f58cf66d02200ecab9 100644 --- a/briar-android/src/org/briarproject/android/util/BriarRecyclerView.java +++ b/briar-android/src/org/briarproject/android/util/BriarRecyclerView.java @@ -49,9 +49,7 @@ public class BriarRecyclerView extends FrameLayout { emptyView = (TextView) v.findViewById(R.id.emptyView); progressBar = (ProgressBar) v.findViewById(R.id.progressBar); - recyclerView.setVisibility(View.INVISIBLE); - emptyView.setVisibility(View.INVISIBLE); - progressBar.setVisibility(View.VISIBLE); + showProgressBar(); emptyObserver = new RecyclerView.AdapterDataObserver() { @Override @@ -72,6 +70,11 @@ public class BriarRecyclerView extends FrameLayout { } public void setAdapter(RecyclerView.Adapter adapter) { + RecyclerView.Adapter oldAdapter = recyclerView.getAdapter(); + if (oldAdapter != null) { + oldAdapter.unregisterAdapterDataObserver(emptyObserver); + } + recyclerView.setAdapter(adapter); if (adapter != null) { @@ -95,7 +98,7 @@ public class BriarRecyclerView extends FrameLayout { progressBar.setVisibility(View.VISIBLE); } - private void showData() { + public void showData() { RecyclerView.Adapter<?> adapter = recyclerView.getAdapter(); if (adapter != null) { if (adapter.getItemCount() == 0) { @@ -109,4 +112,8 @@ public class BriarRecyclerView extends FrameLayout { } } + public RecyclerView getRecyclerView() { + return recyclerView; + } + }