JonaNorman 1 éve
szülő
commit
bf9807be17

+ 15 - 12
aria-source/src/main/java/com/norman/webviewup/lib/source/aira/WebViewUrlSource.java

@@ -10,17 +10,19 @@ import com.arialyy.aria.core.download.DownloadTaskListener;
 import com.arialyy.aria.core.inf.IEntity;
 import com.arialyy.aria.core.task.DownloadTask;
 import com.norman.webviewup.lib.UpgradeDirectory;
-import com.norman.webviewup.lib.download.DownloadAction;
 import com.norman.webviewup.lib.source.WebViewPathSource;
 import com.norman.webviewup.lib.util.FileUtils;
 import com.norman.webviewup.lib.util.Md5Utils;
 
 import java.io.File;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
 
 public class WebViewUrlSource extends WebViewPathSource implements DownloadTaskListener {
 
+    private final HashSet<DownloadProcessCallback> downloadProcessCallbackHashSet = new HashSet<>();
+
     private final String url;
 
     private final String path;
@@ -63,7 +65,7 @@ public class WebViewUrlSource extends WebViewPathSource implements DownloadTaskL
 
     @Override
     protected void onPrepare() {
-        if (downloadEntity == null ||
+        if (!FileUtils.isNotEmptyFile(path) ||downloadEntity == null ||
                 downloadEntity.getState() == IEntity.STATE_CANCEL) {
             FileUtils.makeDirectory(path);
             taskId = downloadReceiver
@@ -83,7 +85,8 @@ public class WebViewUrlSource extends WebViewPathSource implements DownloadTaskL
                     .resume();
         } else if (downloadEntity.getState() == IEntity.STATE_COMPLETE) {
             success();
-        }
+        } //running
+
     }
     
 
@@ -125,23 +128,19 @@ public class WebViewUrlSource extends WebViewPathSource implements DownloadTaskL
 
     @Override
     public void onTaskFail(DownloadTask task, Exception e) {
-        for (DownloadAction.Callback callback : callbackList) {
-            callback.onFail(e);
-        }
+        error(e);
     }
 
     @Override
     public void onTaskComplete(DownloadTask task) {
-        for (DownloadAction.Callback callback : callbackList) {
-            callback.onComplete(task.getFilePath());
-        }
+       success();
     }
 
     @Override
     public void onTaskRunning(DownloadTask task) {
         float percent = task.getPercent() / 100.0f;
-        for (DownloadAction.Callback callback : callbackList) {
-            callback.onProcess(percent);
+        for (DownloadProcessCallback downloadProcessCallback : downloadProcessCallbackHashSet) {
+            downloadProcessCallback.onProcess(percent);
         }
     }
 
@@ -151,7 +150,11 @@ public class WebViewUrlSource extends WebViewPathSource implements DownloadTaskL
     }
 
     @Override
-    public String getPath() {
+    public synchronized String getPath() {
         return path;
     }
+
+    public interface DownloadProcessCallback{
+        void onProcess(float percent);
+    }
 }

+ 5 - 0
local-source/src/main/java/com/norman/webviewup/lib/source/WebViewSource.java

@@ -20,6 +20,11 @@ public abstract class WebViewSource {
         return success;
     }
 
+    public synchronized final Throwable getError() {
+        return errorThrowable;
+    }
+
+
     public synchronized void prepare(OnPrepareCallback prepareCallback) {
         if (success) {
             prepareCallback.onPrepareSuccess(this);