diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/adapter')
5 files changed, 38 insertions, 35 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/CoverLoader.java b/app/src/main/java/de/danoeh/antennapod/adapter/CoverLoader.java index 098e9a616..5acc25bee 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/CoverLoader.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/CoverLoader.java @@ -24,7 +24,6 @@ public class CoverLoader { private TextView txtvPlaceholder; private ImageView imgvCover; private MainActivity activity; - private int errorResource = -1; public CoverLoader(MainActivity activity) { this.activity = activity; @@ -45,11 +44,6 @@ public class CoverLoader { return this; } - public CoverLoader withError(int errorResource) { - this.errorResource = errorResource; - return this; - } - public CoverLoader withPlaceholderView(TextView placeholderView) { txtvPlaceholder = placeholderView; return this; @@ -61,10 +55,6 @@ public class CoverLoader { .fitCenter() .dontAnimate(); - if (errorResource != -1) { - options = options.error(errorResource); - } - RequestBuilder<Drawable> builder = Glide.with(activity) .load(uri) .apply(options); @@ -84,6 +74,9 @@ public class CoverLoader { public CoverTarget(TextView txtvPlaceholder, ImageView imgvCover) { super(imgvCover); + if (txtvPlaceholder != null) { + txtvPlaceholder.setVisibility(View.VISIBLE); + } placeholder = new WeakReference<>(txtvPlaceholder); cover = new WeakReference<>(imgvCover); } diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadStatisticsListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadStatisticsListAdapter.java index d29db5622..227eea6e0 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadStatisticsListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadStatisticsListAdapter.java @@ -5,9 +5,10 @@ import android.content.Context; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.util.Converter; +import de.danoeh.antennapod.view.PieChartView; /** - * Adapter for the download statistics list + * Adapter for the download statistics list. */ public class DownloadStatisticsListAdapter extends StatisticsListAdapter { @@ -21,25 +22,23 @@ public class DownloadStatisticsListAdapter extends StatisticsListAdapter { } @Override - void onBindHeaderViewHolder(HeaderHolder holder) { - long totalDownloadSize = 0; + String getHeaderValue() { + return Converter.byteToString((long) pieChartData.getSum()); + } - for (DBReader.StatisticsItem item: statisticsData.feeds) { - totalDownloadSize = totalDownloadSize + item.totalDownloadSize; - } - holder.totalTime.setText(Converter.byteToString(totalDownloadSize)); + @Override + PieChartView.PieChartData generateChartData(DBReader.StatisticsData statisticsData) { float[] dataValues = new float[statisticsData.feeds.size()]; for (int i = 0; i < statisticsData.feeds.size(); i++) { DBReader.StatisticsItem item = statisticsData.feeds.get(i); dataValues[i] = item.totalDownloadSize; } - holder.pieChart.setData(dataValues); + return new PieChartView.PieChartData(dataValues); } @Override - void onBindFeedViewHolder(StatisticsHolder holder, int position) { - DBReader.StatisticsItem statsItem = statisticsData.feeds.get(position - 1); - holder.value.setText(Converter.byteToString(statsItem.totalDownloadSize)); + void onBindFeedViewHolder(StatisticsHolder holder, DBReader.StatisticsItem item) { + holder.value.setText(Converter.byteToString(item.totalDownloadSize)); } } diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/PlaybackStatisticsListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/PlaybackStatisticsListAdapter.java index ce6ad2f83..8471569d3 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/PlaybackStatisticsListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/PlaybackStatisticsListAdapter.java @@ -6,9 +6,10 @@ import androidx.appcompat.app.AlertDialog; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.util.Converter; +import de.danoeh.antennapod.view.PieChartView; /** - * Adapter for the playback statistics list + * Adapter for the playback statistics list. */ public class PlaybackStatisticsListAdapter extends StatisticsListAdapter { @@ -28,20 +29,22 @@ public class PlaybackStatisticsListAdapter extends StatisticsListAdapter { } @Override - void onBindHeaderViewHolder(HeaderHolder holder) { - long time = countAll ? statisticsData.totalTimeCountAll : statisticsData.totalTime; - holder.totalTime.setText(Converter.shortLocalizedDuration(context, time)); + String getHeaderValue() { + return Converter.shortLocalizedDuration(context, (long) pieChartData.getSum()); + } + + @Override + PieChartView.PieChartData generateChartData(DBReader.StatisticsData statisticsData) { float[] dataValues = new float[statisticsData.feeds.size()]; for (int i = 0; i < statisticsData.feeds.size(); i++) { DBReader.StatisticsItem item = statisticsData.feeds.get(i); dataValues[i] = countAll ? item.timePlayedCountAll : item.timePlayed; } - holder.pieChart.setData(dataValues); + return new PieChartView.PieChartData(dataValues); } @Override - void onBindFeedViewHolder(StatisticsHolder holder, int position) { - DBReader.StatisticsItem statsItem = statisticsData.feeds.get(position - 1); + void onBindFeedViewHolder(StatisticsHolder holder, DBReader.StatisticsItem statsItem) { long time = countAll ? statsItem.timePlayedCountAll : statsItem.timePlayed; holder.value.setText(Converter.shortLocalizedDuration(context, time)); diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/StatisticsListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/StatisticsListAdapter.java index 76ae3c3d9..db65190f2 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/StatisticsListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/StatisticsListAdapter.java @@ -18,13 +18,14 @@ import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.view.PieChartView; /** - * Parent Adapter for the playback and download statistics list + * Parent Adapter for the playback and download statistics list. */ public abstract class StatisticsListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private static final int TYPE_HEADER = 0; private static final int TYPE_FEED = 1; final Context context; - DBReader.StatisticsData statisticsData; + private DBReader.StatisticsData statisticsData; + PieChartView.PieChartData pieChartData; StatisticsListAdapter(Context context) { this.context = context; @@ -63,7 +64,9 @@ public abstract class StatisticsListAdapter extends RecyclerView.Adapter<Recycle @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder h, int position) { if (getItemViewType(position) == TYPE_HEADER) { - onBindHeaderViewHolder((HeaderHolder) h); + HeaderHolder holder = (HeaderHolder) h; + holder.pieChart.setData(pieChartData); + holder.totalTime.setText(getHeaderValue()); } else { StatisticsHolder holder = (StatisticsHolder) h; DBReader.StatisticsItem statsItem = statisticsData.feeds.get(position - 1); @@ -78,12 +81,14 @@ public abstract class StatisticsListAdapter extends RecyclerView.Adapter<Recycle .into(holder.image); holder.title.setText(statsItem.feed.getTitle()); - onBindFeedViewHolder(holder, position); + holder.chip.setTextColor(pieChartData.getColorOfItem(position - 1)); + onBindFeedViewHolder(holder, statsItem); } } public void update(DBReader.StatisticsData statistics) { this.statisticsData = statistics; + pieChartData = generateChartData(statistics); notifyDataSetChanged(); } @@ -102,18 +107,22 @@ public abstract class StatisticsListAdapter extends RecyclerView.Adapter<Recycle ImageView image; TextView title; TextView value; + TextView chip; StatisticsHolder(View itemView) { super(itemView); image = itemView.findViewById(R.id.imgvCover); title = itemView.findViewById(R.id.txtvTitle); value = itemView.findViewById(R.id.txtvValue); + chip = itemView.findViewById(R.id.chip); } } abstract int getHeaderCaptionResourceId(); - abstract void onBindHeaderViewHolder(HeaderHolder holder); + abstract String getHeaderValue(); - abstract void onBindFeedViewHolder(StatisticsHolder holder, int position); + abstract PieChartView.PieChartData generateChartData(DBReader.StatisticsData statisticsData); + + abstract void onBindFeedViewHolder(StatisticsHolder holder, DBReader.StatisticsItem item); } diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java index 3141c6046..a012211a5 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java @@ -98,7 +98,6 @@ public class SubscriptionsAdapter extends BaseAdapter implements AdapterView.OnI .withUri(feed.getImageLocation()) .withPlaceholderView(holder.feedTitle) .withCoverView(holder.imageView) - .withError(R.color.light_gray) .load(); return convertView; |