diff --git a/app/src/main/java/org/fdroid/fdroid/net/Downloader.java b/app/src/main/java/org/fdroid/fdroid/net/Downloader.java index 7981c2571..cb68aa575 100644 --- a/app/src/main/java/org/fdroid/fdroid/net/Downloader.java +++ b/app/src/main/java/org/fdroid/fdroid/net/Downloader.java @@ -1,5 +1,6 @@ package org.fdroid.fdroid.net; +import org.fdroid.fdroid.ProgressListener; import org.fdroid.fdroid.Utils; import java.io.File; @@ -36,19 +37,10 @@ public abstract class Downloader { protected final URL sourceUrl; protected String cacheTag; - /** - * This is meant only to send progress to {@link DownloaderService}. This - * also keeps this class pure Java so that it can be tested on the JVM, - * without requiring an Android device or emulator. - */ - interface DownloaderProgressListener { - void sendProgress(URL sourceUrl, int bytesRead, int totalBytes); - } - /** * For sending download progress, should only be called in {@link #progressTask} */ - private volatile DownloaderProgressListener downloaderProgressListener; + private volatile ProgressListener downloaderProgressListener; protected abstract InputStream getDownloadersInputStream() throws IOException; @@ -64,7 +56,7 @@ public abstract class Downloader { return new WrappedInputStream(getDownloadersInputStream()); } - public void setListener(DownloaderProgressListener listener) { + public void setListener(ProgressListener listener) { this.downloaderProgressListener = listener; } @@ -194,7 +186,7 @@ public abstract class Downloader { @Override public void run() { if (downloaderProgressListener != null) { - downloaderProgressListener.sendProgress(sourceUrl, bytesRead, totalBytes); + downloaderProgressListener.onProgress(sourceUrl, bytesRead, totalBytes); } } }; diff --git a/app/src/main/java/org/fdroid/fdroid/net/DownloaderService.java b/app/src/main/java/org/fdroid/fdroid/net/DownloaderService.java index 21061f260..8b12e74a5 100644 --- a/app/src/main/java/org/fdroid/fdroid/net/DownloaderService.java +++ b/app/src/main/java/org/fdroid/fdroid/net/DownloaderService.java @@ -34,6 +34,7 @@ import android.support.v4.content.LocalBroadcastManager; import android.text.TextUtils; import android.util.Log; +import org.fdroid.fdroid.ProgressListener; import org.fdroid.fdroid.Utils; import org.fdroid.fdroid.data.SanitizedFile; @@ -192,9 +193,9 @@ public class DownloaderService extends Service { try { downloader = DownloaderFactory.create(this, uri, localFile); - downloader.setListener(new Downloader.DownloaderProgressListener() { + downloader.setListener(new ProgressListener() { @Override - public void sendProgress(URL sourceUrl, int bytesRead, int totalBytes) { + public void onProgress(URL sourceUrl, int bytesRead, int totalBytes) { Intent intent = new Intent(Downloader.ACTION_PROGRESS); intent.setData(uri); intent.putExtra(Downloader.EXTRA_BYTES_READ, bytesRead); diff --git a/app/src/test/java/org/fdroid/fdroid/net/HttpDownloaderTest.java b/app/src/test/java/org/fdroid/fdroid/net/HttpDownloaderTest.java index 7b56bee6b..3beedff97 100644 --- a/app/src/test/java/org/fdroid/fdroid/net/HttpDownloaderTest.java +++ b/app/src/test/java/org/fdroid/fdroid/net/HttpDownloaderTest.java @@ -1,6 +1,7 @@ package org.fdroid.fdroid.net; +import org.fdroid.fdroid.ProgressListener; import org.junit.Test; import java.io.File; @@ -48,9 +49,9 @@ public class HttpDownloaderTest { URL url = new URL(urlString); File destFile = File.createTempFile("dl-", ""); final HttpDownloader httpDownloader = new HttpDownloader(url, destFile); - httpDownloader.setListener(new Downloader.DownloaderProgressListener() { + httpDownloader.setListener(new ProgressListener() { @Override - public void sendProgress(URL sourceUrl, int bytesRead, int totalBytes) { + public void onProgress(URL sourceUrl, int bytesRead, int totalBytes) { System.out.println("DownloaderProgressListener.sendProgress " + sourceUrl + " " + bytesRead + " / " + totalBytes); receivedProgress = true; } @@ -111,9 +112,9 @@ public class HttpDownloaderTest { URL url = new URL("https://f-droid.org/repo/index.jar"); File destFile = File.createTempFile("dl-", ""); final HttpDownloader httpDownloader = new HttpDownloader(url, destFile); - httpDownloader.setListener(new Downloader.DownloaderProgressListener() { + httpDownloader.setListener(new ProgressListener() { @Override - public void sendProgress(URL sourceUrl, int bytesRead, int totalBytes) { + public void onProgress(URL sourceUrl, int bytesRead, int totalBytes) { System.out.println("DownloaderProgressListener.sendProgress " + bytesRead + " / " + totalBytes); receivedProgress = true; latch.countDown();