From d9a610fb61028845349d98c4e1574778a7cfc05e Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Sun, 8 Jun 2014 13:57:32 +0200 Subject: Show queue size and number of unread items in navdrawer. closes #453 --- .../antennapod/activity/AudioplayerActivity.java | 34 +++++++++------ .../danoeh/antennapod/activity/MainActivity.java | 49 +++++++++++++--------- 2 files changed, 51 insertions(+), 32 deletions(-) (limited to 'src/de/danoeh/antennapod/activity') diff --git a/src/de/danoeh/antennapod/activity/AudioplayerActivity.java b/src/de/danoeh/antennapod/activity/AudioplayerActivity.java index 2ffaae967..090c3f1f5 100644 --- a/src/de/danoeh/antennapod/activity/AudioplayerActivity.java +++ b/src/de/danoeh/antennapod/activity/AudioplayerActivity.java @@ -34,8 +34,6 @@ import de.danoeh.antennapod.storage.DBReader; import de.danoeh.antennapod.util.playback.ExternalMedia; import de.danoeh.antennapod.util.playback.Playable; -import java.util.List; - /** * Activity for playing audio files. */ @@ -624,20 +622,20 @@ public class AudioplayerActivity extends MediaplayerActivity { } } - private List feeds; - private AsyncTask> loadTask; + private DBReader.NavDrawerData navDrawerData; + private AsyncTask loadTask; private void loadData() { - loadTask = new AsyncTask>() { + loadTask = new AsyncTask() { @Override - protected List doInBackground(Void... params) { - return DBReader.getFeedList(AudioplayerActivity.this); + protected DBReader.NavDrawerData doInBackground(Void... params) { + return DBReader.getNavDrawerData(AudioplayerActivity.this); } @Override - protected void onPostExecute(List result) { + protected void onPostExecute(DBReader.NavDrawerData result) { super.onPostExecute(result); - feeds = result; + navDrawerData = result; if (navAdapter != null) { navAdapter.notifyDataSetChanged(); } @@ -667,8 +665,8 @@ public class AudioplayerActivity extends MediaplayerActivity { private final NavListAdapter.ItemAccess itemAccess = new NavListAdapter.ItemAccess() { @Override public int getCount() { - if (feeds != null) { - return feeds.size(); + if (navDrawerData != null) { + return navDrawerData.feeds.size(); } else { return 0; } @@ -676,8 +674,8 @@ public class AudioplayerActivity extends MediaplayerActivity { @Override public Feed getItem(int position) { - if (feeds != null && position < feeds.size()) { - return feeds.get(position); + if (navDrawerData != null && position < navDrawerData.feeds.size()) { + return navDrawerData.feeds.get(position); } else { return null; } @@ -687,5 +685,15 @@ public class AudioplayerActivity extends MediaplayerActivity { public int getSelectedItemIndex() { return -1; } + + @Override + public int getQueueSize() { + return (navDrawerData != null) ? navDrawerData.queueSize : 0; + } + + @Override + public int getNumberOfUnreadItems() { + return (navDrawerData != null) ? navDrawerData.numUnreadItems : 0; + } }; } diff --git a/src/de/danoeh/antennapod/activity/MainActivity.java b/src/de/danoeh/antennapod/activity/MainActivity.java index 898897bd8..257bea82d 100644 --- a/src/de/danoeh/antennapod/activity/MainActivity.java +++ b/src/de/danoeh/antennapod/activity/MainActivity.java @@ -39,7 +39,8 @@ public class MainActivity extends ActionBarActivity { private static final int EVENTS = EventDistributor.DOWNLOAD_HANDLED | EventDistributor.DOWNLOAD_QUEUED | EventDistributor.FEED_LIST_UPDATE - | EventDistributor.UNREAD_ITEMS_UPDATE; + | EventDistributor.UNREAD_ITEMS_UPDATE + | EventDistributor.QUEUE_UPDATE; public static final String PREF_NAME = "MainActivityPrefs"; public static final String PREF_IS_FIRST_LAUNCH = "prefMainActivityIsFirstLaunch"; @@ -147,7 +148,7 @@ public class MainActivity extends ActionBarActivity { } public List getFeeds() { - return feeds; + return (navDrawerData != null) ? navDrawerData.feeds : null; } private void loadFragment(int viewType, int relPos, Bundle args) { @@ -207,9 +208,9 @@ public class MainActivity extends ActionBarActivity { } public void loadFeedFragment(long feedID) { - if (feeds != null) { - for (int i = 0; i < feeds.size(); i++) { - if (feeds.get(i).getId() == feedID) { + if (navDrawerData != null) { + for (int i = 0; i < navDrawerData.feeds.size(); i++) { + if (navDrawerData.feeds.get(i).getId() == feedID) { loadFragment(NavListAdapter.VIEW_TYPE_SUBSCRIPTION, i, null); break; } @@ -279,7 +280,7 @@ public class MainActivity extends ActionBarActivity { EventDistributor.getInstance().register(contentUpdate); Intent intent = getIntent(); - if (feeds != null && intent.hasExtra(EXTRA_NAV_INDEX) && intent.hasExtra(EXTRA_NAV_TYPE)) { + if (navDrawerData != null && intent.hasExtra(EXTRA_NAV_INDEX) && intent.hasExtra(EXTRA_NAV_TYPE)) { handleNavIntent(); } @@ -322,15 +323,15 @@ public class MainActivity extends ActionBarActivity { return true; } - private List feeds; - private AsyncTask> loadTask; + private DBReader.NavDrawerData navDrawerData; + private AsyncTask loadTask; private int selectedNavListIndex = 0; private NavListAdapter.ItemAccess itemAccess = new NavListAdapter.ItemAccess() { @Override public int getCount() { - if (feeds != null) { - return feeds.size(); + if (navDrawerData != null) { + return navDrawerData.feeds.size(); } else { return 0; } @@ -338,8 +339,8 @@ public class MainActivity extends ActionBarActivity { @Override public Feed getItem(int position) { - if (feeds != null && position < feeds.size()) { - return feeds.get(position); + if (navDrawerData != null && position < navDrawerData.feeds.size()) { + return navDrawerData.feeds.get(position); } else { return null; } @@ -350,23 +351,33 @@ public class MainActivity extends ActionBarActivity { return selectedNavListIndex; } + @Override + public int getQueueSize() { + return (navDrawerData != null) ? navDrawerData.queueSize : 0; + } + + @Override + public int getNumberOfUnreadItems() { + return (navDrawerData != null) ? navDrawerData.numUnreadItems : 0; + } + }; private void loadData() { cancelLoadTask(); - loadTask = new AsyncTask>() { + loadTask = new AsyncTask() { @Override - protected List doInBackground(Void... params) { - return DBReader.getFeedList(MainActivity.this); + protected DBReader.NavDrawerData doInBackground(Void... params) { + return DBReader.getNavDrawerData(MainActivity.this); } @Override - protected void onPostExecute(List result) { - super.onPostExecute(result); - boolean handleIntent = (feeds == null); + protected void onPostExecute(DBReader.NavDrawerData result) { + super.onPostExecute(navDrawerData); + boolean handleIntent = (navDrawerData == null); - feeds = result; + navDrawerData = result; navAdapter.notifyDataSetChanged(); if (handleIntent) { -- cgit v1.2.3