summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/actionbutton')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java25
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/ItemActionButton.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MobileDownloadHelper.java49
3 files changed, 15 insertions, 63 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java
index 3b54efc03..86a8047a9 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java
@@ -2,20 +2,17 @@ package de.danoeh.antennapod.adapter.actionbutton;
import android.content.Context;
import android.view.View;
-import android.widget.Toast;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.core.service.download.DownloadRequestCreator;
-import de.danoeh.antennapod.core.service.download.DownloadService;
import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedMedia;
import de.danoeh.antennapod.core.preferences.UsageStatistics;
-import de.danoeh.antennapod.core.storage.DBWriter;
import de.danoeh.antennapod.core.util.NetworkUtils;
public class DownloadActionButton extends ItemActionButton {
@@ -50,19 +47,23 @@ public class DownloadActionButton extends ItemActionButton {
UsageStatistics.logAction(UsageStatistics.ACTION_DOWNLOAD);
- if (NetworkUtils.isEpisodeDownloadAllowed() || MobileDownloadHelper.userAllowedMobileDownloads()) {
- DownloadServiceInterface.get()
- .download(context, false, DownloadRequestCreator.create(item.getMedia()).build());
- } else if (MobileDownloadHelper.userChoseAddToQueue() && !item.isTagged(FeedItem.TAG_QUEUE)) {
- DBWriter.addQueueItem(context, item);
- Toast.makeText(context, R.string.added_to_queue_label, Toast.LENGTH_SHORT).show();
+ if (NetworkUtils.isEpisodeDownloadAllowed()) {
+ DownloadServiceInterface.get().downloadNow(context, item, false);
} else {
- MobileDownloadHelper.confirmMobileDownload(context, item);
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context)
+ .setTitle(R.string.confirm_mobile_download_dialog_title)
+ .setMessage(R.string.confirm_mobile_download_dialog_message)
+ .setPositiveButton(R.string.confirm_mobile_download_dialog_download_later,
+ (d, w) -> DownloadServiceInterface.get().downloadNow(context, item, false))
+ .setNeutralButton(R.string.confirm_mobile_download_dialog_allow_this_time,
+ (d, w) -> DownloadServiceInterface.get().downloadNow(context, item, true))
+ .setNegativeButton(R.string.cancel_label, null);
+ builder.show();
}
}
private boolean shouldNotDownload(@NonNull FeedMedia media) {
- boolean isDownloading = DownloadService.isDownloadingFile(media.getDownload_url());
+ boolean isDownloading = DownloadServiceInterface.get().isDownloadingEpisode(media.getDownload_url());
return isDownloading || media.isDownloaded();
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/ItemActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/ItemActionButton.java
index e7a95c404..613dd32f0 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/ItemActionButton.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/ItemActionButton.java
@@ -7,10 +7,10 @@ import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import android.view.View;
-import de.danoeh.antennapod.core.service.download.DownloadService;
import de.danoeh.antennapod.core.util.PlaybackStatus;
import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedMedia;
+import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
public abstract class ItemActionButton {
@@ -39,7 +39,7 @@ public abstract class ItemActionButton {
return new MarkAsPlayedActionButton(item);
}
- final boolean isDownloadingMedia = DownloadService.isDownloadingFile(media.getDownload_url());
+ final boolean isDownloadingMedia = DownloadServiceInterface.get().isDownloadingEpisode(media.getDownload_url());
if (PlaybackStatus.isCurrentlyPlaying(media)) {
return new PauseActionButton(item);
} else if (item.getFeed().isLocalFeed()) {
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MobileDownloadHelper.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MobileDownloadHelper.java
deleted file mode 100644
index 015f46318..000000000
--- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MobileDownloadHelper.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package de.danoeh.antennapod.adapter.actionbutton;
-
-import android.content.Context;
-
-import com.google.android.material.dialog.MaterialAlertDialogBuilder;
-import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.core.service.download.DownloadRequestCreator;
-import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
-import de.danoeh.antennapod.model.feed.FeedItem;
-import de.danoeh.antennapod.core.storage.DBReader;
-import de.danoeh.antennapod.core.storage.DBWriter;
-
-class MobileDownloadHelper {
- private static long addToQueueTimestamp;
- private static long allowMobileDownloadTimestamp;
- private static final int TEN_MINUTES_IN_MILLIS = 10 * 60 * 1000;
-
- static boolean userChoseAddToQueue() {
- return System.currentTimeMillis() - addToQueueTimestamp < TEN_MINUTES_IN_MILLIS;
- }
-
- static boolean userAllowedMobileDownloads() {
- return System.currentTimeMillis() - allowMobileDownloadTimestamp < TEN_MINUTES_IN_MILLIS;
- }
-
- static void confirmMobileDownload(final Context context, final FeedItem item) {
- MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context)
- .setTitle(R.string.confirm_mobile_download_dialog_title)
- .setMessage(R.string.confirm_mobile_download_dialog_message)
- .setPositiveButton(context.getText(R.string.confirm_mobile_download_dialog_enable_temporarily),
- (dialog, which) -> downloadFeedItems(context, item));
- if (!DBReader.getQueueIDList().contains(item.getId())) {
- builder.setMessage(R.string.confirm_mobile_download_dialog_message_not_in_queue)
- .setNeutralButton(R.string.confirm_mobile_download_dialog_only_add_to_queue,
- (dialog, which) -> addToQueue(context, item));
- }
- builder.show();
- }
-
- private static void addToQueue(Context context, FeedItem item) {
- addToQueueTimestamp = System.currentTimeMillis();
- DBWriter.addQueueItem(context, item);
- }
-
- private static void downloadFeedItems(Context context, FeedItem item) {
- allowMobileDownloadTimestamp = System.currentTimeMillis();
- DownloadServiceInterface.get().download(context, true, DownloadRequestCreator.create(item.getMedia()).build());
- }
-} \ No newline at end of file