From ea6b41116ff4894981182bd6305df2f5c094ab57 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Wed, 30 Oct 2019 18:11:01 +0100 Subject: Extracted DownloaderFactory to new class --- .../service/download/DefaultDownloaderFactory.java | 20 +++++++++++++++ .../core/service/download/DownloadService.java | 29 ++-------------------- .../core/service/download/DownloaderFactory.java | 9 +++++++ 3 files changed, 31 insertions(+), 27 deletions(-) create mode 100644 core/src/main/java/de/danoeh/antennapod/core/service/download/DefaultDownloaderFactory.java create mode 100644 core/src/main/java/de/danoeh/antennapod/core/service/download/DownloaderFactory.java (limited to 'core/src') diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DefaultDownloaderFactory.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DefaultDownloaderFactory.java new file mode 100644 index 000000000..c0de6c825 --- /dev/null +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DefaultDownloaderFactory.java @@ -0,0 +1,20 @@ +package de.danoeh.antennapod.core.service.download; + +import android.util.Log; +import android.webkit.URLUtil; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +public class DefaultDownloaderFactory implements DownloaderFactory { + private static final String TAG = "DefaultDwnldrFactory"; + + @Nullable + @Override + public Downloader create(@NonNull DownloadRequest request) { + if (!URLUtil.isHttpUrl(request.getSource()) && !URLUtil.isHttpsUrl(request.getSource())) { + Log.e(TAG, "Could not find appropriate downloader for " + request.getSource()); + return null; + } + return new HttpDownloader(request); + } +} \ No newline at end of file diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java index fbc2abb43..24d32e962 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java @@ -12,8 +12,6 @@ import android.os.Handler; import android.os.IBinder; import android.text.TextUtils; import android.util.Log; -import android.webkit.URLUtil; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import de.danoeh.antennapod.core.ClientConfig; @@ -116,6 +114,7 @@ public class DownloadService extends Service { private ScheduledFuture downloadPostFuture; private static final int SCHED_EX_POOL_SIZE = 1; private ScheduledThreadPoolExecutor schedExecutor; + private static DownloaderFactory downloaderFactory = new DefaultDownloaderFactory(); private final IBinder mBinder = new LocalBinder(); @@ -397,7 +396,7 @@ public class DownloadService extends Service { writeFileUrl(request); - Downloader downloader = getDownloader(request); + Downloader downloader = downloaderFactory.create(request); if (downloader != null) { numberOfDownloads.incrementAndGet(); // smaller rss feeds before bigger media files @@ -414,26 +413,6 @@ public class DownloadService extends Service { queryDownloads(); } - @VisibleForTesting - public interface DownloaderFactory { - @Nullable - Downloader create(@NonNull DownloadRequest request); - } - - private static class DefaultDownloaderFactory implements DownloaderFactory { - @Nullable - @Override - public Downloader create(@NonNull DownloadRequest request) { - if (!URLUtil.isHttpUrl(request.getSource()) && !URLUtil.isHttpsUrl(request.getSource())) { - Log.e(TAG, "Could not find appropriate downloader for " + request.getSource()); - return null; - } - return new HttpDownloader(request); - } - } - - private static DownloaderFactory downloaderFactory = new DefaultDownloaderFactory(); - @VisibleForTesting public static DownloaderFactory getDownloaderFactory() { return downloaderFactory; @@ -446,10 +425,6 @@ public class DownloadService extends Service { DownloadService.downloaderFactory = downloaderFactory; } - private Downloader getDownloader(@NonNull DownloadRequest request) { - return downloaderFactory.create(request); - } - /** * Remove download from the DownloadRequester list and from the * DownloadService list. diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloaderFactory.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloaderFactory.java new file mode 100644 index 000000000..d96210a6e --- /dev/null +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloaderFactory.java @@ -0,0 +1,9 @@ +package de.danoeh.antennapod.core.service.download; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +public interface DownloaderFactory { + @Nullable + Downloader create(@NonNull DownloadRequest request); +} \ No newline at end of file -- cgit v1.2.3