summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java12
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java12
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java11
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/LongIntMap.java11
4 files changed, 45 insertions, 1 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java
index 5a667cdd7..4733c2558 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java
@@ -537,6 +537,18 @@ public class AudioplayerActivity extends MediaplayerActivity implements NavDrawe
public int getFeedCounter(long feedId) {
return navDrawerData != null ? navDrawerData.feedCounters.get(feedId) : 0;
}
+
+ @Override
+ public int getFeedCounterSum() {
+ if(navDrawerData == null) {
+ return 0;
+ }
+ int sum = 0;
+ for(int counter : navDrawerData.feedCounters.values()) {
+ sum += counter;
+ }
+ return sum;
+ }
};
public interface AudioplayerContentFragment {
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
index 76565e400..d713ef80c 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -654,6 +654,18 @@ public class MainActivity extends AppCompatActivity implements NavDrawerActivity
return navDrawerData != null ? navDrawerData.feedCounters.get(feedId) : 0;
}
+ @Override
+ public int getFeedCounterSum() {
+ if(navDrawerData == null) {
+ return 0;
+ }
+ int sum = 0;
+ for(int counter : navDrawerData.feedCounters.values()) {
+ sum += counter;
+ }
+ return sum;
+ }
+
};
private void loadData() {
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
index b0b962dc8..75c858ec6 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
@@ -19,7 +19,6 @@ import com.bumptech.glide.Glide;
import com.joanzapata.iconify.Iconify;
import com.joanzapata.iconify.widget.IconTextView;
-import de.danoeh.antennapod.fragment.SubscriptionFragment;
import org.apache.commons.lang3.ArrayUtils;
import java.util.ArrayList;
@@ -39,6 +38,7 @@ import de.danoeh.antennapod.fragment.EpisodesFragment;
import de.danoeh.antennapod.fragment.NewEpisodesFragment;
import de.danoeh.antennapod.fragment.PlaybackHistoryFragment;
import de.danoeh.antennapod.fragment.QueueFragment;
+import de.danoeh.antennapod.fragment.SubscriptionFragment;
/**
* BaseAdapter for the navigation drawer
@@ -253,6 +253,14 @@ public class NavListAdapter extends BaseAdapter
} else {
holder.count.setVisibility(View.GONE);
}
+ } else if (tag.equals(SubscriptionFragment.TAG)) {
+ int sum = itemAccess.getFeedCounterSum();
+ if (sum > 0) {
+ holder.count.setVisibility(View.VISIBLE);
+ holder.count.setText(String.valueOf(sum));
+ } else {
+ holder.count.setVisibility(View.GONE);
+ }
} else if(tag.equals(DownloadsFragment.TAG) && UserPreferences.isEnableAutodownload()) {
int epCacheSize = UserPreferences.getEpisodeCacheSize();
// don't count episodes that can be reclaimed
@@ -372,6 +380,7 @@ public class NavListAdapter extends BaseAdapter
int getNumberOfDownloadedItems();
int getReclaimableItems();
int getFeedCounter(long feedId);
+ int getFeedCounterSum();
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/LongIntMap.java b/core/src/main/java/de/danoeh/antennapod/core/util/LongIntMap.java
index 33fd252eb..c5ac44bf5 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/LongIntMap.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/LongIntMap.java
@@ -1,6 +1,8 @@
package de.danoeh.antennapod.core.util;
+import java.util.Arrays;
+
/**
* Fast and memory efficient long to long map
*/
@@ -197,6 +199,15 @@ public class LongIntMap {
size = 0;
}
+ /**
+ * Returns a copy of the values contained in this map.
+ *
+ * @return a copy of the values contained in this map
+ */
+ public int[] values() {
+ return Arrays.copyOf(values, size);
+ }
+
@Override
public boolean equals(Object other) {
if (other == this) {