diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index 1a2152f51..13580be4f 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -52,6 +52,7 @@ import de.danoeh.antennapod.core.util.LongList; import de.danoeh.antennapod.core.util.QueueSorter; import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler; import de.danoeh.antennapod.menuhandler.MenuItemUtils; +import de.danoeh.antennapod.view.EmptyViewHandler; import de.greenrobot.event.EventBus; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -72,7 +73,7 @@ public class QueueFragment extends Fragment { private TextView infoBar; private RecyclerView recyclerView; private QueueRecyclerAdapter recyclerAdapter; - private View emptyView; + private EmptyViewHandler emptyView; private ProgressBar progLoading; private List<FeedItem> queue; @@ -125,7 +126,10 @@ public class QueueFragment extends Fragment { public void onEventMainThread(QueueEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); - if(queue == null || recyclerAdapter == null) { + if (queue == null) { + return; + } else if (recyclerAdapter == null) { + loadItems(true); return; } switch(event.action) { @@ -160,7 +164,10 @@ public class QueueFragment extends Fragment { public void onEventMainThread(FeedItemEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); - if(queue == null || recyclerAdapter == null) { + if (queue == null) { + return; + } else if (recyclerAdapter == null) { + loadItems(true); return; } for(int i=0, size = event.items.size(); i < size; i++) { @@ -170,6 +177,7 @@ public class QueueFragment extends Fragment { queue.remove(pos); queue.add(pos, item); recyclerAdapter.notifyItemChanged(pos); + refreshInfoBar(); } } } @@ -271,7 +279,9 @@ public class QueueFragment extends Fragment { boolean newLockState = !UserPreferences.isQueueLocked(); UserPreferences.setQueueLocked(newLockState); getActivity().supportInvalidateOptionsMenu(); - recyclerAdapter.setLocked(newLockState); + if (recyclerAdapter != null) { + recyclerAdapter.setLocked(newLockState); + } if (newLockState) { Snackbar.make(getActivity().findViewById(R.id.content), R.string .queue_locked, Snackbar.LENGTH_SHORT).show(); @@ -493,11 +503,11 @@ public class QueueFragment extends Fragment { } ); itemTouchHelper.attachToRecyclerView(recyclerView); - //empty view - emptyView = (View) root.findViewById(R.id.emptyView); - emptyView.setVisibility(View.GONE); - ((TextView)emptyView.findViewById(R.id.emptyViewTitle)).setText(R.string.no_items_header_label); - ((TextView)emptyView.findViewById(R.id.emptyViewMessage)).setText(R.string.no_items_label); + + emptyView = new EmptyViewHandler(getContext()); + emptyView.attachToRecyclerView(recyclerView); + emptyView.setTitle(R.string.no_items_header_label); + emptyView.setMessage(R.string.no_items_label); progLoading = root.findViewById(R.id.progLoading); progLoading.setVisibility(View.VISIBLE); @@ -513,13 +523,13 @@ public class QueueFragment extends Fragment { new DefaultActionButtonCallback(activity), itemTouchHelper); recyclerAdapter.setHasStableIds(true); recyclerView.setAdapter(recyclerAdapter); + emptyView.updateAdapter(recyclerAdapter); } - emptyView.setVisibility(View.GONE); recyclerView.setVisibility(View.VISIBLE); } else { recyclerAdapter = null; recyclerView.setVisibility(View.GONE); - emptyView.setVisibility(View.VISIBLE); + emptyView.updateAdapter(recyclerAdapter); } if (restoreScrollPosition) { @@ -632,7 +642,7 @@ public class QueueFragment extends Fragment { } if (queue == null) { recyclerView.setVisibility(View.GONE); - emptyView.setVisibility(View.GONE); + emptyView.hide(); progLoading.setVisibility(View.VISIBLE); } disposable = Observable.fromCallable(DBReader::getQueue) |