diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/actionbutton')
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 |