From 970560c21e97bed9bfb1f7d18ec88890dbd0c5e4 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Wed, 30 Dec 2015 10:44:14 -0200 Subject: [PATCH] address issues with new BriarRecyclerView found in review --- .../android/contact/ContactListActivity.java | 7 ++++++- .../android/util/BriarRecyclerView.java | 15 +++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/briar-android/src/org/briarproject/android/contact/ContactListActivity.java b/briar-android/src/org/briarproject/android/contact/ContactListActivity.java index 4b39c1295d..7918832545 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 891d155ffe..4e50c1d5d5 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; + } + } -- GitLab