summaryrefslogtreecommitdiff
path: root/app/src/main
diff options
context:
space:
mode:
authorH. Lehmann <ByteHamster@users.noreply.github.com>2020-05-21 19:41:07 +0200
committerGitHub <noreply@github.com>2020-05-21 19:41:07 +0200
commit6798eaa46936f078c5c85aab3de7fa425248427b (patch)
treea4bfd36aea375465a0fa5a83250f430cfb02e8a2 /app/src/main
parent8556945427fe58adea47228ac0c4833b113f4b10 (diff)
parent82188995e58130d2f3d24e963daf5bafffe95101 (diff)
downloadAntennaPod-6798eaa46936f078c5c85aab3de7fa425248427b.zip
Merge pull request #4177 from ByteHamster/stop-button-onlinefeedview
Added button to stop previewed episode
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java19
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistDescriptionAdapter.java14
-rw-r--r--app/src/main/res/layout/itemdescription_listitem.xml2
-rw-r--r--app/src/main/res/layout/onlinefeedview_activity.xml11
4 files changed, 32 insertions, 14 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
index 84a253f0b..0f7bab273 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
@@ -32,17 +32,20 @@ import de.danoeh.antennapod.core.ClientConfig;
import de.danoeh.antennapod.core.dialog.DownloadRequestErrorDialogCreator;
import de.danoeh.antennapod.core.event.DownloadEvent;
import de.danoeh.antennapod.core.event.FeedListUpdateEvent;
+import de.danoeh.antennapod.core.event.PlayerStatusEvent;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedPreferences;
import de.danoeh.antennapod.core.feed.VolumeAdaptionSetting;
import de.danoeh.antennapod.core.glide.ApGlideSettings;
import de.danoeh.antennapod.core.glide.FastBlurTransformation;
+import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.service.download.DownloadRequest;
import de.danoeh.antennapod.core.service.download.DownloadStatus;
import de.danoeh.antennapod.core.service.download.Downloader;
import de.danoeh.antennapod.core.service.download.HttpDownloader;
+import de.danoeh.antennapod.core.service.playback.PlaybackService;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.DownloadRequestException;
import de.danoeh.antennapod.core.storage.DownloadRequester;
@@ -51,9 +54,11 @@ import de.danoeh.antennapod.core.syndication.handler.FeedHandlerResult;
import de.danoeh.antennapod.core.syndication.handler.UnsupportedFeedtypeException;
import de.danoeh.antennapod.core.util.DownloadError;
import de.danoeh.antennapod.core.util.FileNameGenerator;
+import de.danoeh.antennapod.core.util.IntentUtils;
import de.danoeh.antennapod.core.util.Optional;
import de.danoeh.antennapod.core.util.StorageUtils;
import de.danoeh.antennapod.core.util.URLChecker;
+import de.danoeh.antennapod.core.util.playback.RemoteMedia;
import de.danoeh.antennapod.core.util.syndication.FeedDiscoverer;
import de.danoeh.antennapod.core.util.syndication.HtmlToPlainText;
import de.danoeh.antennapod.dialog.AuthenticationDialog;
@@ -99,6 +104,7 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
private ListView listView;
private Button subscribeButton;
private ProgressBar progressBar;
+ private Button stopPreviewButton;
private Disposable download;
private Disposable parser;
@@ -405,6 +411,7 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
TextView description = header.findViewById(R.id.txtvDescription);
subscribeButton = findViewById(R.id.butSubscribe);
+ stopPreviewButton = findViewById(R.id.butStopPreview);
if (StringUtils.isNotBlank(feed.getImageUrl())) {
Glide.with(this)
@@ -449,6 +456,11 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
}
});
+ stopPreviewButton.setOnClickListener(v -> {
+ PlaybackPreferences.writeNoMediaPlaying();
+ IntentUtils.sendLocalBroadcast(this, PlaybackService.ACTION_SHUTDOWN_PLAYBACK_SERVICE);
+ });
+
final int MAX_LINES_COLLAPSED = 10;
description.setMaxLines(MAX_LINES_COLLAPSED);
description.setOnClickListener(v -> {
@@ -568,6 +580,13 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
}
}
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void playbackStateChanged(PlayerStatusEvent event) {
+ boolean isPlayingPreview =
+ PlaybackPreferences.getCurrentlyPlayingMediaType() == RemoteMedia.PLAYABLE_TYPE_REMOTE_MEDIA;
+ stopPreviewButton.setVisibility(isPlayingPreview ? View.VISIBLE : View.GONE);
+ }
+
/**
*
* @return true if a FeedDiscoveryDialog is shown, false otherwise (e.g., due to no feed found).
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistDescriptionAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistDescriptionAdapter.java
index 9158d587b..690bb9e3d 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistDescriptionAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistDescriptionAdapter.java
@@ -70,13 +70,6 @@ public class FeedItemlistDescriptionAdapter extends ArrayAdapter<FeedItem> {
return;
}
Playable playable = new RemoteMedia(item);
- if (PlaybackPreferences.getCurrentlyPlayingMediaType() == RemoteMedia.PLAYABLE_TYPE_REMOTE_MEDIA) {
- PlaybackPreferences.writeNoMediaPlaying();
- IntentUtils.sendLocalBroadcast(getContext(), PlaybackService.ACTION_SHUTDOWN_PLAYBACK_SERVICE);
- holder.preview.setText(R.string.preview_episode);
- return;
- }
-
if (!NetworkUtils.isStreamingAllowed()) {
new StreamingConfirmationDialog(getContext(), playable).show();
return;
@@ -87,7 +80,6 @@ public class FeedItemlistDescriptionAdapter extends ArrayAdapter<FeedItem> {
.startWhenPrepared(true)
.callEvenIfRunning(true)
.start();
- holder.preview.setText(R.string.stop_playback);
if (playable.getMediaType() == MediaType.VIDEO) {
getContext().startActivity(PlaybackService.getPlayerActivityIntent(getContext(), playable));
@@ -103,11 +95,7 @@ public class FeedItemlistDescriptionAdapter extends ArrayAdapter<FeedItem> {
holder.description.setTag(Boolean.TRUE);
holder.preview.setVisibility(item.getMedia() != null ? View.VISIBLE : View.GONE);
- if (PlaybackPreferences.getCurrentlyPlayingMediaType() == RemoteMedia.PLAYABLE_TYPE_REMOTE_MEDIA) {
- holder.preview.setText(R.string.stop_playback);
- } else {
- holder.preview.setText(R.string.preview_episode);
- }
+ holder.preview.setText(R.string.preview_episode);
}
});
return convertView;
diff --git a/app/src/main/res/layout/itemdescription_listitem.xml b/app/src/main/res/layout/itemdescription_listitem.xml
index 15c23c915..6ed856796 100644
--- a/app/src/main/res/layout/itemdescription_listitem.xml
+++ b/app/src/main/res/layout/itemdescription_listitem.xml
@@ -63,7 +63,7 @@
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
- style="?android:attr/buttonBarButtonStyle"
+ style="@style/Widget.MaterialComponents.Button.TextButton"
android:text="@string/preview_episode"/>
</RelativeLayout>
diff --git a/app/src/main/res/layout/onlinefeedview_activity.xml b/app/src/main/res/layout/onlinefeedview_activity.xml
index cddb1048c..812933fb1 100644
--- a/app/src/main/res/layout/onlinefeedview_activity.xml
+++ b/app/src/main/res/layout/onlinefeedview_activity.xml
@@ -124,6 +124,17 @@
android:focusable="false"
android:text="@string/subscribe_label"/>
+ <Button
+ android:id="@+id/butStopPreview"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="16dp"
+ android:layout_marginRight="16dp"
+ android:layout_marginBottom="16dp"
+ android:focusable="false"
+ android:text="@string/stop_preview"
+ android:visibility="gone" />
+
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"