address issues with new BriarRecyclerView found in review

This commit is contained in:
Torsten Grote
2015-12-30 10:44:14 -02:00
parent f309cb36d4
commit 970560c21e
2 changed files with 17 additions and 5 deletions

View File

@@ -133,7 +133,12 @@ public class ContactListActivity extends BriarActivity
private void displayContacts(final List<ContactListItem> contacts) { private void displayContacts(final List<ContactListItem> contacts) {
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
public void run() { 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();
}
} }
}); });
} }

View File

@@ -49,9 +49,7 @@ public class BriarRecyclerView extends FrameLayout {
emptyView = (TextView) v.findViewById(R.id.emptyView); emptyView = (TextView) v.findViewById(R.id.emptyView);
progressBar = (ProgressBar) v.findViewById(R.id.progressBar); progressBar = (ProgressBar) v.findViewById(R.id.progressBar);
recyclerView.setVisibility(View.INVISIBLE); showProgressBar();
emptyView.setVisibility(View.INVISIBLE);
progressBar.setVisibility(View.VISIBLE);
emptyObserver = new RecyclerView.AdapterDataObserver() { emptyObserver = new RecyclerView.AdapterDataObserver() {
@Override @Override
@@ -72,6 +70,11 @@ public class BriarRecyclerView extends FrameLayout {
} }
public void setAdapter(RecyclerView.Adapter adapter) { public void setAdapter(RecyclerView.Adapter adapter) {
RecyclerView.Adapter oldAdapter = recyclerView.getAdapter();
if (oldAdapter != null) {
oldAdapter.unregisterAdapterDataObserver(emptyObserver);
}
recyclerView.setAdapter(adapter); recyclerView.setAdapter(adapter);
if (adapter != null) { if (adapter != null) {
@@ -95,7 +98,7 @@ public class BriarRecyclerView extends FrameLayout {
progressBar.setVisibility(View.VISIBLE); progressBar.setVisibility(View.VISIBLE);
} }
private void showData() { public void showData() {
RecyclerView.Adapter<?> adapter = recyclerView.getAdapter(); RecyclerView.Adapter<?> adapter = recyclerView.getAdapter();
if (adapter != null) { if (adapter != null) {
if (adapter.getItemCount() == 0) { if (adapter.getItemCount() == 0) {
@@ -109,4 +112,8 @@ public class BriarRecyclerView extends FrameLayout {
} }
} }
public RecyclerView getRecyclerView() {
return recyclerView;
}
} }