From c80ee1b28252155d22d2ca98d246cbba2c3a31e4 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Tue, 26 Jan 2016 18:46:59 +0100 Subject: [PATCH 1/5] Completed Downloads: Show queued icon --- .../DownloadedEpisodesListAdapter.java | 3 +++ .../layout/downloaded_episodeslist_item.xml | 19 ++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadedEpisodesListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadedEpisodesListAdapter.java index ca747b9b0..8f45ca8ab 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadedEpisodesListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadedEpisodesListAdapter.java @@ -61,6 +61,7 @@ public class DownloadedEpisodesListAdapter extends BaseAdapter { .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.downloaded_episodeslist_item, parent, false); + holder.imageView = (ImageView) convertView.findViewById(R.id.imgvImage); holder.title = (TextView) convertView.findViewById(R.id.txtvTitle); holder.pubDate = (TextView) convertView .findViewById(R.id.txtvPublished); @@ -74,6 +75,7 @@ public class DownloadedEpisodesListAdapter extends BaseAdapter { } holder.title.setText(item.getTitle()); + holder.queueStatus.setVisibility(item.isTagged(FeedItem.TAG_QUEUE) ? View.VISIBLE : View.GONE); String pubDateStr = DateUtils.formatAbbrev(context, item.getPubDate()); holder.pubDate.setText(pubDateStr); holder.txtvSize.setText(Converter.byteToString(item.getMedia().getSize())); @@ -116,6 +118,7 @@ public class DownloadedEpisodesListAdapter extends BaseAdapter { TextView pubDate; ImageView imageView; TextView txtvSize; + ImageView queueStatus; ImageButton butSecondary; } diff --git a/app/src/main/res/layout/downloaded_episodeslist_item.xml b/app/src/main/res/layout/downloaded_episodeslist_item.xml index 6b5f7369a..760b6b9db 100644 --- a/app/src/main/res/layout/downloaded_episodeslist_item.xml +++ b/app/src/main/res/layout/downloaded_episodeslist_item.xml @@ -22,7 +22,7 @@ @@ -58,10 +58,23 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" - android:layout_below="@id/txtvTitle" + android:layout_alignParentBottom="true" + android:layout_marginLeft="8dp" tools:text="Jan 23" tools:background="@android:color/holo_green_dark" /> + + From 748a6c274567b0280ed8fc109bac6fc58f522998 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Tue, 26 Jan 2016 18:48:43 +0100 Subject: [PATCH 2/5] Minor changes --- .../DownloadedEpisodesListAdapter.java | 47 +++++++++---------- .../dialog/EpisodesApplyActionFragment.java | 27 ++++------- .../fragment/CompletedDownloadsFragment.java | 32 ++++++++----- 3 files changed, 48 insertions(+), 58 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadedEpisodesListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadedEpisodesListAdapter.java index 8f45ca8ab..53dedd496 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadedEpisodesListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadedEpisodesListAdapter.java @@ -25,13 +25,10 @@ public class DownloadedEpisodesListAdapter extends BaseAdapter { private final Context context; private final ItemAccess itemAccess; - private final int imageSize; - public DownloadedEpisodesListAdapter(Context context, ItemAccess itemAccess) { super(); this.context = context; this.itemAccess = itemAccess; - this.imageSize = (int) context.getResources().getDimension(R.dimen.thumbnail_length_downloaded_item); } @Override @@ -52,7 +49,7 @@ public class DownloadedEpisodesListAdapter extends BaseAdapter { @Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder; - final FeedItem item = (FeedItem) getItem(position); + final FeedItem item = getItem(position); if (item == null) return null; if (convertView == null) { @@ -63,35 +60,17 @@ public class DownloadedEpisodesListAdapter extends BaseAdapter { parent, false); holder.imageView = (ImageView) convertView.findViewById(R.id.imgvImage); holder.title = (TextView) convertView.findViewById(R.id.txtvTitle); + holder.txtvSize = (TextView) convertView.findViewById(R.id.txtvSize); + holder.queueStatus = (ImageView) convertView.findViewById(R.id.imgvInPlaylist); holder.pubDate = (TextView) convertView .findViewById(R.id.txtvPublished); holder.butSecondary = (ImageButton) convertView .findViewById(R.id.butSecondaryAction); - holder.imageView = (ImageView) convertView.findViewById(R.id.imgvImage); - holder.txtvSize = (TextView) convertView.findViewById(R.id.txtvSize); convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); } - holder.title.setText(item.getTitle()); - holder.queueStatus.setVisibility(item.isTagged(FeedItem.TAG_QUEUE) ? View.VISIBLE : View.GONE); - String pubDateStr = DateUtils.formatAbbrev(context, item.getPubDate()); - holder.pubDate.setText(pubDateStr); - holder.txtvSize.setText(Converter.byteToString(item.getMedia().getSize())); - FeedItem.State state = item.getState(); - - if (state == FeedItem.State.PLAYING) { - holder.butSecondary.setEnabled(false); - } else { - holder.butSecondary.setEnabled(true); - } - - holder.butSecondary.setFocusable(false); - holder.butSecondary.setTag(item); - holder.butSecondary.setOnClickListener(secondaryActionListener); - - Glide.with(context) .load(item.getImageUri()) .placeholder(R.color.light_gray) @@ -101,6 +80,22 @@ public class DownloadedEpisodesListAdapter extends BaseAdapter { .dontAnimate() .into(holder.imageView); + holder.title.setText(item.getTitle()); + holder.txtvSize.setText(Converter.byteToString(item.getMedia().getSize())); + holder.queueStatus.setVisibility(item.isTagged(FeedItem.TAG_QUEUE) ? View.VISIBLE : View.GONE); + String pubDateStr = DateUtils.formatAbbrev(context, item.getPubDate()); + holder.pubDate.setText(pubDateStr); + + FeedItem.State state = item.getState(); + if (state == FeedItem.State.PLAYING) { + holder.butSecondary.setEnabled(false); + } else { + holder.butSecondary.setEnabled(true); + } + holder.butSecondary.setFocusable(false); + holder.butSecondary.setTag(item); + holder.butSecondary.setOnClickListener(secondaryActionListener); + return convertView; } @@ -114,11 +109,11 @@ public class DownloadedEpisodesListAdapter extends BaseAdapter { static class Holder { - TextView title; - TextView pubDate; ImageView imageView; + TextView title; TextView txtvSize; ImageView queueStatus; + TextView pubDate; ImageButton butSecondary; } diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java index 6432ebd4e..fdd49e895 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java @@ -1,7 +1,6 @@ package de.danoeh.antennapod.dialog; import android.content.res.TypedArray; -import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v4.app.ActivityCompat; @@ -18,10 +17,6 @@ import android.widget.Button; import android.widget.ListView; import android.widget.Toast; -import com.joanzapata.iconify.Icon; -import com.joanzapata.iconify.IconDrawable; -import com.joanzapata.iconify.fonts.FontAwesomeIcons; - import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -122,11 +117,6 @@ public class EpisodesApplyActionFragment extends Fragment { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.episodes_apply_action_options, menu); - int[] attrs = { android.R.attr.textColor }; - TypedArray ta = getActivity().obtainStyledAttributes(attrs); - textColor = ta.getColor(0, Color.GRAY); - ta.recycle(); - mSelectToggle = menu.findItem(R.id.select_toggle); mSelectToggle.setOnMenuItemClickListener(item -> { if (checkedIds.size() == episodes.size()) { @@ -140,22 +130,21 @@ public class EpisodesApplyActionFragment extends Fragment { @Override public void onPrepareOptionsMenu (Menu menu) { - /* - * Prepare icon for select toggle button - */ + // Prepare icon for select toggle button - // Find icon attribute int[] icon = new int[1]; - if(checkedIds.size() == episodes.size()) icon[0] = R.attr.ic_check_box; - else if(checkedIds.size() == 0) icon[0] = R.attr.ic_check_box_outline; - else icon[0] = R.attr.ic_indeterminate_check_box; + if (checkedIds.size() == episodes.size()) { + icon[0] = R.attr.ic_check_box; + } else if (checkedIds.size() == 0) { + icon[0] = R.attr.ic_check_box_outline; + } else { + icon[0] = R.attr.ic_indeterminate_check_box; + } - // Get Drawable from attribute TypedArray a = getActivity().obtainStyledAttributes(icon); Drawable iconDrawable = a.getDrawable(0); a.recycle(); - // Set icon mSelectToggle.setIcon(iconDrawable); } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java index 954c4c9e2..8eca0ae3d 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java @@ -1,12 +1,20 @@ package de.danoeh.antennapod.fragment; -import android.app.Activity; +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.ListFragment; import android.util.Log; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.widget.ListView; +import com.joanzapata.iconify.IconDrawable; +import com.joanzapata.iconify.fonts.FontAwesomeIcons; + import java.util.List; import de.danoeh.antennapod.R; @@ -14,8 +22,10 @@ import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.adapter.DownloadedEpisodesListAdapter; import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.FeedItem; +import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; +import de.danoeh.antennapod.dialog.EpisodesApplyActionFragment; import rx.Observable; import rx.Subscription; import rx.android.schedulers.AndroidSchedulers; @@ -28,16 +38,14 @@ public class CompletedDownloadsFragment extends ListFragment { private static final String TAG = CompletedDownloadsFragment.class.getSimpleName(); - private static final int EVENTS = - EventDistributor.DOWNLOAD_HANDLED | - EventDistributor.DOWNLOADLOG_UPDATE | - EventDistributor.UNREAD_ITEMS_UPDATE; + private static final int EVENTS = EventDistributor.DOWNLOAD_HANDLED | + EventDistributor.DOWNLOADLOG_UPDATE | + EventDistributor.UNREAD_ITEMS_UPDATE; private List items; private DownloadedEpisodesListAdapter listAdapter; private boolean viewCreated = false; - private boolean itemsLoaded = false; private Subscription subscription; @@ -81,9 +89,9 @@ public class CompletedDownloadsFragment extends ListFragment { } @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - if (viewCreated && itemsLoaded) { + public void onAttach(Context context) { + super.onAttach(context); + if (viewCreated && items != null) { onFragmentLoaded(); } } @@ -99,7 +107,7 @@ public class CompletedDownloadsFragment extends ListFragment { lv.setPadding(0, vertPadding, 0, vertPadding); viewCreated = true; - if (itemsLoaded && getActivity() != null) { + if (items != null && getActivity() != null) { onFragmentLoaded(); } } @@ -111,7 +119,6 @@ public class CompletedDownloadsFragment extends ListFragment { if (item != null) { ((MainActivity) getActivity()).loadChildFragment(ItemFragment.newInstance(item.getId())); } - } private void onFragmentLoaded() { @@ -157,7 +164,7 @@ public class CompletedDownloadsFragment extends ListFragment { if(subscription != null) { subscription.unsubscribe(); } - if (!itemsLoaded && viewCreated) { + if (items == null && viewCreated) { setListShown(false); } subscription = Observable.fromCallable(() -> DBReader.getDownloadedItems()) @@ -166,7 +173,6 @@ public class CompletedDownloadsFragment extends ListFragment { .subscribe(result -> { if (result != null) { items = result; - itemsLoaded = true; if (viewCreated && getActivity() != null) { onFragmentLoaded(); } From 8944a61e3de9e391acf3d75bdf0565a88f9d7143 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Tue, 26 Jan 2016 18:49:25 +0100 Subject: [PATCH 3/5] New select criteria: queued, not queued --- .../dialog/EpisodesApplyActionFragment.java | 19 +++++++++++++++++++ .../menu/episodes_apply_action_options.xml | 4 ++++ core/src/main/res/values/strings.xml | 4 ++++ 3 files changed, 27 insertions(+) diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java index fdd49e895..a323b868f 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java @@ -178,6 +178,14 @@ public class EpisodesApplyActionFragment extends Fragment { checkDownloaded(false); resId = R.string.selected_not_downloaded_label; break; + case R.id.check_queued: + checkQueued(true); + resId = R.string.selected_queued_label; + break; + case R.id.check_not_queued: + checkQueued(false); + resId = R.string.selected_not_queued_label; + break; case R.id.sort_title_a_z: sortByTitle(false); return true; @@ -299,6 +307,17 @@ public class EpisodesApplyActionFragment extends Fragment { refreshCheckboxes(); } + private void checkQueued(boolean isQueued) { + for (FeedItem episode : episodes) { + if(episode.isTagged(FeedItem.TAG_QUEUE) == isQueued) { + checkedIds.add(episode.getId()); + } else { + checkedIds.remove(episode.getId()); + } + } + refreshCheckboxes(); + } + private void refreshTitles() { titles.clear(); for(FeedItem episode : episodes) { diff --git a/app/src/main/res/menu/episodes_apply_action_options.xml b/app/src/main/res/menu/episodes_apply_action_options.xml index 90cba0966..3df88046d 100644 --- a/app/src/main/res/menu/episodes_apply_action_options.xml +++ b/app/src/main/res/menu/episodes_apply_action_options.xml @@ -42,6 +42,10 @@ android:title="@string/downloaded_label"/> + + diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index b8f6f7065..86875fc23 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -559,6 +559,10 @@ Selected downloaded Episodes Not downloaded Selected not downloaded Episodes + Queued + Selected queued Episodes + Not queued + Selected not queued Episodes Sort by… Title (A \u2192 Z) Title (Z \u2192 A) From b5457efedda9360276d843e8b7b73b9cd20ff91c Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Tue, 26 Jan 2016 18:50:21 +0100 Subject: [PATCH 4/5] Add gears to action bar --- .../fragment/CompletedDownloadsFragment.java | 38 +++++++++++++++++++ app/src/main/res/menu/downloads_completed.xml | 13 +++++++ 2 files changed, 51 insertions(+) create mode 100644 app/src/main/res/menu/downloads_completed.xml diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java index 8eca0ae3d..a53c85f1c 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java @@ -52,6 +52,7 @@ public class CompletedDownloadsFragment extends ListFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setHasOptionsMenu(true); loadItems(); } @@ -128,6 +129,43 @@ public class CompletedDownloadsFragment extends ListFragment { } setListShown(true); listAdapter.notifyDataSetChanged(); + getActivity().supportInvalidateOptionsMenu(); + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + if(!isAdded()) { + return; + } + super.onCreateOptionsMenu(menu, inflater); + if(items != null) { + inflater.inflate(R.menu.downloads_completed, menu); + MenuItem episodeActions = menu.findItem(R.id.episode_actions); + if(items.size() > 0) { + int[] attrs = {R.attr.action_bar_icon_color}; + TypedArray ta = getActivity().obtainStyledAttributes(UserPreferences.getTheme(), attrs); + int textColor = ta.getColor(0, Color.GRAY); + ta.recycle(); + episodeActions.setIcon(new IconDrawable(getActivity(), + FontAwesomeIcons.fa_gears).color(textColor).actionBarSize()); + episodeActions.setVisible(true); + } else { + episodeActions.setVisible(false); + } + } + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.episode_actions: + EpisodesApplyActionFragment fragment = EpisodesApplyActionFragment + .newInstance(items, EpisodesApplyActionFragment.ACTION_REMOVE); + ((MainActivity) getActivity()).loadChildFragment(fragment); + return true; + default: + return false; + } } private DownloadedEpisodesListAdapter.ItemAccess itemAccess = new DownloadedEpisodesListAdapter.ItemAccess() { diff --git a/app/src/main/res/menu/downloads_completed.xml b/app/src/main/res/menu/downloads_completed.xml new file mode 100644 index 000000000..dc2996893 --- /dev/null +++ b/app/src/main/res/menu/downloads_completed.xml @@ -0,0 +1,13 @@ + + + + + + + From 527ff45229dc4f9238d4eedc18753954238e1555 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Tue, 26 Jan 2016 18:50:42 +0100 Subject: [PATCH 5/5] Make actions selectable --- .../dialog/EpisodesApplyActionFragment.java | 75 ++++++++++--- .../antennapod/fragment/ItemlistFragment.java | 4 +- .../layout/episodes_apply_action_fragment.xml | 103 +++++++++--------- 3 files changed, 108 insertions(+), 74 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java index a323b868f..c2917a758 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java @@ -34,6 +34,14 @@ public class EpisodesApplyActionFragment extends Fragment { public String TAG = "EpisodeActionFragment"; + public static final int ACTION_QUEUE = 0; + public static final int ACTION_MARK_PLAYED = 1; + public static final int ACTION_MARK_UNPLAYED = 2; + public static final int ACTION_DOWNLOAD = 4; + public static final int ACTION_REMOVE = 8; + public static final int ACTION_ALL = ACTION_QUEUE | ACTION_MARK_PLAYED | ACTION_MARK_UNPLAYED + | ACTION_DOWNLOAD | ACTION_REMOVE; + private ListView mListView; private ArrayAdapter mAdapter; @@ -43,27 +51,26 @@ public class EpisodesApplyActionFragment extends Fragment { private Button btnDownload; private Button btnDelete; - private final Map idMap; - private final List episodes; + private final Map idMap = new ArrayMap<>(); + private final List episodes = new ArrayList<>(); + private int actions; private final List titles = new ArrayList(); private final LongList checkedIds = new LongList(); private MenuItem mSelectToggle; - private int textColor; - - public EpisodesApplyActionFragment() { - this.episodes = new ArrayList<>(); - this.idMap = new ArrayMap<>(); + public static EpisodesApplyActionFragment newInstance(List items) { + return newInstance(items, ACTION_ALL); } - public void setEpisodes(List episodes) { - this.episodes.clear(); - this.episodes.addAll(episodes); - this.idMap.clear(); - for(FeedItem episode : episodes) { - this.idMap.put(episode.getId(), episode); + public static EpisodesApplyActionFragment newInstance(List items, int actions) { + EpisodesApplyActionFragment f = new EpisodesApplyActionFragment(); + f.episodes.addAll(items); + for(FeedItem episode : items) { + f.idMap.put(episode.getId(), episode); } + f.actions = actions; + return f; } @Override @@ -98,16 +105,48 @@ public class EpisodesApplyActionFragment extends Fragment { mListView.setAdapter(mAdapter); checkAll(); + int lastVisibleDiv = 0; btnAddToQueue = (Button) view.findViewById(R.id.btnAddToQueue); - btnAddToQueue.setOnClickListener(v -> queueChecked()); + if((actions & ACTION_QUEUE) != 0) { + btnAddToQueue.setOnClickListener(v -> queueChecked()); + lastVisibleDiv = R.id.divider1; + } else { + btnAddToQueue.setVisibility(View.GONE); + view.findViewById(R.id.divider1).setVisibility(View.GONE); + } btnMarkAsPlayed = (Button) view.findViewById(R.id.btnMarkAsPlayed); - btnMarkAsPlayed.setOnClickListener(v -> markedCheckedPlayed()); + if((actions & ACTION_MARK_PLAYED) != 0) { + btnMarkAsPlayed.setOnClickListener(v -> markedCheckedPlayed()); + lastVisibleDiv = R.id.divider2; + } else { + btnMarkAsPlayed.setVisibility(View.GONE); + view.findViewById(R.id.divider2).setVisibility(View.GONE); + } btnMarkAsUnplayed = (Button) view.findViewById(R.id.btnMarkAsUnplayed); - btnMarkAsUnplayed.setOnClickListener(v -> markedCheckedUnplayed()); + if((actions & ACTION_MARK_UNPLAYED) != 0) { + btnMarkAsUnplayed.setOnClickListener(v -> markedCheckedUnplayed()); + lastVisibleDiv = R.id.divider3; + } else { + btnMarkAsUnplayed.setVisibility(View.GONE); + view.findViewById(R.id.divider3).setVisibility(View.GONE); + } btnDownload = (Button) view.findViewById(R.id.btnDownload); - btnDownload.setOnClickListener(v -> downloadChecked()); + if((actions & ACTION_DOWNLOAD) != 0) { + btnDownload.setOnClickListener(v -> downloadChecked()); + lastVisibleDiv = R.id.divider4; + } else { + btnDownload.setVisibility(View.GONE); + view.findViewById(R.id.divider4).setVisibility(View.GONE); + } btnDelete = (Button) view.findViewById(R.id.btnDelete); - btnDelete.setOnClickListener(v -> deleteChecked()); + if((actions & ACTION_REMOVE) != 0) { + btnDelete.setOnClickListener(v -> deleteChecked()); + } else { + btnDelete.setVisibility(View.GONE); + if(lastVisibleDiv > 0) { + view.findViewById(lastVisibleDiv).setVisibility(View.GONE); + } + } return view; } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java index 7a9b73982..303d273bc 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java @@ -252,8 +252,8 @@ public class ItemlistFragment extends ListFragment { if (!FeedMenuHandler.onOptionsItemClicked(getActivity(), item, feed)) { switch (item.getItemId()) { case R.id.episode_actions: - EpisodesApplyActionFragment fragment = new EpisodesApplyActionFragment(); - fragment.setEpisodes(feed.getItems()); + EpisodesApplyActionFragment fragment = EpisodesApplyActionFragment + .newInstance(feed.getItems()); ((MainActivity)getActivity()).loadChildFragment(fragment); return true; case R.id.remove_item: diff --git a/app/src/main/res/layout/episodes_apply_action_fragment.xml b/app/src/main/res/layout/episodes_apply_action_fragment.xml index d63088662..e9a2e2e23 100644 --- a/app/src/main/res/layout/episodes_apply_action_fragment.xml +++ b/app/src/main/res/layout/episodes_apply_action_fragment.xml @@ -1,16 +1,16 @@ -