From af7b947368ce4c23cba3000bb32fcb6d8430f8b4 Mon Sep 17 00:00:00 2001 From: Volker Hollich Date: Thu, 26 Mar 2015 11:17:46 +0100 Subject: Direct play from the the list is now enabled. A pause button is no longer displayed in the list. It would need additional changes to get a pause button to work and to always be updated accordingly. Instead the play button of the selected item changes to blank. --- app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java | 2 +- .../de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java | 4 +++- .../main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java | 3 +++ .../java/de/danoeh/antennapod/adapter/NewEpisodesListAdapter.java | 2 ++ app/src/main/java/de/danoeh/antennapod/adapter/QueueListAdapter.java | 2 ++ 5 files changed, 11 insertions(+), 2 deletions(-) (limited to 'app/src/main/java') diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java b/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java index c35bb9694..18b31d580 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java @@ -27,7 +27,7 @@ public class ActionButtonUtils { this.context = context; drawables = context.obtainStyledAttributes(new int[]{ - R.attr.av_play, R.attr.navigation_cancel, R.attr.av_download, R.attr.av_pause, R.attr.navigation_accept}); + R.attr.av_play, R.attr.navigation_cancel, R.attr.av_download, R.attr.borderless_button, R.attr.navigation_accept}); labels = new int[]{R.string.play_label, R.string.cancel_download_label, R.string.download_label, R.string.mark_read_label}; } diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java b/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java index 800462023..ac39b818d 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java @@ -46,7 +46,9 @@ public class DefaultActionButtonCallback implements ActionButtonCallback { DownloadRequester.getInstance().cancelDownload(context, media); Toast.makeText(context, R.string.download_cancelled_msg, Toast.LENGTH_SHORT).show(); } else { // media is downloaded - DBTasks.playMedia(context, media, true, true, false); + if (item.getState() != FeedItem.State.PLAYING) { + DBTasks.playMedia(context, media, false, true, false); + } } } else { if (!item.isRead()) { diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java index 8f1a838f9..ba0eb4c29 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java @@ -9,6 +9,7 @@ import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.*; import de.danoeh.antennapod.R; +import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.feed.MediaType; @@ -187,6 +188,8 @@ public class FeedItemlistAdapter extends BaseAdapter { public void onClick(View v) { FeedItem item = (FeedItem) v.getTag(); callback.onActionButtonPressed(item); + EventDistributor.getInstance().sendPlaybackHistoryUpdateBroadcast(); + EventDistributor.getInstance().sendUnreadItemsUpdateBroadcast(); } }; diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/NewEpisodesListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/NewEpisodesListAdapter.java index 1f98ec158..10b1f8e79 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/NewEpisodesListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/NewEpisodesListAdapter.java @@ -14,6 +14,7 @@ import android.widget.TextView; import com.squareup.picasso.Picasso; import de.danoeh.antennapod.R; +import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.storage.DownloadRequester; @@ -147,6 +148,7 @@ public class NewEpisodesListAdapter extends BaseAdapter { public void onClick(View v) { FeedItem item = (FeedItem) v.getTag(); actionButtonCallback.onActionButtonPressed(item); + EventDistributor.getInstance().sendUnreadItemsUpdateBroadcast(); } }; diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/QueueListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/QueueListAdapter.java index 77b2b4d49..34757149a 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/QueueListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/QueueListAdapter.java @@ -14,6 +14,7 @@ import android.widget.TextView; import com.squareup.picasso.Picasso; import de.danoeh.antennapod.R; +import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.storage.DownloadRequester; @@ -137,6 +138,7 @@ public class QueueListAdapter extends BaseAdapter { public void onClick(View v) { FeedItem item = (FeedItem) v.getTag(); actionButtonCallback.onActionButtonPressed(item); + EventDistributor.getInstance().sendQueueUpdateBroadcast(); } }; -- cgit v1.2.3 From 71db0368c45ff6cb7b669982b68fdfefd8606352 Mon Sep 17 00:00:00 2001 From: volhol Date: Tue, 31 Mar 2015 01:33:04 +0200 Subject: Direct play from the the lists Pause/play buttons work; position in media item not always updated yet --- .../java/de/danoeh/antennapod/adapter/ActionButtonUtils.java | 4 ++-- .../danoeh/antennapod/adapter/DefaultActionButtonCallback.java | 10 +++++++++- .../java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java | 2 -- .../de/danoeh/antennapod/adapter/NewEpisodesListAdapter.java | 1 - .../java/de/danoeh/antennapod/adapter/QueueListAdapter.java | 1 - .../java/de/danoeh/antennapod/fragment/ItemlistFragment.java | 3 +++ .../de/danoeh/antennapod/fragment/NewEpisodesFragment.java | 3 +++ .../de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java | 3 +++ .../main/java/de/danoeh/antennapod/fragment/QueueFragment.java | 3 +++ 9 files changed, 23 insertions(+), 7 deletions(-) (limited to 'app/src/main/java') diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java b/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java index 18b31d580..8d3e73429 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java @@ -27,7 +27,7 @@ public class ActionButtonUtils { this.context = context; drawables = context.obtainStyledAttributes(new int[]{ - R.attr.av_play, R.attr.navigation_cancel, R.attr.av_download, R.attr.borderless_button, R.attr.navigation_accept}); + R.attr.av_play, R.attr.navigation_cancel, R.attr.av_download, R.attr.av_pause, R.attr.navigation_accept}); labels = new int[]{R.string.play_label, R.string.cancel_download_label, R.string.download_label, R.string.mark_read_label}; } @@ -57,7 +57,7 @@ public class ActionButtonUtils { } else { // item is not being downloaded butSecondary.setVisibility(View.VISIBLE); - if (media.isPlaying()) { + if (media.isCurrentlyPlaying()) { butSecondary.setImageDrawable(drawables.getDrawable(3)); } else { butSecondary diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java b/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java index ac39b818d..bae109cf9 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java @@ -1,6 +1,7 @@ package de.danoeh.antennapod.adapter; import android.content.Context; +import android.content.Intent; import android.widget.Toast; import org.apache.commons.lang3.Validate; @@ -9,6 +10,7 @@ import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.dialog.DownloadRequestErrorDialogCreator; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; +import de.danoeh.antennapod.core.service.playback.PlaybackService; import de.danoeh.antennapod.core.storage.DBTasks; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.storage.DownloadRequestException; @@ -46,7 +48,13 @@ public class DefaultActionButtonCallback implements ActionButtonCallback { DownloadRequester.getInstance().cancelDownload(context, media); Toast.makeText(context, R.string.download_cancelled_msg, Toast.LENGTH_SHORT).show(); } else { // media is downloaded - if (item.getState() != FeedItem.State.PLAYING) { + if (item.hasMedia() && item.getMedia().isCurrentlyPlaying()) { + context.sendBroadcast(new Intent(PlaybackService.ACTION_PAUSE_PLAY_CURRENT_EPISODE)); + } + else if (item.hasMedia() && item.getMedia().isPlaying()) { + context.sendBroadcast(new Intent(PlaybackService.ACTION_RESUME_PLAY_CURRENT_EPISODE)); + } + else { DBTasks.playMedia(context, media, false, true, false); } } diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java index ba0eb4c29..d56bfc587 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java @@ -188,8 +188,6 @@ public class FeedItemlistAdapter extends BaseAdapter { public void onClick(View v) { FeedItem item = (FeedItem) v.getTag(); callback.onActionButtonPressed(item); - EventDistributor.getInstance().sendPlaybackHistoryUpdateBroadcast(); - EventDistributor.getInstance().sendUnreadItemsUpdateBroadcast(); } }; diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/NewEpisodesListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/NewEpisodesListAdapter.java index 10b1f8e79..7a05b9370 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/NewEpisodesListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/NewEpisodesListAdapter.java @@ -148,7 +148,6 @@ public class NewEpisodesListAdapter extends BaseAdapter { public void onClick(View v) { FeedItem item = (FeedItem) v.getTag(); actionButtonCallback.onActionButtonPressed(item); - EventDistributor.getInstance().sendUnreadItemsUpdateBroadcast(); } }; diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/QueueListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/QueueListAdapter.java index 34757149a..a256dc129 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/QueueListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/QueueListAdapter.java @@ -138,7 +138,6 @@ public class QueueListAdapter extends BaseAdapter { public void onClick(View v) { FeedItem item = (FeedItem) v.getTag(); actionButtonCallback.onActionButtonPressed(item); - EventDistributor.getInstance().sendQueueUpdateBroadcast(); } }; 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 5312beeeb..ff68d267d 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java @@ -296,6 +296,9 @@ public class ItemlistFragment extends ListFragment { updateProgressBarVisibility(); } } + if ((arg & EventDistributor.PLAYER_STATUS_UPDATE) != 0) { + adapter.notifyDataSetChanged(); + } } }; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java index 24991144e..39b72f2e2 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java @@ -340,6 +340,9 @@ public class NewEpisodesFragment extends Fragment { getActivity().supportInvalidateOptionsMenu(); } } + if ((arg & EventDistributor.PLAYER_STATUS_UPDATE) != 0) { + listAdapter.notifyDataSetChanged(); + } } }; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java index f6d2d5d07..96f9742a0 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java @@ -171,6 +171,9 @@ public class PlaybackHistoryFragment extends ListFragment { startItemLoader(); getActivity().supportInvalidateOptionsMenu(); } + if ((arg & EventDistributor.PLAYER_STATUS_UPDATE) != 0) { + adapter.notifyDataSetChanged(); + } } }; 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 da33c6ea3..b48b52514 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -477,6 +477,9 @@ public class QueueFragment extends Fragment { getActivity().supportInvalidateOptionsMenu(); } } + if ((arg & EventDistributor.PLAYER_STATUS_UPDATE) != 0) { + listAdapter.notifyDataSetChanged(); + } } }; -- cgit v1.2.3 From 247ef778aaa4cbb5acc657c5d501e79ef177a337 Mon Sep 17 00:00:00 2001 From: volhol Date: Wed, 1 Apr 2015 12:47:35 +0200 Subject: Direct play from the the lists position in media item is now updated --- .../main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java | 6 ++---- .../java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java | 6 ++---- .../de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java | 7 +++---- app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java | 6 ++---- 4 files changed, 9 insertions(+), 16 deletions(-) (limited to 'app/src/main/java') 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 ff68d267d..acb07626c 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java @@ -66,7 +66,8 @@ public class ItemlistFragment extends ListFragment { private static final int EVENTS = EventDistributor.DOWNLOAD_HANDLED | EventDistributor.DOWNLOAD_QUEUED | EventDistributor.QUEUE_UPDATE - | EventDistributor.UNREAD_ITEMS_UPDATE; + | EventDistributor.UNREAD_ITEMS_UPDATE + | EventDistributor.PLAYER_STATUS_UPDATE; public static final String EXTRA_SELECTED_FEEDITEM = "extra.de.danoeh.antennapod.activity.selected_feeditem"; public static final String ARGUMENT_FEED_ID = "argument.de.danoeh.antennapod.feed_id"; @@ -296,9 +297,6 @@ public class ItemlistFragment extends ListFragment { updateProgressBarVisibility(); } } - if ((arg & EventDistributor.PLAYER_STATUS_UPDATE) != 0) { - adapter.notifyDataSetChanged(); - } } }; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java index 39b72f2e2..5cafd370e 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java @@ -54,7 +54,8 @@ public class NewEpisodesFragment extends Fragment { private static final int EVENTS = EventDistributor.DOWNLOAD_HANDLED | EventDistributor.DOWNLOAD_QUEUED | EventDistributor.QUEUE_UPDATE | - EventDistributor.UNREAD_ITEMS_UPDATE; + EventDistributor.UNREAD_ITEMS_UPDATE | + EventDistributor.PLAYER_STATUS_UPDATE; private static final int RECENT_EPISODES_LIMIT = 150; private static final String PREF_NAME = "PrefNewEpisodesFragment"; @@ -340,9 +341,6 @@ public class NewEpisodesFragment extends Fragment { getActivity().supportInvalidateOptionsMenu(); } } - if ((arg & EventDistributor.PLAYER_STATUS_UPDATE) != 0) { - listAdapter.notifyDataSetChanged(); - } } }; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java index 96f9742a0..ab38af106 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java @@ -34,6 +34,8 @@ import de.danoeh.antennapod.menuhandler.NavDrawerActivity; public class PlaybackHistoryFragment extends ListFragment { private static final String TAG = "PlaybackHistoryFragment"; + private static final int EVENTS = EventDistributor.PLAYBACK_HISTORY_UPDATE | + EventDistributor.PLAYER_STATUS_UPDATE; private List playbackHistory; private QueueAccess queue; @@ -167,13 +169,10 @@ public class PlaybackHistoryFragment extends ListFragment { @Override public void update(EventDistributor eventDistributor, Integer arg) { - if ((arg & EventDistributor.PLAYBACK_HISTORY_UPDATE) != 0) { + if ((arg & EVENTS) != 0) { startItemLoader(); getActivity().supportInvalidateOptionsMenu(); } - if ((arg & EventDistributor.PLAYER_STATUS_UPDATE) != 0) { - adapter.notifyDataSetChanged(); - } } }; 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 b48b52514..70a231cad 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -56,7 +56,8 @@ public class QueueFragment extends Fragment { private static final String TAG = "QueueFragment"; private static final int EVENTS = EventDistributor.DOWNLOAD_HANDLED | EventDistributor.DOWNLOAD_QUEUED | - EventDistributor.QUEUE_UPDATE; + EventDistributor.QUEUE_UPDATE | + EventDistributor.PLAYER_STATUS_UPDATE; private DragSortListView listView; private QueueListAdapter listAdapter; @@ -477,9 +478,6 @@ public class QueueFragment extends Fragment { getActivity().supportInvalidateOptionsMenu(); } } - if ((arg & EventDistributor.PLAYER_STATUS_UPDATE) != 0) { - listAdapter.notifyDataSetChanged(); - } } }; -- cgit v1.2.3 From 42e118626edb2c882e62651d9c469316f7ddfb42 Mon Sep 17 00:00:00 2001 From: volhol Date: Thu, 2 Apr 2015 19:54:04 +0200 Subject: Direct play from the lists subsequent play of the next feed item from the queue now works --- .../java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/src/main/java') diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java b/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java index bae109cf9..14644dd68 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java @@ -51,7 +51,7 @@ public class DefaultActionButtonCallback implements ActionButtonCallback { if (item.hasMedia() && item.getMedia().isCurrentlyPlaying()) { context.sendBroadcast(new Intent(PlaybackService.ACTION_PAUSE_PLAY_CURRENT_EPISODE)); } - else if (item.hasMedia() && item.getMedia().isPlaying()) { + else if (item.hasMedia() && item.getMedia().isCurrentlyPaused()) { context.sendBroadcast(new Intent(PlaybackService.ACTION_RESUME_PLAY_CURRENT_EPISODE)); } else { -- cgit v1.2.3